基本介绍
渗透测试(Penetration Testing)是一种通过模拟恶意攻击者的技术与手法对目标系统在可控制的范围内进行安全测试和安全评估的过程,其目的是在挖掘当前系统潜在的安全风险点后对系统进行安全升级来提升系统的安全性,并以此来规避被恶意攻击者入侵的可能性
基本分类
渗透测试的类型主要有以下三种:
黑盒测试
黑盒测试(Black-box Testing)也被称为外部测试(External Testing),采用这种方式时渗透测试团队将从一个远程网络位置来评估目标网络基础设施,并没有任何目标网络内部拓扑等相关信息,测试团队将完全模拟真实网络环境中的外部攻击者并采用流行的攻击技术与工具有组织有步骤地对目标组织进行逐步的渗透和入侵,并在此期间揭露目标网络中存在的一些已知或未知的安全漏洞,并评估这些漏洞是否可以被利用、利用难度的高低、以及被利用后带来的安全风险(例如:丧失目标系统的控制权、造成业务资产损失等),在完成渗透测试后,测试团队会对发现的目标系统安全漏洞、所识别的安全风险以及业务影响评估等信息进行总结后输出一份详细的安全测试报告
白盒测试
白盒测试(White-box Testing)也被称为内部测试(Internal Testing),进行白盒测试的团队将可以了解到关于目标系统的所有内部与底层知识,因此这可以让渗透测试者以最小的代价发现和验证系统中最严重的安全漏洞,如果实施到位,白盒测试能够比黑盒测试消除更多的目标基础设施环境中的安全漏洞和脆弱点,从而给客户组织带来更大的价值 白盒测试的实施流程与黑盒测试类似,不同之处在于无需进行目标定位与情报搜集,白盒测试能够更加方便地在一次常规的开发与部署计划周期中集成,使得能够在早期就消除掉一些可能存在的安全问题,从而避免被入侵者发现和利用 白盒测试中发现和解决安全漏洞所花费的时间和代价要比黑盒测试少很多,而白盒测试的最大问题就在于无法有效地测试客户组织的应急响应能力,也无法判断出他们的安全防护计划对检测特定攻击的效率,如果有时间或是特定的渗透测试环境(如:情报搜集)并不再范围之内,那么白盒测试时最好的选择
灰盒测试
白盒测试与黑盒测试的组合可以提供对目标系统更加深入和全面的安全审查,这就是所谓的"灰盒测试(Grey-box Testing)" 灰盒测试的好处就是能够同时发挥两种基本类型渗透测试访问各自的优势,灰盒测试需要测试者能够根据对目标系统所掌握的有限知识与信息来选择评估整体安全性的最佳途径,在采用灰盒测试方法的外部渗透测试场景中,渗透测试者也类似地需要从外部逐步渗透进入目标网络,但是他所拥有的目标网络底层拓扑与架构将有助于更好地决策攻击途径与方法,从而达到更好的渗透测试效果
测试流程
PTES渗透测试执行标准是由安全业界国家领军企业技术专家所共同发起的,期望未企业组织与安全服务提供商设计并制定用来实施渗透测试的通用描述准则,PTES标准项目网站为: http://www.pentest-standard.org/index.php/Main_Page PTES标准中定义的渗透测试过程环境基本反映了安全业界的普遍认同,具体包括以下7个阶段:
前期交互阶段
在前期交互(Pre-ENgagement Interaction)阶段,渗透测试团队与客户组织通过沟通需要对渗透测试的范围、渗透测试的方法、渗透测试的周期以及服务合同细节进行商定,该阶段通常会涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动
情报搜集阶段
在目标范围确定之后将进入情报搜集(Information Gathering)阶段,渗透测试团队可以利用各种信息来源与搜集技术方法来尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息 渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等,而对目标系统的情报探查能够力是渗透测试者一项非常重要的技能,情报搜集是否充分很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,那么你将可能在后面的阶段内一无所获
威胁建模阶段
在搜集到充分的情报之后,渗透测试团队的成员们停下敲击键盘并开始对获取到的信息进行威胁建模(Threat Modeling)与攻击规划,这是渗透测试过程中非常重要但很容易被忽视的一个关键点,通过团队共同的缜密情报分析与攻击思路头脑风暴之后可以从大量的信息情报中理清头绪并确定出最可行的攻击通道
漏洞分析阶段
在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(VulnerabilityAnalysis)阶段 在该阶段,渗透测试者需要综合分析前几个阶段获取并正总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源找出可以实施渗透攻击的攻击点,并在实验环境中进行验证,在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出漏洞利用代码,从而打开攻击通道上的关键路径
渗透攻击阶段
渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节,在此环节中渗透测试团队需要利用他们所找出的目标系统安全漏洞来真正人侵系统当中获得访问控制权,渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施才能成功达成渗透目的,在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现
后渗透的阶段
后渗透攻击(PostExploitation)整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节、前面的环节可以说都是按部就班地完成非常普遍的目标,而在这个环节中需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特定,自主设计出攻击目标,识别关键基础设施并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达到能够对客户组织造成最重要业务影响的攻击途径 在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行也取决于团队自身的创新意识、知识范畴、实际经验和技术能力
报告撰写阶段
渗透测试过程最终向客户组织提交取得认可并成功获得合同付款的就是一份渗透测试报告(Reporting),这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上帮助他们分析安全防御体系中的薄弱环节、存在的问题以及修补与升级技术方案