实际上渗透测试并没有严格的分类方式,即使在软件开发生命周期中,也包含了渗透测试的环节:
但根据实际应用,普遍认同的几种分类方法如下:
根据渗透方法分类
黑箱测试
黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。
隐秘测试
隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
根据渗透目标分类
主机操作系统渗透
对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
数据库系统渗透
对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2等数据库应用系统进行渗透测试。
应用系统渗透
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
从攻方视角看渗透
攻方既包括了潜在的黑客、入侵者,也可能是经过企业授权的安全专家。在很多黑客的视角中,世界上永远没有不可能渗透的目标,差别仅在时间和耐性上。
目前我们仅仅从授权渗透的角度来讨论渗透测试的攻击路径及可能采用的技术手段。
测试目标不同,涉及需要采用的技术也会有一定差异,因此下面简单说明在不同位置可能采用的技术。