渗透测试(Penetration Test)要求尽可能真实的模拟攻击者所使用的方法和技术对目标系统实施攻击,以检验系统在真实应用环境中的安全性。这有点类同于“以攻击者的方式思考”。
很多情况下,单纯的进行策略文档评估和执行自动化安全评估产品往往无法发现一些潜在的安全问题,进行渗透测试工作是非常必要的。
一个真实的案例,可以说明企业Example是如何在例行安全评定中发现了自身安全措施的脆弱,尽管为了信息安全该企业已经投入超过百万。Example的管理员按照安全策略和系统基线等文档对当时的应用环境进行了仔细的审核,确认所有安全设施的配置和运行都处于正常状态,而且所有系统都处于基线文档的限制之内。然而,一个雇佣的第三方渗透测试团队居然在一次“黑盒”渗透测试中攻破了Example的服务器系统。
在测试中,渗透工作人员发现Example服务器运行的Web应用的输入验证有问题,可以通过脚本注入手段在服务器上操纵文件,从而最终获得了服务器系统的控制权。
经过双方在测试后的详细讨论,Example的工作人员意识到当前的安全措施只对那些不应被访问的应用进行了限制,而对于那些拥有授权的应用则缺乏管理。这个案例也警示在执行风险管理工作的人们,对于应用层安全来说渗透测试是多么的必要。
渗透测试的分类黑盒测试
黑盒测试意味着测试人员是在对目标系统一无所知的状态下进行测试工作,目标系统对测试人员来说就像一个“黑盒子”。除了知道目标的基本范围之外,所有的信息都依赖测试人员自行发掘。而目标系统上往往会开启监控机制对渗透过程进行记录,以供测试结束后分析。也就是说虽然黑盒测试的范围比较自由和宽泛,但是仍需要遵循一定的规则和限制。
黑盒测试能够很好的模拟真实攻击者的行为方式,让用户了解自己系统对外来攻击者的真实安全情况。
与黑盒测试不同,白盒测试开始之前测试人员就已经从目标公司获得了足够的初始信息,例如网络地址段、使用的网络协议、拓扑图、应用列表等等。相对来说,白盒测试更多的被应用于审核内部信息管理机制,测试人员可以利用掌握的资料进行内部探查,甚至与企业的员工进行交互。对于发现现有管理机制漏洞以及检验社交工程攻击可能性来说,白盒测试具有非凡的意义。
隐秘测试
事实上隐秘测试类似一种增强的黑盒测试,对于受测机构来说该测试处于保密状态,可以将其想象为特定管理部分雇佣了外部团队来进行内部调查。除了不开启特定措施对测试过程进行监控和记录之外,测试工作的进行也不对员工进行通知,甚至不向信息安全管理部门进行说明。这种测试完全的模拟了真实的攻击,可以综合的考察组织信息安全工作的运转情况,对检验信息安全工作人员在安全事件响应和处理方面的成效很有帮助。