渗透测试技术基础
渗透测试(Penetration Testing)是一种通过模拟攻击者的技术与方法,挫败目标系统的安全控制措施并取得访问控制权的安全测试方式。
最近,安全业界看待和定义渗透测试过程的方式有了一些转变,安全业界中几个领军企业所采纳的渗透测试执行标准(PTES: Penetration Testing Execution Standard)正在对渗透测试进行重新定义,新标准的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,并得到安全业界的广泛认同。如果你刚刚涉足渗透测试领域,或者对渗透测试执行标准PTES还不太熟悉,请访问http://www.pentest-standard.org/进行进一步的了解。
一、PTES标准中的渗透测试阶段
1.前期交互阶段
确认渗透测试的范围、目标、限制条件以及服务合同细节。该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。
2.情报搜集阶段
利用各种信息来源与搜集技术方法,获取目标组织网络拓扑、系统配责与安全防御措施的信息。情报搜集方法包括公开来源信息查询、GoogleHacking、社会工程学、网络踩点、扫描探测等。
3.威胁建模阶段
针对获取的信息进行威胁建模与攻击规划。从大量的信息情报中理清思路,确定出最可行的攻击通道。
4.漏洞分析阶段
在确定出最可行的攻击通道之后,需要考虑如何取得目标系统的访问控制权。在该阶段,渗透测试人员需要综合分析前几个阶段获取并汇总的情报信息,找出可以实施渗透攻击的攻击点,并进行验证。
5.渗透攻击阶段
利用找到的目标系统安全漏洞,入侵系统,获取访问控制权。
6.后渗透攻击阶段
后渗透的目的,一是保持对目标系统的控制权,二是利用被控制的目标对目标组织环境进行进一步渗透。
7.报告阶段
渗透测试最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告。报告不仅需要记录发现的问题、问题产生的影响,同时需要给出修补和提升方案。
二、渗透测试类型
白盒测试:也被称为白帽测试,是指渗透测试者在拥有客户组织所有知识的情况下所进行的测试;
黑盒测试:模拟一个对客户组织一无所知的攻击者所进行的渗透攻击。
1.白盒测试
使用白盒测试,你需要和客户组织一起工作,来识别出潜在的安全风险,客户组织的IT支持和安全团队将会向你展示他们的系统与网络环境。白盒测试的最大好处是你将拥有所有的内部知识,并可以在不需要害怕被阻断的情况下任意地实施攻击。而白盒测试的最大问题在于无法有效地测试客户组织的应急响应程序,也无法判断出他们的安全防护计划对检测特定攻击的效率。如果时间有限,或是特定的渗透测试环节如情报搜集并不在范围之内的话,那么白盒测试可能是你最好的选项。
2.黑盒测试
与白盒测试不同的是,经过授权的黑盒测试是设计成为模拟攻击者的入侵行为,并在不了解客户组织大部分信息和知识的情况下实施的。黑盒测试可以用来测试内部安全团队检测和应对一次攻击的能力。
黑盒测试是比较费时费力的,同时需要渗透测试者具备更强的技术能力。在安全业界的渗透测试者眼中,黑盒测试通常是更受推崇的,因为它更逼真地模拟了一次真正的攻击过程。黑盒测试依靠你的能力通过探测获取目标系统的信息,因此,作为一次黑盒测试的渗透测试者,你通常并不需要找出目标系统的所有安全漏洞,而只需要尝试找出并利用可以获取目标系统访问权代价最小的攻击路径,并保证不被检测到。
三、漏洞扫描器
漏洞扫描器是用来找出指定系统或应用中安全漏洞的自动化工具。漏洞扫描器通常通过获取目标系统的操作系统指纹信息来判断其类型与版本,以及上面所允许的所有服务,一旦已经获取目标系统的操作系统与服务类型,就可以使用漏洞扫描器执行一些特定的检查,来确定存在哪些安全漏洞。这些检查历程的质量取决于漏洞扫描器的开发者。而且与任何完全自动化的解决方案一样,它们在很多时候会漏掉或是错误标识系统上的安全漏洞。
漏洞扫描器在渗透测试中也起到了一个非常关键的作用,特别是在允许渗透测试者同时发起多次攻击而无需考虑如何躲避检测的白盒测试场景中。从漏洞扫描器中获取的信息是非常有价值的,但不要过分依赖漏洞扫描。渗透测试不是千篇一律的自化过程,成功地攻击系统通常需要掌握更多的知识和技能。在大多数情况下,依靠自己的知识和专业技能来攻破系统。