交战规则还可能限定哪些系统的漏洞可以利用、哪些不可以,比如客户机;或者限定哪些攻击手法可以用、哪些不可以用,比如社会工程学。

  第9个秘诀:报告测试结果,并衡量进度。

  渗透测试的目的是为了改善安全状况,所以如果你在进行内部测试,测试报告应该会提供实用而具体的信息,以便你付诸实际行动。

  InGuardians公司的Skoudis说:“目的是有助于增强安全性,以便管理人员做决定来改进业务,并且帮助运营团队增强安全性。”

  你应该出示一份测试摘要,不过报告重点应包括详细描述这些方面的内容:发现的漏洞,如何利用这些漏洞,以及万一真的发生攻击,哪些资产面临风险。详细介绍用来渗透的每个步骤、被利用的每个漏洞,重要的可能是所有攻击途径。

  Core Security公司的Solino说:“找出攻击途径的意义在于,可以通过破坏途径来解决具体问题。”

  建议措施一定要非常具体。如果需要改变架构,还要附上图表。解释如何证实解决方法已落实到位(可以用工具来衡量)。在涉及多个系统的情况下,还要解释如何批量部署解决方法,尽可能使用组策略对象(GPO)。

  确保每个建议的补救措施都附有注意事项:先全面深入地测试解决方法,之后才可落实到生产环境中。因为企业的IT基础设施可能非常复杂。

  Skoudis说:“这是个大问题。因为你不知道所有细微之处;你不应该破坏正常生产。”

  渗透测试不应该是一次性的演练,应该对比连续几次测试的结果。如果你在进行内部测试,要把变化部分放在一起,评估你的人员在如何解决问题。要是近一两次测试发现的问题依然没有得到解决,这表明贵企业可能有问题。也许是软件补丁计划没有起到应有的效果,也许是开发人员没有经过编写安全代码方面的相应培训。

  上面提到的那位大学安全主管说:“我们寻找的是趋势。像你对待审计报告那样。要是测试发现的是同样一些漏洞,这表明可能存在比较严重的问题。”

  第10个秘诀:决定谁是渗透测试人员。

  决定要不要由内部的工作人员进行渗透测试,这得看贵公司的规模、竭力保护的信息具有的价值,以及想把内部资源投入到哪些方面。有些公司在安全部门下面可能还设有专门的渗透测试团队或小组。内部团队更有条件进行定期测试。要是贵公司规模庞大,组织结构分散,应制定相应机制,倡导可以共享信息的环境。

  Verizon公司的Khawaja说:“如果你的内部团队能够共享信息,要确保他们有一个强大的知识库,并依托成熟的知识管理系统。你要确保你在比利时的部门遭到的攻击不会出现在巴西的部门。”

  即使你进行一些内部测试,也有充足的理由需要聘请顾问进行至少一部分测试。有些法规要求必须由外部公司进行渗透测试;还要考虑到这点:内部人员可能非常了解目标系统,而且测试结果关系到他们的切身利益。所以,除合规要求之外,定期从外面请顾问来测试是个好想法。

  出于同样的原因,如果你真从外面聘请测试顾问,要记得不时更换厂商,像每过几年要更换审计人员那样。

  那位大学安全主管说:“如果从外面请人来,测试结果更让人放心了。因为不存在什么利益冲突。”

  至于你的内部团队,要找既知识面广、又有好奇心的员工。

  Core Security公司的Solino表示,有望成为渗透测试人员的培训对象要深入了解各种网络和应用协议,这是基础。他通常注重好奇心和黑客的心理素质。

  “既要有IT知识,还要具备不相信系统是安全的态度,主张‘大胆试一试!’。”

  Skoudis说:“渗透测试是门艺术。虽说有一些工具和方法,但你在寻找目标系统和应用程序存在的问题时一定要有创意、有想法。”