安全测试:渗透测试几个种类的相关介绍

渗透测试是完全依赖于操作范围的——像入侵程度就是与范围直接关联的。例如,有时在一个特定系统中发现漏洞就足够了。因此,基于约定的范围来选择正确的渗透测试对于安全人员来说是非常重要的。本文将介绍不同的渗透测试方法。

渗透测试的种类

拒绝服务(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可能被盗取,而合法会话可能会被未授权的用户使用;

帐号锁定测试——测试应用中设置的超时和入侵锁定参数,保证合法会话不会被劫持。

这个测试是用来发现登录系统是否可能被迫允许未授权访问。这个测试也将使用相同的技术来发现系统是否容易受到拒绝服务攻击的影响。

功能测试:这指的是测试负责交付用户功能的系统。这个测试包括:

输入验证——无效字符、特殊URL或者过长的输入都可能会产生意外的结果;

事务测试——保证应用执行符合规范,并且不允许用户滥用系统。

战争拨号

战争拨号是一种有组织地呼叫一系列电话号码来试图发现一个组织网络中可能存在的调制解调器、远程访问设备和计算机的维护连接。通过使用战争拨号方法,黑客可能能够定位到组织中易受攻击的编外入口,从而操作它们来访问网络。IT人员忽视了电话网络,作为一个可能的主要接入端,它也是越来越多遭受此类攻击的主要因素之一。例如:在关键的网络服务器、路由器和其它设备上打开调制解调器可能会不小心将组织网络的入口暴露出去。在这个测试中,一旦调制解调或其它连接设备被发现,那么就应该使用分析和搜索技术来评估这个连接是否能够用于入侵这个单位的信息系统网络。

无线网络的渗透测试

随着无线网络的出现,不管是在企业网络基础架构内还是在家里,都会造成更多的安全漏洞,而且它们比有线网络更容易受到攻击。因为只有边界无线网络才知道它们的信号,所以黑客更容易以“驾车”或沿办公楼四处走动的方式来使用无线网络设备发现可用的无线网络——这就是所谓的“战争驾驶”。一旦发现开放的无线接入端,他们就会标记下来,所以最后他就能够得到一个带有接入端属性(SSID、WEP、MAC等)的无线网络图。无线网络测试的目标是确定一个组织的无线网络的设计、实现或运营中的安全缺陷或漏洞。

社会工程

这种方法通常与盲式或双盲式测试一起使用,社会工程指的是搜索以收集信息为目的的人类本性(最主要是人的信任感和帮助姿态)的技术。这种方法是通过与单位员工、提供商和合同方的社会互动来收集信息和侵入这个组织的系统。这些技术可能包括:

非面对面的方式:假装作为IT部门的帮助台代表,要求用户提供他们的用户帐号和密码信息;

面对面或高级社交工程的方式:假装为内部员工而获得可能带有敏感信息的受限区域的物理访问;拦截邮件、快件或者垃圾(大型垃圾装卸车)来搜索打印材料上的敏感信息。

社会工程活动可以测试技术要求较低但同等重要的安全组件:单位的人员能够帮助或阻止对信息和信息系统的未授权访问。这也有助于确定员工之间安全知识的水平。