【IT168 技术文章】
渗透测试(Penetration Test)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观的让管理人员知道自己网络所面临的问题。
实际上渗透测试并没有严格的分类方式,即使在软件开发生命周期中,也包含了渗透测试的环节:
但根据实际应用,普遍认同的几种分类方法如下:
根据渗透方法分类
黑箱测试
黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。
白盒测试
白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。
隐秘测试
隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。
根据渗透目标分类
主机操作系统渗透
对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。
数据库系统渗透
对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2等数据库应用系统进行渗透测试。
应用系统渗透
对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。
网络设备渗透
对各种防火墙、入侵检测系统、网络设备进行渗透测试。
从攻方视角看渗透
攻方既包括了潜在的黑客、入侵者,也可能是经过企业授权的安全专家。在很多黑客的视角中,世界上永远没有不可能渗透的目标,差别仅在时间和耐性上。
目前我们仅仅从授权渗透的角度来讨论渗透测试的攻击路径及可能采用的技术手段。
测试目标不同,涉及需要采用的技术也会有一定差异,因此下面简单说明在不同位置可能采用的技术。
内网测试
内网测试指的是渗透测试人员由内部网络发起测试,这类测试能够模拟企业内部违规操作者的行为。最主要的“优势”是绕过了防火墙的保护。内部主要可能采用的渗透方式:远程缓冲区溢出,口令猜测,以及B/S或C/S应用程序测试(如果涉及C/S程序测试,需要提前准备相关客户端软件供测试使用)。
外网测试
外网测试指的是渗透测试人员完全处于外部网络(例如拨号、ADSL或外部光纤),模拟对内部状态一无所知的外部攻击者的行为。包括对网络设备的远程攻击,口令管理安全性测试,防火墙规则试探、规避,Web及其它开放应用服务的安全性测试。
不同网段/Vlan之间的渗透
这种渗透方式是从某内/外部网段,尝试对另一网段/Vlan进行渗透。这类测试通常可能用到的技术包括:对网络设备的远程攻击;对防火墙的远程攻击或规则探测、规避尝试。
渗透测试的流程图如图2所示。
信息的收集和分析伴随着每一个渗透测试步骤,每一个步骤又有三个组成部分:操作、响应和结果分析。