渗透测试的不同阶段
渗透测试往往会涉及到模拟破坏任意数量的应用程序或系统,其中包括:应用程序的协议接口、前端或后端服务器、安全基础设施、以及利用漏洞植入代码或窃取敏感数据等。那么,渗透测试的整体过程通常包括如下五个阶段:
1、计划和侦察
此阶段主要包括:定义待测试的范围、优先级和目标。同时,此阶段还会说明关键系统的主要特征,以及即将执行的测试类型。
而侦察阶段则与情报的收集有关。例如:以被动和主动的方式,获取与目标系统相关的网络、域名、以及邮件服务器等信息,以便更好地了解待测目标的工作原理,及其潜在的切入口。
2、扫描
该阶段主要涉及到了解目标系统将如何响应各种自动化的入侵尝试、以及攻击行为。渗透测试人员通常会使用如下方法:
静态分析:在服务系统运行之前,检查应用程序的源代码,通过将其与既有的编码规则进行比较,进而对其进行代码级的分析与调试。
动态分析:通过实时执行真实数据,对系统的安全性进行测试和评估。此类分析的目标是,通过采用自动化的安全扫描工具,对应用程序或系统执行扫描,进而实时发现各种错误与漏洞。
当然,在静态或动态分析之后,我们需要通过手动验证已发现的漏洞和错误,以消除各种误报。
3、获得访问或利用的权限
那些在前面阶段已被识别出的各种漏洞,将会在此时被想方设法地利用到目标系统上,以获取访问权限,进而攫取各种有价值的信息。具体的利用方式可谓五花八门,其中包括:提升权限、拦截流量、以及注入恶意代码等。它们在攻击方式上各有侧重点,所造成的损害程度也不尽相同。
4、保持访问
此阶段的主要目标是:确保攻击在获得对应用程序、或底层系统的访问权限后,仍然可以保持持续的访问状态。毕竟,只要攻击者能够维持对系统长期有效的访问权限,他们就能够更深、更远地接触到其他相关应用。可以说,渗透测试人员需要在本阶段通过模仿和检测,发现那些长期驻留在系统中、且尚未被检测到的高级持续威胁(advanced persistent threats,APT)。
5、分析和报告
至此,我们需要将测试结果编译成详细的报告。而报告的主体应当主要能够反应出可以被利用的漏洞、易于被破坏和访问的敏感数据、以及安全测试人员在被“发现”之前,可以在系统中驻留的时长。
转载自网络
文章标签: 软件测评 第三方测试 软件测试