渗透测试项目建议书模板-渗透测试项目建议书

hacker|
195

什么是渗透测试?如何做渗透测试?

渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。

渗透测试一定要遵循软件测试基本流程,要知道测试过程和目标特殊,在具体实施步骤上主要包含以下几步:

1、明确目标

当测试人员拿到需要做渗透测试的项目时,首先确定测试需求,如测试是针对业务逻辑漏洞,还是针对人员管理权限漏洞等;然后确定客户要求渗透测试的范围,如ip段、域名、整站渗透或者部分模块渗透等;最后确定渗透测试规则,如能够渗透到什么程度,是确定漏洞为止还是继续利用漏洞进行更进一步的测试,是否允许破坏数据、是否能够提升权限等。

2、收集信息

在信息收集阶段要尽量收集关于项目软件的各种信息。比如:对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。信息收集对于渗透测试来说非常重要,只要掌握目标程序足够多的信息,才能更好地进行漏洞检测。

信息收集的方式可分为以下2种:主动收集、被动收集。

3、扫描漏洞

在这个阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。

4、验证漏洞

在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。

5、分析信息

经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制不同,针对不同的安全漏洞需要进一步分析,制定一个详细的攻击计划,这样才能保证测试顺利执行。

6、渗透攻击

渗透攻击实际是对目标程序进行的真正攻击,为了达到测试的目的,像是获取用户账号密码、截取目标程序传输数据等。渗透测试是一次性测试,在攻击完成后能够执行清理工作。

7、整理信息

渗透攻击完成后,整理攻击所获得的信息,为后边编写测试报告提供依据。

8、编写报告

测试完成之后要编写报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。

如何写好一份渗透测试报告

当你连续奋战了好几天,终于合上了笔记本,想要出去透透风时,一个熟悉的问句传来:“你好,请问什么时候可以交付报告?”

有成千上万的书籍讲解什么是信息安全,什么是渗透测试,也有数不清的培训课程视频。但是,我敢打赌,在这些材料中,只有不到10%是在讲写报告的事情。在一个完整的渗透测试过程中,有将近一半的时间都用在了编写报告上,这听起来很让人吃惊,但是也并不奇怪。

教会某人写报告不像教会某人制作一个完美的缓冲区溢出那么有意思,大部分的渗透测试人员情愿复习19次TCP数据包结构的工作原理,也不愿意写一份报告。

不管我们的渗透测试水平多么高,想要把一个很深的技术点解释的很通俗易懂,即使是完全不懂安全的人也可以理解,这是一件异常艰难的挑战。不但得学会简单明了的解释渗透测试的结果,还得控制好时间。这样做的好处很多,关系到客户会不会不断的采购你的服务。有一次,我开车到350英里以外的一家客户那里做售前,当面重新解释了渗透测试报告的本内容;如果能把测试报告写的简单明了,我就不用跑这么一趟,相当于节省了一整天的时间和一整箱汽油。

举个例子:

一个模糊不清的解释:“SSH版本应该被禁用,因为它含有高危漏洞,可能允许攻击者在网络上拦截和解密通信,虽然攻击者控制网络的风险很低,这减少了严重性。”

清楚的解释:“建议在这些设备上禁用SSH,如果不这样做,就有可能允许攻击者在当地网络解密和拦截通讯。”

为什么渗透测试报告如此重要?

请谨记:渗透测试是一个科学的过程,像所有科学流程一样,应该是独立可重复的。当客户不满意测试结果时,他有权要求另外一名测试人员进行复现。如果第一个测试人员没有在报告中详细说明是如何得出结论的话,第二个测试人员将会不知从何入手,得出的结论也极有可能不一样。更糟糕的是,可能会有潜在漏洞暴露于外部没有被发现。

举个例子:

模糊不清的描述:“我使用端口扫描器检测到了一个开放的TCP端口。“

清晰明了的描述:“我使用Nmap 5.50,对一段端口进行SYN扫描,发现了一个开放的TCP端口。

命令是:nmap –sS –p 7000-8000“

报告是实实在在的测试过程的输出,且是真实测试结果的证据。对客户高层管理人员(批准用于测试的资金的人)可能对报告的内容没有什么兴趣,但这份报告是他们唯一一份证明测试费用的证据。渗透测试不像其他类型的合同项目。合同结束了,没有搭建新的系统,也没有往应用程序添加新的代码。没有报告,很难向别人解释他们刚买的什么东西。

报告给谁看?

至少有三种类型的人会阅读你的报告:高级管理人员,IT管理和IT技术人员。

高级管理人员根本不关心,或者压根不明白它的意思,如果支付服务器使用SSL v2加密连接。他们想知道的答案是“我们现在到底安不安全?”

IT管理对该组织的整体安全性感兴趣,同时也希望确保其特定的部门在测试过程中都没有发现任何重大问题。我记得给三个IT经理一份特别详细的报告。阅读这份报告后有两个人脸色变得苍白,而第三个人笑着说“太好了,没有数据库的安全问题”。

IT人员是负责修复测试过程中发现的问题的人。他们想知道三件事:受影响系统的名称,该漏洞的严重程度以及如何解决它。他们也希望这些信息以一种清晰而且有组织的方式呈现给他们。最好的方法是将这些信息以资产和严重程度来进行划分。例如“服务器A”存在“漏洞X,Y和Z,漏洞Y是最关键的。这样IT人员就可以快速的找到问题的关键,及时修复。

当然,你可以问你的客户是否愿意对漏洞分组。毕竟测试是为了他们的利益,他们是付钱的人!一些客户喜欢有个详细说明每个漏洞的页面,并表明受漏洞影响的资产有哪些。

虽然我已经提到了渗透测试报告三种最常见的读者,但这并不是一个详尽的清单。一旦报告交付给客户,取决于他们用它干什么。它可能最终被提交给审计人员作为审计的证据。它可以通过销售团队呈现给潜在客户。“任何人都可以说自己的产品是安全的,但他们可以证明这一点?我们可以看看这里的渗透测试报告。“

报告甚至可能最终共享给整个组织。这听起来很疯狂,但它确实发生过。我执行一次社会工程学测试,其结果低于客户的期望。被触怒的CEO将报告传递给整个组织,作为提高防范社会工程攻击意识的一种方式。更有趣的是,几周后当我访问同一个公司做一些安全意识的培训。我在自我介绍时说,我就是之前那个负责社工测试的人。愤怒的目光,嘲讽的语气,埋怨我给他们所有人带来多少麻烦。我的内心毫无波动,答道:“把密码给我总比给真正的黑客好。”

报告应该包含什么?

有时候你会很幸运的看到,客户在项目计划之初就表明他们想要的报告内容。甚至有一些更为细小的要求,比如,字体大小和线间距等。但是这只是少数,大部分客户还是不知道最终要什么结果,所以下面给出一般报告的撰写程序。

封面

封面是报告的第一面窗户,封面页上包含的细节可以不那么明显。但是测试公司的名称、标志以及客户的名称应该突出显示。诸如“内部网络扫描”或“DMZ测试”测试标题也应该在那里,对于相同的客户执行多个测试时,可以避免混淆。测试时间也要写上,随着时间的推移,用户可以清楚的得知他们的安全状况是否得到了改善。另外该封面还应包含文档的密级,并与客户商定如何保密好这份商业上的敏感文件。

内容提要

我见过一些简直像短篇小说一样的内容提要,其实这部分一般要限制在一页纸以内。不要提及任何特定的工具、技术,因为客户根本不在乎,他们只需要知道的是你做了什么,发现了什么,接下来要发生什么,为什么,执行摘要的最后一行应该是一个结论,即明确指出是该系统是安全还是不安全。

举个例子:

一个糟糕的总结:“总之,我们发现一些地方的安全策略运作良好,但有些地方并未遵从。这导致了一定风险,但并不是致命风险。”

一个优秀的总结:“总之,我们发现了某些地方没有遵守安全策略,这给组织带来了一个风险,因此我们必须声明该系统是不安全的。”

漏洞总结

将漏洞列表放在一个页面上,这样,IT经理便可以一目了然的知道接下来要做什么。具体怎样表现出来,形式多样,你可以使用花哨的图形(像表格或图表),只要清晰明了就行。漏洞可以按类别(例如软件问题,网络设备配置,密码策略)进行分组,严重程度或CVSS评分——方法很多,只要工作做得好,很容易理解。

测试团队的详细信息

记录测试过程中所涉及的每一个测试人员的名字,这是一个基本的礼节问题,让客户知道是谁在测试他们的网络,并提供联系方式,以便后续报告中问题讨论。一些客户和测试公司也喜欢依据测试的内容向不同的测试小组分配任务。多一双眼睛,可以从不同的角度查看系统的问题。

工具列表

包括版本和功能的简要描述。这点会涉及到可重复性。如果有人要准确复现您的测试,他们需要确切地知道您使用的工具。

工作范围

事先已经同意,转载作为参考是有用的。

报告主体

这部分才是报告的精华,报告的正文应包括所有检测到的漏洞细节,如何发现漏洞,如何利用漏洞,以及漏洞利用的可能性。无论你做的是什么,都要保证给出一个清晰的解释。我看过无数份报告,都是简单的复制粘贴漏洞扫描的结果,这是不对的。另外报告中还应包括切实贴合的修复建议。

最终交付

在任何情况下任何一份报告应该加密传输。这虽然是常识,但往往大家就会摔倒在最后的这环上。

渗透测试成功的关键是什么?

1.知道为什么要测试

执行渗透测试的目的是什么?是满足审计要求?是你需要知道某个新应用在现实世界中表现如何?你最近换了安全基础设施中某个重要组件而需要知道它是否有效?或者渗透测试根本就是作为你定期检查防御健康的一项例行公事?

当你清楚做测试的原因时,你也就知晓自己想从测试中得到什么了,而这可以让测试规划工作更有效率。知道做测试的缘由可以让人恰当地确立测试的范围,确定测试结果将会揭露什么问题。

或许这一步中最重要的一部分,是让团队提前架设好准备从测试结果中得出正确的结论的心理预期。如果测试是要审查IT基础设施的某个特定方面(比如说新的Web应用),那就没必要着墨于公司整体安全。理解做测试的缘由可以让你问出正确的问题,得到能被恰当理解的结果。

2.了解你的网络

漏洞是安全的重点。企业网络上线之日直至如今必然经历种种变迁,只要攻击者比企业自己的IT员工更清楚其中存在的漏洞,企业网络就对攻击者门户洞开。

绘制公司网络地图的责任不落在渗透测试团队身上。如果渗透测试团队在做这项工作,就意味着你有可能错过他们的测试结果,因为你收到的网络架构消息都能把渗透测试结果淹没。

一张更新的网络地图(包括逻辑方面和拓扑方面)应成为渗透测试的强制性前提条件。如果渗透测试员在告诉你你所不知道的网络架构情况,那你就是在为网络地图买单——很贵的那种。

3. 设置范围

红队探测范围有多广,很大程度上取决于你为什么要做这个测试,因为太广或太窄可能都无甚大用。

测试范围过窄的问题很明显:如果想要找出的问题在测试范围外,那就没有任何数据能帮助确定该组件的安全。所以,必须确保测试参数包含事关公司当前安全状态的重要组件。最重要的是,你得确定自己要测试的是整体安全状况还是某特定系统的安全状态,以及人为因素(对网络钓鱼和其他社会工程攻击的敏感性)需不需要被包含进去。

如果测试范围过宽,有可能出现两个问题。第一个问题是经济上的:测试费用会随范围的扩大而增加,而测试价格与所需信息不相匹配的状况又会影响到公司高层对未来测试的热情。

第二个问题就更为致命了。测试范围过大时,测试本身容易返回太多信息,真正所需的数据很容易被淹没在巨量的测试结果中。教训很清楚:想要测试架构中特定部分的安全,就将渗透测试的范围限定在那个部分上。对整个系统的测试可以留待下次进行。

4. 做好计划

弄清测试目的并确定出测试范围后,就可以开始制定测试计划了。定出详细明确的测试条件和需求最为重要,任何松散或须经解释的测试要求都会削减渗透测试的效率。需做好详尽计划的原因有很多,其中最主要的原因与成本控制和提升测试结果可用性有关。

良好的测试计划应分为多个部分。一个部分帮助委托公司巩固其测试方案的要求。一个部分确认测试返回数据的类型。还要有一部分内容为向公司执行委员会解释测试开销做准备。

测试计划不是制定好后就固定不变的,测试过程中可能需作出修订。测试团队被聘用后,他们可能会针对某些测试元素提出一些能产生更好结果的建议。其中关键就在于,公司内部就该测试计划达成一致后

,安全团队就能判断渗透测试员的建议是否能满足测试需求了,不用什么都依靠测试团队的力量。

5. 雇正确的团队

提供渗透测试服务的公司和顾问很多。这些公司都有各自的优势和弱点,他们的技术技巧各有千秋,呈现测试结果的方式也有好有坏。公司有必要确保所选测试团队的能力尽可能地符合测试需要。

要注意的是,测试需求应高于客户要求。确实,有些团队在导引征求建议书(RFP)过程或挤进获批供应商列表上颇有心得,但他们执行测试计划所需渗透测试动作的技术未必比得上这些在应付客户上的技巧。选择渗透测试团队时应将测试技术放在第一位,会计和行政管理方面的能力次之。

可以考察测试团队的老辣程度,看他们如何在不推翻原计划的条件下提出建议,改进客户的测试计划。这也是为什么前期要做好测试计划的一个重要原因。因为可以检查测试过程中的种种改动。

6. 不要干预

人都想得到别人的认同,这是人类天性。但渗透测试的目的就是要展现出公司企业安全状态的实际情况,所以,尽量别为了得到个看起来好看的结果而人为干扰渗透测试员,给防御方提供不公平的优势。

事实上,红队几乎总能某种程度上渗透进公司网络边界。我们当前的技术和操作就是这样的。很多情况下,真正的问题存在于蓝队到底什么时候才能发现已被攻破,会如何响应。

无论测试结果如何,都要让测试过程正常进行,以便结果真实、准确、有用。管理层的任何干预都会毁了渗透测试的有效性,请一定记得在测试完成前不要插手。

7. 注意结果

测试完成后,你会得到一份完整的报告,需仔细研读。渗透测试员应向你呈现出测试的结果,如果你有机会根据测试结果改进安全系统,别放过这种机会。

或许渗透测试是为了满足监管合规要求而做的。也有可能你就没想找任何理由来改变你的安全防御。这都没关系。你的安全防御如今已遭遇过敌军主力,而你可以看清安全计划的成功之处与失败的地方。

如果测试结果被用于做出有意义的改变,渗透测试就是划算的。而划算的渗透测试也更有可能在未来获得公司高层的安全预算。

8. 沟通结果

对大多数公司来说,渗透测试的结果不局限在安全团队范围内。至少,对整个IT部门都有影响,而很多情况下还有高管们需要看到的信息。

很多安全人员都觉得,向非安全专业的经理传达渗透测试结果是过程中最难的部分。不仅需要说明都做了什么,为什么要这么做,还要用他们能听懂的语言解释需要作出什么改动。这往往意味着要用商业术语沟通,而不是以技术语言阐述。

正如渗透测试可被视为真实攻击的预演,将其他部门的同事纳入结果阐述和操作展示的受众范围,也有助于确保被接收的信息确实是你想要传达的。

对很多业务经理而言,网络安全是个令人望而生畏的高难度领域;尽量别用过多的行话让业务经理们在座位上一头雾水坐卧不宁。

今日福利

【Java11期开课啦】

8大实战案例模块,历时三年沉淀,Java4.0震撼发布!

偷偷告诉你前50名,还可获得价值300元的京东购物卡呦~

如有疑问,请留言告知,或者咨询柠檬班 软件测试培训 机构:官网客服哦

留言领取100G软件测试全面课程视频。

渗透测试学习些啥呀?

渗透测试需要的基础技能必须有网络基础、编程基础、数据库基础、操作系统等基本技能。学习的话可以从html、css、js、编程语言、协议包分析、网络互联原理、数据库语法等进入,学习了这些基础技能之后,就可以进行渗透测试的深入学习了,如web方面的学习OWASP TOP 10漏洞挖掘、主机系统服务漏洞检测、App漏洞检测、内网渗透等方面,最后当然是能够编写渗透测试报告啦。

0条大神的评论

发表评论