姜宁 聂滢 冀文 兰建明 卢永頔 张雷 田硕
根据杀伤链模型描述,在网络攻击中,攻击者首先会对目标网络进行信息收集,发现企业互联网暴露面资产如IP、端口等信息,进一步探查资产的安全漏洞、弱口令等脆弱性信息,即发现“攻击面”。
攻击面发现、识别是从攻击者角度,全面寻找攻击目标的潜在攻击路径。攻击者一般首先需要依靠攻击面识别,执行对目标系统的初始入侵,然后才能基于初始入侵成果,实现持续攻击。如果防守方提前执行攻击面识别和收敛,可提前摸清家底,最大程度“封堵漏洞”,从而实现对攻击的提前主动防御。
实现攻击面的识别和收敛是网络空间主动防御的发展趋势。但企业全量的攻击面识别和收敛在实现过程中存在诸多挑战:
1.企业数字化转型、企业上云带来了更复杂的网络和系统,大规模网络空间资产难以实现有效监管,容易出现被攻击者利用的“影子资产”。
2.传统资产漏洞管理模式存在漏洞检测误报较多,安全管理人员不能结合资产和业务的重要程度为安全漏洞进行威胁级别排序,进而影响安全保障人员,极大的降低了优先处置重要资产业务漏洞的效率。
3.对大规模企业资产,传统脚本探测等工具无法实现基于IPv4、IPv6双栈的实时监测、不能迅速发现互联网暴露的新资产、新漏洞等攻击面,不能及时进行攻击面威胁的可利用性验证。
攻击面识别和收敛存在的挑战,需要采用自动化的攻击面识别和攻击面威胁可利用性自动验证技术来解决。
攻击面是网络空间资产能被访问和利用的所有可能网络入口的总和。Gartner在《 2021 安全运营技术成熟度曲线》中明确提到了攻击面的两个新兴技术:网络资产攻击面管理( Cyber assetattack surface management)和外部攻击面管理( External Attack Surface Management)。其中网络资产攻击面管理着眼于网络空间内部资产,外部攻击面管理面向互联网暴露资产。两类攻击面管理技术都强调对暴露资产以及攻击面进行科学高效的管理是实现攻击面收敛的必要手段。
目前攻擊面收敛的方法一般流程如图1所示。
资产识别往往借助网络空间资产测绘、自动化扫描、敏感信息发现技术及资产指纹知识库进行IT资产、数字资产、API资产等网络空间暴露资产的发现和实时监测。
资产攻击面及威胁发现通过融合多种漏洞检测引擎,发现资产弱口令、泄露的登录凭证、资产漏洞等资产攻击面威胁。
资产威胁可利用性验证通过自动化手动等多种方式对发现的攻击面威胁进行渗透测试,根据渗透测试的结果确定威胁是否能被利用来进行叠加攻击,重新确定威胁的严重级别。
资产最大风险攻击路径评估,通过攻击面威胁严重级别、资产和业务重要级别,对资产从外到内的攻击路径,进行自动化最优攻击路径评估。评估得到的最优攻击路径就是网络空间资产最大风险攻击路径。
资产攻击面威胁优先处置列表展示最大风险攻击路径上的可利用威胁,并按威胁级别排序。排序的资产攻击面威胁列表方便安全运营人员按威胁级别启动列表上显示的资产威胁处置流程、威胁处置状况、威胁处置结果。
资产威胁处置闭环通过工作流引擎,对资产攻击面威胁执行威胁处置流程生成、威胁处置工单流转、威胁处置结果验证、威胁处置流程结束归档等工作。
从攻击面收敛流程可以看到,资产威胁可利用性验证是攻击面威胁优先排序、攻击面威胁处置闭环的基础。资产威胁可利用性验证有手工验证和自动化验证两种手段。人工智能自动渗透测试能自动化完成从信息收集、漏洞验证、漏洞利用、输出报告的攻击面威胁验证全过程。人工智能自动渗透测试系统拥有丰富的操作系统、开源框架、Web应用指纹知识库,漏洞库和漏洞利用PoC库,基于机器学习的软件版本识别算法,基于机器学习的漏洞利用引擎算法。因此,人工智能自动渗透测试系统能精准识别业务的操作系统、开源软件、Web应用的相关软件信息,再根据产品信息查询漏洞库,并进一步调用渗透测试后台,确认网络资产存在的实际攻击面威胁,较大程度提高渗透测试全面性和效率。另外,人工智能自动化渗透测试系统支持定时任务和周期化执行任务,可实现对不同类型的目标进行持续性、常态化的资产漏洞渗透测试,能够弥补熟练渗透测试人员不足、手工渗透测试不能有效持续进行攻击面威胁监控的实际问题。人工智能自动渗透测试技术兼有高效自动化的攻击面识别和攻击面威胁可利用性自动验证能力,有助于确定威胁处理的优先级,从而可有效解决攻击面收敛的挑战。
(一)人工智能自动渗透测试系统总体框架
人工智能自动化渗透测试系统一般由支撑模块和人工智能自动威胁验证模块组成,如图2所示。
支持模块包含:端口扫描引擎、Web爬虫引擎,Matesploit Framework系统模块、软件指纹库,Web应用指纹库(包括:CMS系统、框架、操作系统、Web应用、Web工具),CVE漏洞库。其中:端口扫描引擎扫描目标开放端口,生成目标存活、开放端口及服务产品信息;Web爬虫引擎对识别到的Web端口执行Web内容爬取,保存爬取到的Url列表;Msf Framework框架提供漏洞验证后台能力。
自动威胁验证模块包含:人工智能系统漏洞验证引擎、人工智能 Web应用指纹识别引擎、人工智能Web应用漏洞验证引擎。人工智能系统漏洞验证引擎调用端口扫描引擎,解析端口扫描引擎识别的目标开放端口信息,获取服务产品信息,然后基于机器学习库和深度学习算法,调用Msf Framework框架对目标端口的服务执行漏洞自动渗透测试,完成目标端口威胁可利用性验证业务;人工智能 Web应用指纹识别引擎调用Web爬虫引擎对目标指定Web路径执行Web内容爬取,根据Web响应及Web指纹库和人工智能分类算法识别Web应用指纹,包括CMS系统、Web应用路径上使用的开源框架、操作系统、Web工具、Web应用路径上的Web应用服务器等产品信息和版本信息,同时根据CVE库识别Web应用路径(Url)上产品潜在的CVE漏洞。人工智能Web应用漏洞验证引擎根据人工智能 Web应用指纹识别结果,调用Msf Framework对识别到的产品和潜在Web应用漏洞执行自动化渗透测试,完成Web应用威胁自动验证业务。
(二)人工智能自动化渗透测试方案
人工智能自动化渗透测试包含人工智能系统漏洞自动验证子业务和人工智能 Web应用漏洞自动验证子业务。人工智能系统漏洞自动验证子业务完成非Web应用漏洞的可利用性验证。人工智能Web应用漏洞自动验证子业务完成Web应用上产品漏洞的可利用性验证。总体方案,如图3所示。
1. 人工智能系统漏洞自动验证方案
人工智能系统漏洞自动验证方案由漏扫、端口和服务识别、智能渗透测试模型训练、智能渗透测试模型攻击等主要模块组成。首先从暴露面管理平台获取网络空间IP资产列表,然后选定IP地址执行端口扫描,获取存活端口服务、产品信息,利用产品信息从Msf Framework渗透测试框架获取服务漏洞信息和漏洞利用脚本信息,接着执行人工智能渗透测试模型训练,在人工智能模型训练完成后,保存人工智能渗透测试模型,最后装载训练好的人工智能渗透测试模型,对目标执行自动化渗透测试攻击,可利用漏洞形成漏洞利用报告。
2.人工智能 Web应用漏洞自动验证方案
人工智能 Web应用漏洞自动验证方案由漏掃、Web端口和服务识别、智能版本识别模型、渗透测试等主要模块组成。首先从暴露面管理平台获取网络空间IP资产列表;然后选定IP地址执行端口扫描,获取存活端口和Web路径信息;接着调用爬虫引擎执行Web目录爬取,对爬取到的Web路径执行Web请求,对Web请求响应依次调用基于Web应用指纹库的应用产品识别、正则表达式版本识别、机器学习版本识别、特殊路径产品指纹识别,生成包含目标IP、Web路径、产品名、产品版本的Web应用信息列表;对生成的产品列表及版本,查询本地CVE漏洞库,获取产品历史漏洞信息,生成产品安全检测报告;最后遍历Web应用信息列表,对每个Web应用产品及对应发现的Web Url位置,利用Msf Framework渗透测试框架对目标执行自动化渗透测试攻击,可利用漏洞形成Web应用漏洞利用报告。
在日趋激烈的网络空间对抗中,数字化应用系统首先面临着系统和Web应用层两大类攻击面威胁的利用攻击。这两大类攻击面是攻击者的首先切入点。防御方如果能尽早发现攻击面上的威胁,提前进行威胁处置闭环,将极大改善自身的主动防御能力。
人工智能自动化渗透测试技术基于知识库和人工智能算法,在系统漏洞和Web应用漏洞自动化验证上提供了强有力的支撑。系统由于采用了真实的渗透攻击方式,解决了“传统资产漏洞管理存在误报较多”的问题,为安全问题的闭环处置提供了更精准的目标;由于系统高度自动化,人工智能自动化渗透测试也为网络空间攻击面的全时段持续监控、攻击面持续收敛管理提供了坚强的技术基础。
作者单位:中移动信息技术有限公司