概念介绍
1. 渗透测试的概念
1.1 渗透测试技术的核心思想
- 渗透测试(Penetration Test)技术的核心思想是模仿黑客的特定攻击行为,也就是尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,对目标的安全性做深入的探测,发现系统最脆弱环节的过程。
- 渗透测试可以选择使用自动化测试工具,测试人员的能力和经验也会直接对测试效果产生影响。
- 渗透测试对象通常分为三大类:
- 硬件设备,如路由器、交换机,以及防火墙、入侵检测系统等网络安全防护设备。
- 主机系统软件,如Windows、UNIX、Linux、Solaris和Mac等操作系统软件,以及Oracle、MySQL、Informix、Sybase、DB2和Access等数据库平台软件。
- 应用系统软件,如ASP、JSP和PHP等组成的Web应用程序,以及各类应用软件。
1.2 渗透测试的方法
- 根据测试执行人员对目标系统环境相关信息等掌握程度等不同,可以分为两种类型。
- 黑盒渗透测试:测试人员事先完全不了解被测试系统的任何信息,真实地模拟外来攻击者攻击被测试系统的行为方式。有关目标系统的所有信息都需要测试人员自行去搜集分析。
- 白盒渗透测试:测试人员事先已经了解被测试系统一定的相关信息(包括网络地址段、使用的网络协议、网络拓扑结构甚至内部人员资料等),模拟熟知目标系统环境的攻击者(包括系统内部人员)攻击被测试系统的操作行为。
- 根据执行渗透测试范围的不同,可以分为3种类型。
- 内网测试:测试人员从内网对目标进行渗透攻击。测试人员可以避开边界防火墙的“保护机制”,通过对一个或多个主机进行渗透来发现整个被测试系统的安全隐患。
- 外网测试:测试人员完全从外部网络(如ADSL或外部光纤)对目标系统进行渗透攻击。测试人员所模拟的外部攻击者既可能对内部状态一无所知,也可能对目标系统环境有一定的了解(甚至是熟知)。
- 不同网段/VLAN之间的渗透测试:测试人员从某内/外部网段,尝试对另一网段/VLAN进行渗透。
2. 渗透测试的过程
- 《渗透测试执行标准》(Penetration Testing Execution Standard, PTES)是安全业界在渗透测试技术领域中正在开发的一个新标准,目标是建立得到安全业界广泛认同的渗透测试基本准则,定义完整的渗透测试的过程。该标准将渗透测试过程分为以下7个阶段。每个阶段定义了不同的扩展级别。
2.1 前期交互(Pre-engagement Interactions)
- 此阶段内,渗透测试团队和用户进行讨论沟通,确定渗透测试的范围和目标、限制条件等。
- 该阶段需要收集客户需求,准备测试计划,定义测试范围与边界,定义业务目标,制定项目管理与规划。
- 明确渗透测试范围是渗透测试的第一步,也是最为重要的一步。测试人员需要考虑以下问题:
- 本次渗透测试的目的是什么;
- 渗透测试过程中有什么限制条件;
- 预计渗透测试时间是多长,什么时候开始;
- 渗透测试过程是否可以使用社会工程学方法;
- 渗透测试是否需要与