对于安全测试人员写报告肯定没有像怎么学习一种新的渗透方法来的有趣,乃至于大部分渗透测试人员宁愿多次复习TCP/IP协议详解,数据包结构的工作原理,也不愿意花一些时间在研究怎么写好一份报告上。
市面上有太多的书籍阐述什么是信息安全,什么是渗透测试,但很少有讲怎么编写好一份成功、合格的渗透测试报告。技术再牛,如果不能把自己的工作成果很好的呈现在自己的东家(客户)面前,也难免明珠蒙尘。
不管你的渗透测试水平多高,想要把一个很深的技术点解释的通俗易懂,即便是完全不懂安全的人也能理解,这是一个非常艰巨的挑战。不但需要学会简单明了的了解渗透测试结果,还需要控制好时间。
渗透测试报告的重要性不言而喻。渗透测试是一个科学的过程,像所有科学流程一样,应该是独立可重复的。当客户不满意测试结果时,他有权要求另外一名测试人员进行复现。如果第一个测试人员没有在报告中详细说明是如何得出结论的话,第二个测试人员将会不知从何入手,得出的结论也极有可能不一样。更糟糕的是,可能会有潜在漏洞暴露于外部没有被发现。
首先,你要了解清楚写的渗透测试报告给谁看?
至少有三种类人会阅读你的报告:高级管理人员,IT管理和IT技术人员。
高级管理人员根本不关心技术细节,或者压根不明白其中的意思,如支付服务器使用SSL v2加密连接。他们想知道的答案仅是“现在到底安不安全?”
IT管理人员对该组织的整体安全性感兴趣,同时也希望确保其特定的部门在测试过程中都没有发现任何重大问题。
IT人员是负责修复测试过程中发现的问题的人。他们想知道三件事:受影响系统的名称,该漏洞的严重程度以及如何解决它。他们也希望这些信息以一种清晰而且有组织的方式呈现给他们。最好的方法是将这些信息以资产和严重程度来进行划分。例如“服务器A”存在“漏洞X,Y和Z,漏洞Y是最关键的,并建议通过下面几种方式修复。这样IT人员就可以快速的找到问题的关键,并根据建议快速找到修复问题的办法。
当然,你可以问客户是否愿意对漏洞分组。毕竟测试是为了他们的利益,他们是付钱的人!一些客户喜欢有个详细说明每个漏洞的页面,并表明受漏洞影响的资产有哪些。
上面是三种最常见的读者,但这并不详尽。一旦报告交付给客户,取决于他们用它干什么。它可能最终被提交给审计人员作为审计的证据。它可以通过销售团队呈现给潜在客户。“任何人都可以说自己的产品是安全的,但他们可以证明这一点?我们可以看看这里的渗透测试报告。”
其次,了解报告的内容应该包含哪些内容?
有时候你可能会很幸运,客户在测试计划之初就表明他们想要的报告内容。甚至有一些更为细小的要求,比如字体大小和字间距等。但这仅仅是极少数用户,大部分客户对于报告的内容是模糊的,不甚清楚的。而一个好的渗透测试报告主要包括了七点,封面、内容提要、漏洞总结、测试团队的详细信息、工具列表、工作范围和报告主体。
下面,我们来讲讲具体怎么写好一份渗透测试报告:
1、封面
封面是报告的第一面窗户,封面页上包含的细节可以不那么明显。但是测试公司(团队)的名称、标志以及客户的名称应该突出显示。诸如“内部网络扫描”或“DMZ测试”测试标题也应该在那里,对于相同的客户执行多个测试时,可以避免混淆。测试时间也要写上,随着时间的推移,用户可以清楚的得知他们的安全状况是否得到了改善。另外该封面还应包含文档的密级,并与客户商定如何保密好这份商业上的敏感文件。
2、内容提要
不要写的像短篇小说一样的内容提要,这部分一般要限定在一页纸内。不要提及任何特定的工具、技术,因为客户根本不在乎,他们只需要知道的是你做了什么,发现了什么,接下来要发生什么,为什么,执行摘要的最后一行应该是一个结论,即明确指出是该系统是安全还是不安全。
举个例子:
一个糟糕的总结:“总之,我们发现一些地方的安全策略运作良好,但有些地方并未遵从。这导致了一定风险,但并不是致命风险。”
一个优秀的总结:“总之,我们发现了某些地方没有遵守安全策略,这给组织带来了一个风险,因此我们必须声明该系统是不安全的。”
3、漏洞总结
将漏洞列表放在一个页面上,这样IT经理便可以一目了然的知道接下来要做什么。具体怎样表现出来,形式多样,你可以使用的图形结合(像表格或图表),只要清晰明了就行。漏洞可以按类别(例如软件问题,网络设备配置,密码策略)进行分组,也可以是严重程度或CVSS评分,总之方法很多,只要把工作做得好,就很容易理解。
4、测试团队的详细信息
记录测试过程中所涉及的每一个测试人员的名字,这是一个基本常识,让客户知道是谁在测试他们的网络,并提供联系方式,以便后续报告中问题讨论。一些客户和测试公司也喜欢依据测试的内容向不同的测试小组分配任务。多一双眼睛,可以从不同的角度查看系统的问题。
5、工具列表
包括版本和功能的简要描述。这点会涉及到可重复性。如果有人要准确复现你的测试,他们需要确切地知道你所使用的工具。
6、工作范围
说明渗透测试的对象,取得授权的允许范围等。让客户清晰了解,渗透测试是符合预先约定范围的。
7、报告主体
这部分才是报告的精华,报告的正文应包括所有检测到的漏洞细节,如何发现漏洞,如何利用漏洞,漏洞利用的可能性,以及漏洞的修复建议。无论你做的是什么,都要保证给出一个清晰的解释。无数份报告,都是简单的复制粘贴漏洞扫描的结果,这是不对的做法。
最后,注意自己交付报告的过程
在任何情况下任何一份渗透测试报告都应该加密传输。这是专业常识问题,但往往安全人员可能会摔倒在该环上。让客户不得不怀疑安全组织的专业性,报告内容是否已经被扩散泄密。