Web安全渗透测试流程研究

2021-12-14 09:34靳羽丰夏必胜
网络安全技术与应用 2021年12期
关键词:安全漏洞漏洞威胁

◆靳羽丰 夏必胜

Web安全渗透测试流程研究

◆靳羽丰 夏必胜通讯作者

(延安大学 数学与计算机科学学院 陕西 716000)

在互联网产业高速发展的今天,整个传统行业都在向“互联网+”靠近,企业信息化的过程中大多数应用都架设在Web平台上,随着SolarWinds供应链攻击、圆通百万用户个人信息泄露、委内瑞拉全国性断电等多起大型Web攻击事件的爆发,Web应用系统的安全风险达到了前所未有的高度。Web安全渗透测试已成为评估Web系统是否安全的重要手段。所谓Web安全渗透测试就是通过模拟从内部或外部对系统发起攻击,从而获取系统中的敏感信息的过程。以往对于Web安全渗透测试的研究偏重于对渗透测试某一阶段的研究,缺乏对整体渗透测试流程的探索,使得测试效率低下。本文首先阐述了Web安全渗透测试的概念,在综合实际需求的情况下,在传统渗透测试流程中新增威胁建模和漏洞分析阶段,总结出一套完整的渗透测试流程。

1 引言

在互联网时代,任何一家有数据价值的企业,或多或少都会利用Web站点提供服务。电子商务、电子政务、在线支付等信息化的产物给各行业带来升级的同时,一些不法分子正通过攻击尚未成熟的Web应用获取非法利益。

对于已有的频发Web漏洞,安全厂商开发出一系列Web安全评估产品和设备,如天融信的防火墙、启明星辰的入侵防御、绿盟的漏扫等,但是这些设备只是对已有的频发Web漏洞的被动防御[1],很容易被水平较高的黑客绕过,且很少能发现0day漏洞[2]。

为确保Web系统的安全性,我们通常模拟黑客攻击方法,利用渗透测试来评估Web系统的安全性[3]。渗透测试人员通过信息收集、漏洞探测等手段对目标网络进行渗透,最终输出渗透测试报告,管理员根据渗透测试报告,可以明确知晓系统中存在的安全隐患和问题。

在网络安全形势日益严峻的情况下,安全领域不乏对Web安全的研究,如蒲石主要对SQL注入和XSS漏洞的形成原因和验证方法进行了研究[4],郑雷雷等人从攻击者的角度,分析了Web软件常见的安全漏洞和测试方法[5],田伟提出了模型驱动的SQL注入渗透测试方法,以提高对Web应用SQL注入安全漏洞渗透测试的准确度[6]。Wang Xiaoyu等人提出了一种基于IP端口服务技术的网络信息安全渗透测试方法和渗透思路[7],Zhang Bo等人探索了二进制程序漏洞特征提取和漏洞发现指导策略生成方法[8],郎智哲等人研究了渗透测试中信息收集阶段的任务[9]……通过阅读大量与Web安全渗透测试相关的文献,发现以往的研究集中于发现并防范已公布的高危漏洞,或是对渗透测试中的某一阶段进行深入研究。对于渗透测试整体流程,往往介绍得很笼统,忽略了对威胁建模[10]和漏洞分析[11]阶段的研究,使得整体测试效率较低。

本文在传统渗透测试流程中增加了威胁建模和漏洞分析阶段,整理出了一套较为完整的Web安全渗透测试流程,阐述了每个阶段的具体任务。

2 Web安全渗透测试概念

渗透测试[12]是测试人员模拟黑客入侵系统的手法,在合法授权范围内,通过情报搜集、漏洞挖掘、权限提升等一系列行为,对目标系统进行深入探测,找出系统漏洞和风险所在,并提出修补意见和方案。渗透测试的优点就是输出的报告能够让管理员直观了解当前系统的安全状态,有针对性的修补安全漏洞。

Web安全主要围绕Web技术展开,包括客户端、服务端、数据库、通信协议等问题。Web安全渗透测试主要测试Web应用程序和设备配置情况,通过采用合法且可控的手段,找出目标服务器、应用程序、通信协议以及网络配置中的安全隐患。

3 Web安全渗透测试实施流程

Web安全渗透测试不是毫无目的的攻击,而是有规划有目的的,有规划的攻击往往能事半功倍。渗透测试过程中的威胁建模和漏洞分析阶段的主要任务就是规划出最适合的攻击通道和攻击点,但这两个步骤往往容易被忽略,导致渗透测试人员对于攻击的关键点把握不明确、耗时太多。通过分析,本文在传统的渗透测试流程中加入了威胁建模阶段和漏洞分析阶段,以提高渗透测试成功率,具体的渗透测试流程如下:

(1)前期交互阶段

前期交互(Pre-EngagementInteraction)阶段是渗透测试的先决条件,该阶段测试团队需要与客户进行沟通和讨论,通过收集客户需求,确定测试目标、定义测试范围、确定测试团队、制订测试计划。还要保证过程沟通机制,做好风险规避及应急准备,最终签订双向责任书。

(2)情报搜集阶段

在目标范围确定之后,需进行情报搜集(InformationGathering)阶段,渗透测试团队利用各种信息来源与情报搜集方法,对渗透目标进行细致的侦察,至少获取但不限于网络拓扑、机房位置、业务情况、系统配置、系统版本、补丁级别、系统漏洞、防御措施等信息,形成对目标网络的轮廓认识,为绕过防御、实施攻击做好准备。对于关键员工,需要收集其履历背景、网络足迹、博客、留言信息、物理位置、工资银行账户等个人信息。

搜集这些情报通常可以借助自动化扫描工具和手工收集等方法,如使用站长之家、Nmap端口扫描器、WhatWeb指纹识别工具、社会工程学等进行信息收集。这一阶段是渗透测试成败的关键,如果遗漏某些关键信息,后面的阶段可能无法进行。

(3)威胁建模阶段

威胁建模(ThreatModeling)阶段是渗透测试过程中很重要却容易被忽视的一个关键环节。它是一种结构化方法,用于分析和解决问题,通常用来识别、量化并应对风险。在搜集到足够的情报之后,渗透测试团队会理清攻击思路,充分考虑渗透测试在每一个可攻击通道的破坏效果和攻击风险,通过进行威胁建模分析,找出客户系统上可能存在的安全漏洞,确定出最可行的攻击信道。

威胁建模阶段一般会对被测单位的业务资产、业务流程、威胁对象和威胁能力进行分析。业务资产和业务流程分析是对单位自身情况的梳理,威胁对象和威胁能力分析则是对攻击者的画像,对于业务流程的分析包括基础设施分析、每个业务线上相关人员的分析,以及对所使用的第三方平台的分析;而威胁能力分析则是通过列举攻击者可能使用的渗透测试工具、公开的渗透代码、公司透明的通讯机制等信息分析攻击者对被测单位的威胁力度。通过分析被测单位的自身情况和面临的风险,模拟攻击者在被测单位业务流程中的任意环节进行攻击,找出最易攻击的信道。

图1 威胁建模分析框架

威胁建模的目标是识别和消除设计中的问题,开发团队在软件架构过程中应尽早执行威胁建模,但如果无法实现,无论是系统已经部署了或者上线了,威胁建模仍然是有效的安全实践活动。

(4)漏洞分析阶段

在确定出最可行的攻击通道之后,接下来需要考虑如何获得目标系统的访问控制权,即漏洞分析(VulnerabilityAnalysis)阶段,这一阶段其实是威胁建模的延伸。

在这个阶段,测试人员需要综合情报搜集阶段中获取的漏洞和端口扫描信息,对发现的漏洞充分分析其原理、产生根源和风险等级等,判断其对客户业务的危害程度,通过分析,找出具体可以实施攻击的点。漏洞分析主要分为漏洞测试、漏洞验证和漏洞分析三个步骤,测试一般分为主动和被动两种,均可以采用手工或工具自动化扫描方式进行;验证主要是对测试的结果进行确认,验证的方式有很多种,如可以根据扫描器的扫描结果进行关联验证、手工验证、隔离实验室验证等;最后对验证的结果进行进一步研究,一般会对一些代码托管平台、通用缺省口令、厂商漏洞公告等公开资源进行研究,再对私有的安全配置和潜在攻击路径进行研究。在这个阶段,如果能充分挖掘到目标系统存在的安全问题,找出关键通路上能被利用的未知安全漏洞,就可以快速打开攻击通道上的关键路径。

图2 漏洞分析框架

(5)渗透攻击阶段

渗透攻击(Exploitation)是渗透测试过程中最重要的环节。在此环节中,渗透测试团队根据前期的信息收集和漏扫结果基本可以确定漏洞类型,此时就可以采取适当的方式部署攻击方案。如攻击的最佳时间、攻击切入口、攻击方法和攻击工具等。常见的Web攻击方式有SQL注入、XSS跨站脚本攻击、口令爆破、拒绝服务等。利用找出的目标系统安全漏洞,可以真正入侵到系统当中,提取管理员权限,即控制访问权。

(6)后渗透攻击阶段

后渗透攻击(PostExploitation)阶段开始于某些客户系统已被破坏或已经获得管理权限之后。在这个步骤中,渗透测试团队根据客户的业务模型和安全防御计划的特点,确定关键的基础设施,并查找客户组织中比较敏感的信息,如摄像头、视频监控器、LED大屏幕、WiKi、高价值文档、数据库信息。通过安装远程控制后门并采用免杀技术进行权限维持,以获取源源不断的数据,最后进行痕迹擦除,避免管理员发现后失去访问控制权限。

(7)撰写报告阶段

渗透测试报告(Reporting)至少分为摘要、过程展示和技术发现这几个部分,摘要包含之前所有阶段之中获取到的关键情报信息、探测和发掘出的系统安全漏洞,能让客户清晰知道系统存在的问题;过程展示则是成功渗透攻击的过程,能让客户知道自己的系统不是牢不可破的,加强客户的危机意识和安全保护意识;技术发现部分展示能造成业务影响后果的攻击途径,这部分将会被客户组织用来修补安全漏洞,这也是渗透测试中真正价值的体现。

在编写报告时,需要站在客户组织的角度上,帮助他们分析系统中的薄弱环节,给出修补建议,并告知他们利用发现的安全问题来提升安全意识,提高整体的安全水平。

4 结语

Web安全渗透测试作为一种主动式安全防御方法,得到了广大用户和网络安全机构的重视,本文为提高渗透测试的效率,在传统渗透测试流程中增加了威胁建模和漏洞分析阶段,在渗透测试实施前对面临的风险和漏洞进行分析,提出了包括渗透测试前期交互、情报搜集、威胁建模、漏洞分析、渗透攻击、后渗透攻击和撰写报告等7个阶段的Web安全渗透测试流程和各阶段工作内容,对于学习和从事Web安全渗透的人员具有一定参考作用。

[1]唐晓东,唐伟,王贤菊.入侵检测系统与漏洞扫描联动的应用研究[J].网络安全技术与应用,2014(08):121+123.

[2]李沁蕾,樊旭东,闫海林,等.银行系统0day漏洞挖掘与分析方法研究[J].中国金融电脑,2020(10):67-72.

[3]徐光.基于Kali Linux的Web渗透测试研究[J].信息安全与技术,2015,6(03):56-58.

[4]蒲石. Web安全渗透测试研究[D].西安电子科技大学,2010.

[5]郑雷雷,宋丽华,郭锐,等.B/S架构软件的安全性测试研究[J].计算机技术与发展,2012,22(01):221-224.

[6]田伟. 模型驱动的web应用SQL注入安全漏洞渗透测试研究[D].南开大学,2012.

[7]Wang Xiaoyu,Li Dandan. Research on network information security penetration test based on IP port service technology[J]. Journal of Physics:Conference Series,2021,1856(1).

[8]Muhammad Noman Khalid et al. Web Vulnerability Finder(WVF):Automated Black-Box Web Vulnerability Scanner[J]. International Journal of Information Technology and Computer Science(IJITCS),2020,12(4):38-46.

[9]郎智哲,封筱宇,董齐芬.浅谈Web渗透测试的信息收集[J].计算机时代,2017(08):13-16.

[10]常艳,王冠.网络安全渗透测试研究[J].信息网络安全,2012(11):3-4.

[11]袁子牧,肖扬,吴炜,等.知识、探索与状态平面组织的软件漏洞分析架构研究[J].信息安全学报,2019,4(06):10-33.

[12]李维峰.Web应用程序渗透测试浅析[J].网络安全技术与应用,2021(03):5-6.

国家自然科学基金项目:多维性能相关退化系统可靠性建模与计算研究(71961030);延安市科技局项目:深度学习在语言模型及翻译中的应用(203010096);延安大学项目:深度学习在自然语言处理(205040306)

猜你喜欢
安全漏洞漏洞威胁
漏洞
基于模糊测试技术的软件安全漏洞挖掘方法研究
人类的威胁
智能设备安全漏洞知多少
受到威胁的生命
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
安全漏洞检测技术在计算机软件中的应用
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞