渗透测试是完全依赖于操作范围的——像入侵程度就是与范围直接关联的。例如,有时在一个特定系统中发现漏洞就足够了。因此,基于约定的范围来选择正确的渗透测试对于安全人员来说是非常重要的。本文将介绍不同的渗透测试方法。
渗透测试的种类
拒绝服务(DoS)测试
拒绝服务测试指的是尝试通过耗尽测试目标的资源来发现系统的特定弱点,这种方法会导致系统停止对合法请求的响应。这种测试可以使用自动化工具或手动执行。各种类型的DoS可以概括地分成软件探索和洪水攻击。渗透测试应该包含多大程度的拒绝服务测试取决于信息系统及相关过程活动的持续相对重要性和连续可用性。拒绝服务可以采用许多格式;以下所列是一些对测试而言比较重要的格式:
◆资源过载——这些攻击的目的是耗尽攻击目标的资源(如,内存),从而使之停止响应。
◆洪水攻击——是指通过发送超大数量的网络请求来达到耗尽的目的。这种攻击可以通过以下方式实现:
◆ICMP(Internet Control Message Protocol),即所谓的“smurf”攻击;
◆UDP (User Datagram Protocol),即所谓的“fraggle”攻击。
◆半开放SYN攻击——是指在目标系统局部开放大量的TCP连接,这样就无法再启动合法连接。
◆编外攻击——这些攻击试图通过破坏IP报头标准来使目标系统崩溃:
◆超大数据包(ping of death)——数据报头显示数据包所包含大于实际大小的数据。
◆分片(泪滴攻击)——发送很短的重叠分片数据包(数据包片断)。
◆IP源地址欺骗(落地攻击)——导致计算机创建连接自己的TCP连接。
◆畸形UDP数据报头(UDP炸弹)——UDP报头显示了不正确的长度。
应用安全性测试
随着企业电子化的发展,核心业务功能现在越来越多地通过Web应用实现。虽然连接Internet的应用使一个组织实现了全球客户访问,但是给予合作伙伴访问内部网的权限会带来新的安全漏洞,即使使用了防火墙和其它监控系统也一样,安全性也可能受到威胁,因为流量是必须通过防火墙的。应用安全性测试的目标是评估对应用的控制(电子商务服务器、在线财务应用、分布式应用和遗留系统的Internet前端)和它的处理流。评估的方面可能包括应用是否使用加密方法来保护信息的保密性和完整性,用户是如何验证的,Internet用户会话与主机应用的完整性,以及Cookie的使用——存储在客户计算机上由Web服务器应用所使用的一块数据。
让我们了解应用测试的一些重要组件:
代码检查:代码检查指的是分析所有应用代码来保证它们不包含任何可被入侵者利用来攻击应用的敏感信息。例如:公共应用代码可能会包含一些测试注释,其中的名称或明文密码可能会给入侵者提供大量关于这个应用的信息。
授权测试:指是测试负责初始化和维护用户会话的系统。它要求测试:
◆登录的输入验证——无效字符或过长的输入可能会产生意外结果;
◆安全性——Cookie可能被盗取,而合法会话可能会被未授权的用户使用;
◆帐号锁定测试——测试应用中设置的超时和入侵锁定参数,保证合法会话不会被劫持。