当前位置: 首页 > 质量专栏 > 什么是渗透测试,为什么要进行渗透测试?渗透测试完整流程介绍
什么是渗透测试,为什么要进行渗透测试?渗透测试完整流程介绍
2022-12-23 浏览次数2111

近年来,无论是在业务上、运营中、还是在流程上,数字化转型已经让许多组织和公司能够在可扩展性、生产效率、以及灵活性方面得到了大幅提升。不过,凡事都有利弊。新的数字化技术也会带来各种数据泄露、以及网络攻击事件的频发。因此,如果一个组织不定期进行漏洞评估与渗透测试的话,攻击者会在神不知鬼不觉的情况下,偷偷潜入目标系统,或是破坏IT基础设施,或者窃取商业秘密。可见,为了防范于未然,任何组织都需要通过适当的程序或系统,尽早地检测与响应攻击,并能够及时地从攻击中恢复。

什么是渗透测试?

渗透测试是通过各种手动和自动的技术,来模拟对组织内、外部信息系统的攻击。一些道德黑客、或渗透测试者,通常会通过采用各种测试技术,试图在真实攻击者、或恶意行为者之前,“闯入”组织的信息系统,识别并利用已知的漏洞或未知的缺陷。也就是说,安全测试人员的主要目标是,对待测系统进行主动分析,以识别可能因为系统配置不当、基础设施缺陷、以及不良的操作习惯,所导致的任何潜在威胁或漏洞。

为什么要进行渗透测试?

识别整体基础设施(包括各种硬件和软件)中的潜在威胁和弱点,以便开发和构建一个安全可控的系统。

发现组织当前的安全态势与既定目标之间的差距,进而制定出行之有效的解决方案。

确保现有的安全系统或控制措施,能够有效地降低潜在攻击所带来的风险。

能够对攻击向量进行分级,并识别和加固易受利用的攻击途径。

及时发现当前受控系统中存在的错误,并着手修复它们。

检测并确定弱点被利用后的严重程度,并提高自身应对攻击的响应能力。

渗透测试的不同阶段

渗透测试往往会涉及到模拟破坏任意数量的应用程序或系统,其中包括:应用程序的协议接口、前端或后端服务器、安全基础设施、以及利用漏洞植入代码或窃取敏感数据等。那么,渗透测试的整体过程通常包括如下五个阶段:

1、计划和侦察

此阶段主要包括:定义待测试的范围、优先级和目标。同时,此阶段还会说明关键系统的主要特征,以及即将执行的测试类型。

而侦察阶段则与情报的收集有关。例如:以被动和主动的方式,获取与目标系统相关的网络、域名、以及邮件服务器等信息,以便更好地了解待测目标的工作原理,及其潜在的切入口。

2、扫描

该阶段主要涉及到了解目标系统将如何响应各种自动化的入侵尝试、以及攻击行为。渗透测试人员通常会使用如下方法:

静态分析:在服务系统运行之前,检查应用程序的源代码,通过将其与既有的编码规则进行比较,进而对其进行代码级的分析与调试。

动态分析:通过实时执行真实数据,对系统的安全性进行测试和评估。此类分析的目标是,通过采用自动化的安全扫描工具,对应用程序或系统执行扫描,进而实时发现各种错误与漏洞。

当然,在静态或动态分析之后,我们需要通过手动验证已发现的漏洞和错误,以消除各种误报。

3、获得访问或利用的权限

那些在前面阶段已被识别出的各种漏洞,将会在此时被想方设法地利用到目标系统上,以获取访问权限,进而攫取各种有价值的信息。具体的利用方式可谓五花八门,其中包括:提升权限、拦截流量、以及注入恶意代码等。它们在攻击方式上各有侧重点,所造成的损害程度也不尽相同。

4、保持访问

此阶段的主要目标是:确保攻击在获得对应用程序、或底层系统的访问权限后,仍然可以保持持续的访问状态。毕竟,只要攻击者能够维持对系统长期有效的访问权限,他们就能够更深、更远地接触到其他相关应用。可以说,渗透测试人员需要在本阶段通过模仿和检测,发现那些长期驻留在系统中、且尚未被检测到的高级持续威胁(advanced persistent threats,APT)。

5、分析和报告

至此,我们需要将测试结果编译成详细的报告。而报告的主体应当主要能够反应出可以被利用的漏洞、易于被破坏和访问的敏感数据、以及安全测试人员在被“发现”之前,可以在系统中驻留的时长。

转载自网络

文章标签: 软件测评 第三方测试 软件测试
咨询软件测试