第7个秘诀:考虑所有攻击途径。

  攻击者能利用而且会利用IT基础设施不同方面的漏洞,或单枪匹马,或合伙行动(后者更常见),以便获得他们寻找的数据。

  全面深入的渗透测试会根据攻击者的终目的,而不是根据每个攻击途径的脆弱性,逐一测试所有这些潜在的攻击途径。

  Solino说:“要是几年前,我们会进行网络渗透测试、应用渗透测试和无线渗透测试;后来我们退一步说‘这么做毫无意义’。坏人才不说‘我只能通过网络闯入到系统’。”

  成功的渗透测试与真实的攻击一样,可能会用到许多途径,涉及好多步骤,直到发现有空子可钻的目标。一台打印服务器似乎不是特别值得关注,但它可能使用与含有信用卡资料的数据库同样的管理员登录信息。

  InGuardians公司的Skoudis说:“渗透测试人员找到漏洞后钻空子,然后从这台机器跳转到另一台机器,再跳转到下一台机器。”

  对Web应用程序发动攻击后可能钻不了空子,但得到的信息有助于利用网络上其他资产的漏洞。或者,攻击者可能会获得没有很高权限,但可以访问内部网络的员工方面的信息,然后以此作为跳板。

  所以,某个关键资源也许无法直接下手,但可能会因其他系统来受到危及。

  Khawaja表示,比如说,Verizon公司的渗透测试人员无法直接闯入可以访问敏感数据库的Web服务器。如果测试人员的目光局限于测试这台服务器上的Web应用程序,那么得出的结论会是:数据是安全的。但如果站在以数据为中心的角度,他们会发现与这台Web服务器连接的第二台Web服务器有一个重大漏洞,攻击者可以利用该漏洞来访问第一台Web服务器,进而访问那个敏感数据库。

  他说:“只要与我们在攻击的网段没有隔离开来的系统,我们都关注。有没有任何网络控制措施来防止攻击者从一个易受攻击的低价值系统跳转到一个比较关键的系统?”

  话虽如此,还是有必要针对特定的攻击途径进行测试。比如说,一家公司可能特别担心无线安全,因为它知道之前自己在这方面有些松懈,或者可能近安装或升级了无线局域网基础设施。但是算你确信某一个途径很安全??比如说,如果无线网络与信用卡数据库隔离开来,也不要太肯定。因为,攻击途径可能错综复杂。

  第8个秘诀:确定交战规则。

  渗透测试模拟攻击行为,但它不是一种攻击。无论你在内部进行测试,还是交由外部顾问测试,都需要制定规则,确定什么可以做,什么不可以做,什么时候做,谁需要知道内情。

  后者取决于你在进行白盒测试(white box testing),还是黑盒测试(black box testing。若是前一种情况,可能要承认这一点:公司(或者某个部门或业务单位)的安全计划需要大量工作,而且渗透测试是各有关方都知道的公开过程。

  另一方面,黑盒测试显得比较秘密,测试起来更像是真正的攻击??只有参与测试的人知道内情,外人完全不知道。你要确定公司的员工多称职、流程及其支持系统的效果有多好。

  Verizon公司的Khawaja说:“无论是运营中心、调查响应团队还是保安人员,每个人都要装作渗透测试的那天是办公室的平常。”

  许多公司通常会先进行白盒测试,了解要解决的安全问题。随后,黑盒测试将有助于确定初发现的漏洞是不是得到了有效补救。比如说,有时首席安全官不但需要知道关键系统有多脆弱,还需要了解下属在检测和响应攻击方面的能力有多强。

  不管怎样,要把情况告知某些关键的人,避免出现可能影响业务或破坏测试的问题。InGuardians公司的Skoudis表示,目标环境中负责变更控制流程的人当中至少一人要了解内情。比如说,按照交战规则(rules of engagement),公司可以允许渗透测试人员将软件安装到目标设备上,进行更深入的跳转测试,但至少要告知那个人,确保测试人员不会因为从路由器的访问控制列表(ACL)删掉IP地址,或运用防火墙规则而遭到阻止。

  在白盒测试和黑盒测试这两种场景下,Skoudis建议每天与测试的相关人员开简会,让他们知道测试人员在做什么。比如说,交战规则可能允许渗透测试人员利用漏洞,但开简会能起到提醒作用,好让大家心里有数。

  他说:“开简会起到了沟通作用。它表明渗透测试人员不是外面‘来抓我’的一帮坏人。目的是做到透明、公开。”