2、渗透测试实施方法
2.1 根据测试者掌握信息多少分类
根据不同的测试需求,测试者在测试前掌握被测对象的信息多少是不同的。渗透测试在实际进行中具体划分为以下二种不同的方法:黑盒测试和白盒测试[3][4]。
● 黑盒测试
黑盒测试又被称为“Zero-knowledge testing”,渗透测试操作人员完全处于对系统一无所知的状态,通常这类测试的最初信息来自于DNS、Web、Email及各种公开对外的服务器。
● 白盒测试
白盒测试与黑盒测试不同,测试者可以通过正常渠道向被测者要求,取得各种资料,包括网络拓扑、员工资料甚至网站或其他程序的代码片断,也能够与被测组织内的其他员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟组织内部雇员的越权操作,和预防万一组织重要信息泄露,网络黑客能利用这些信息对组织构成的危害。
2.2 根据测试者位置分类
测试目标不同,采用的技术也会有一定差异。测试者在系统网络的不同位置、不同攻击路径下进行渗透测试,结果反应的问题迥然不同。
● 内网测试
内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟组织内部违规操作者的行为。最主要的“优势”是绕过了防火墙的保护。
● 外网测试
外网测试指的是渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),模拟从组织外部发起的攻击行为,可能来自于对组织内部信息一无所知的攻击者也可能来自于对组织内部信息一清二楚的攻击者。
● 不同网段之间的测试
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。
3、渗透测试模型
渗透测试模型是一个整合渗透测试技术和方法的原型系统。该系统可以提供渗透测试各个步骤的各种功能,检验被测对象网络和计算环境的安全性和抗攻击能力,发掘被测对象网络系统中从物理层到应用层各个层面的脆弱性。
3.1 系统架构设计
系统分为六大模块:管理控制模块、信息收集模块、漏洞测试模块、结果报告模块、痕迹清除模块、数据通信模块。系统架构图如图2所示。
图2 系统架构
管理控制模块负责对整个系统进行管理,对各个模块进行调用,对各模块功能进行集中控制;信息收集模块负责收集被测网络系统的相关信息,并对收集到的信息进行整理提炼;漏洞测试模块负责对网络系统的漏洞进行测试;结果报告模块负责最终的结果生成;痕迹清除模块负责将在被测网络系统中渗透测试留下的痕迹进行清除;数据通信模块负责各个模块之间的通信。
3.2 流程设计
渗透测试的流程在不同的应用模式下是有所区别的。黑盒测试包含了渗透测试的所有步骤和功能,白盒测试根据可见信息获悉的多少可能省去部分信息收集的操作。
一次黑盒测试必须从信息收集开始,对收集到的信息进行整理,提炼出对网络渗透有用的信息;根据收集到的有用信息,制定一定的渗透策略,进行漏洞测试;为了模拟整个攻击的过程和检验网络防护系统的日志报警强度,在渗透工作结束后进行痕迹清除;对信息收集的结果和漏洞测试的结果进行整理,生成网络渗透测试报告。流程如图3所示。
图3 渗透测试流程