渗透测试的概念,流程介绍

一.  渗透测试介绍

 

1  渗透测试的概念

渗透测试(Penetration Testing)是由具备高技能和高素质的安全服务人员发起、并模拟常见黑客所使用的攻击手段对目标系统进行模拟入侵。渗透测试服务的目的在于充分挖掘和暴露系统的弱点,从而让管理人员了解其系统所面临的威胁。

2  渗透测试的必要性

渗透测试工作往往作为风险评估的一个重要环节,为风险评估提供重要的原始参考数据。渗透测试不仅在目的上与脆弱性评估不同,而且在实施方式和方向上也与其有着很大的区别。脆弱性评估是在已知系统上,对已知的弱点进行排查。渗透测试往往是“黑盒测试”,测试者模拟黑客,不但要在未知系统中发现弱点,而且还要验证部分高危险的弱点,甚至还会挖掘出一些未知的弱点。因此,渗透测试是脆弱性评估的一种很好的补充。同时,由于主持渗透测试的测试人员一般都具备丰富的安全经验和技能,所以其针对性比常见的脆弱性评估会更强、粒度也会更为细致。另外,渗透测试的攻击路径及手段不同于常见的安全产品,所以它往往能暴露出一条甚至多条被人们所忽视的威胁路径,从而暴露整个系统或网络的威胁所在。

 最重要的是,渗透测试最终的成功一般不是因为某一个系统的某个单一问题所直接引起的,而是由于一系列看似没有关联而且又不严重的缺陷组合而导致的。日常工作中,无论是进行怎么样的传统安全检查工作,对于没有相关经验和技能的管理人员都无法将这些缺陷进行如此的排列组合从而引发问题,但有经验的渗透测试人员却可以靠其丰富的经验和技能将它们进行串联并展示出来。

 

二. 渗透测试客户收益

对于客户而言,渗透测试可以带来以下收益:

明确安全隐患点

渗透测试是一个从空间到面再到点的过程,测试人员模拟黑客的入侵,从外部整体切入最终落至某个威胁点并加以利用,最终对整个网络产生威胁,以此明确整体系统中的安全隐患点。

提高安全意识

如上所述,任何的隐患在渗透测试服务中都可能造成“千里之堤溃于蚁穴”的效果,因此渗透测试服务可有效督促管理人员杜绝任何一处小的缺陷,从而降低整体风险。

提高安全技能

在测试人员与用户的交互过程中,可提升用户的技能。另外,通过专业的渗透测试报告,也能为用户提供当前流行安全问题的参考。

 

三.  渗透测试的依据

一般渗透测试服务将参考下列国内、国际与渗透测试有关的标准结合在渗透测试方面的规范和经验进行工作。

国内可参考的标准、指南或规范

GB/T 20984-2022信息安全技术 信息安全风险评估方法

GB/T 31496-2015 信息技术—安全技术—信息安全管理体系实施指南

国际可参考的标准、指南或规范

CESG (CHECK) IT Health Check方法

OWASP OWASP_Testing_Guide_v3

OWASP OWASP_Development_Guide_2005

OWASP OWASP_Top_10_2010_Chinese_V1.0

OSSTMM OSSTMM_Web_App_Alpha

Web应用安全委员会(WASC)WASC Threat Classification v2

 

四.  渗透测试的原则

一般在提供渗透测试服务中,将遵循下列原则。

保密性原则

保密性原则是渗透测试服务中最重要的原则,它是鼓励客户实施渗透测试服务的心理基础,同时也是对客户隐私权的最大尊重。渗透测试的保密范围,包括实施过程的保密性和输出成果的保密性。对服务过程中获知的任何客户系统信息

均属秘密信息,不得泄露给第三方单位或个人,不得利用这些信息进行任何侵害客户的行为;对服务的报告提交不得扩散给未经授权的第三方单位或个人。

标准性原则

渗透测试服务将在国家法律、法规允许的范围内进行,特别是遵照并履行《中华人民共和国人民警察法》第六条第十二款、《全国人大常委会关于维护互联网安全的决定》、《刑法》第二百八十五条、第二百八十六条等相关规定等。

遵守国内、国际与渗透测试有关的标准进行工作。同时在道德方面,也会严格遵守业界普遍认同的《计算机道德10个戒律》、《信息安全职业道德规范》、以及《网络道德的基本原则》。

规范性原则

渗透测试服务将按照安全服务工作规范、渗透测试实施规范进行严格落实。实施必须由专业的安全服务人员依照规范的操作流程进行,对操作过程和结果要有相应的记录,提供完整的服务报告。

可控性原则

可控性原则就是渗透测试服务中对被测试系统造成的可能的各种影响要能够控制得住,既要全面测试,又不能影响生产,服务的工具、方法和过程要在双方认可的范围之内,服务的过程中,避免出现被测试系统运行不稳定,影响生产运行的情况。

整体性原则

整体性原则是系统思维方法的一条基本原则。整体原则认为,世界上任何一个有机整体系统,不但内部各组成要素之间是相互联系的,而且系统与外部环境之间也是有机联系的。我们在处理与解决问题时,应当从整体出发,从分析整体内部各组成部分的关系以及整体与外部环境之间的关系入手,去揭示与掌握其整体性质。在原则指导下的渗透测试服务,强调以综合为基础,在综合的控制与指导下,分析发现的安全问题,对分析结果进行恰当的综合。

最小影响原则

渗透测试服务工作应尽可能小的影响被测试系统和网络的正常运行,不能对现有系统、网络的运行和业务的正常运行产生显著影响。

 

五.  渗透测试的范围

从整体看,一个网站主要有四个主要部分组成,包括:Web应用程序、数据库、中间件和操作系统,五个次要部分,包括:安全设备、同网段服务器环境、机房物理环境、人员管理、管理制度。渗透测试服务的范围主要包括了WEB应用程序、数据库、中间件、操作系统。

WEB程序包括:ASP、PHP、JSP、.NET、Perl、Python、Shell等语言编写的WEB程序。

数据库:Oracle、MySQL、MSSQL、Sybase、DB2、Informix等主流数据库。

中间件:Apache、IIS、Tomcat、Weblogic等主流WEB服务器,FTP、DNS等主流应用服务器。

操作系统包括:Windows、发行版Linux、AIX、Solaris、FreeBSD等主流系统。

 

六.  渗透测试的流程

渗透测试服务主要分为四个阶段,包括测试前期准备阶段、测试阶段实施、复测阶段实施以及成果汇报阶段。

1.前期准备阶段

在实施渗透测试工作前,技术人员会和客户对渗透测试服务相关的技术细节进行详细沟通。由此确认渗透测试的方案,方案内容主要包括确认的渗透测试范围、最终对象、测试方式、测试要求的时间等内容。同时,客户签署渗透测试授权书。

2.测试阶段实施

在测试实施过程中,测试人员首先使用自动化的安全扫描工具,完成初步的信息收集、服务判断、版本判断、补丁判断等工作。然后由人工的方式对安全扫描的结果进行人工的确认和分析。并且根据收集的各类信息进行人工的进一步渗透测试深入。结合自动化测试和人工测试两方的结果,测试人员需整理渗透测试服务的输出结果并编制渗透测试报告,最终提交客户和对报告内容进行沟通。

3.复测阶段实施

在经过第一次渗透测试报告提交和沟通后,等待客户针对渗透测试发现的问题整改或加固。经整改或加固后,测试人员进行回归测试,即二次复测。复测结束后提交给客户复测报告和对复测结果进行沟通。

4.成果汇报阶段

根据一次渗透测试和二次复测结果,整理渗透测试服务输出成果,最后汇报项目领导。

 

七.  渗透测试风险控制

为保障客户系统在渗透测试过程中稳定、安全的运转,需要提供以下多种方式来进行风险规避。

时间控制

从时间安排上,测试人员应尽量避免在数据高峰时进行测试,以此来减小测试工作对被测试系统带来的压力。另外,测试人员在每次测试前也将通过电话、邮件等方式告知相关人员,以防止测试过程中出现意外情况。

工具使用

在使用工具测试的过程中,测试人员会通过设置线程、插件数量等参数来减少其对系统的压力,同时还会去除任何可能对目标系统带来危害的插件,如:远程溢出攻击类插件、拒绝服务攻击类插件等等。

技术手段

渗透测试人员需要具有丰富的经验和技能,在每一步测试前都会预估可能带来的后果,对于可能产生影响的测试(如:溢出攻击)将被记录并跳过,并在随后与客户协商决定是否进行测试及测试方法。

监控措施

针对每一系统进行测试前,测试人员都会告知被测试系统管理员,并且在测试过程中会随时关注目标系统的负荷等信息,一旦出现任何异常,将会停止测试。

对象选择

为更大程度的避免风险的产生,渗透测试还经常选择对备份系统进行测试。因为备份系统与在线系统所安装的应用和承载的数据差异较小,而其稳定性要求又比在线系统低,因此,选择对备份系统进行测试也是规避风险的一种常见方式。

操作记录

测试人员会在测试过程中形成操作记录文档,以便出现意外后进行追溯。

沟通配合

测试过程中,确定测试人员和客户方配合人员的联系方式,便于及时沟通并解决工程中的难点。

 

八.  渗透测试工具

安全渗透测试服务会使用包括且不仅限于以下自动化工具进行安全测试。

服务探测:Nmap7.94等

漏洞扫描:Goby2.6.0、Openvas1.0.0、Xray1.9.11等

漏洞利用:Metasploit Framework6.3.16等

数据包分析:Burp Suite2023.7.2、WireShark Win32-2.9.0-gm.3等。

 

posted @ 2023-08-31 15:42  卷心菜的奇妙历险  阅读(64)  评论(0编辑  收藏  举报