(一)渗透测试现状问题
渗透测试是业界熟知的用于发现安全威胁、提升系统与网络安全性的有效手段。它是通过模拟恶意攻击者的技术和方法,挫败目标系统安全控制措施,取得访问控制权限,并发现业务安全隐患和潜在攻击路径的安全测试评估方式。
渗透测试流程没有统一的定义,可参考的执行标准包括OSSTMM(Open Source SecurityTesting Methodology Manual)、NIST SP800-42、NIST SP 800-115网络安全测试指南、ISSAF(Information SystemsSecurity Assessment Framework)、OWASPTesting Guide、WASC-TC、PCI DSS 渗透测试指南、PTES(Penetration TestingExecution Standard)等。其中PTES标准应用最广泛,它具体定义了前期交互、情报收集、威胁建模、漏洞分析、渗透攻击、后渗透攻击、报告7个阶段。
图1:PTES渗透测试阶段流程定义
从工作方式来看,渗透测试现状问题如下:
渗透测试过程中通常需要结合大量工具完成综合性的测试,可能包括各类专用工具脚本、国内厂商各类漏洞扫描器、国外的Nessus、Kali、AWVS、Sqlmap、Burpsuite、Cobalt Strike、Core-Impact等,种类多数量大;
大部分工具只能作为渗透辅助工具,针对特定目标或场景产生价值。工具集合类的测试平台各环节关联度低、自动化程度低。各类工具的渗透策略、功能及使用配置方式存在差异,工具间的数据格式不统一,渗透测试人员需要投入大量时间精力进行调整干预;
测试过程高度依赖人工和专业知识经验,重复性流程多,效率低成本高,人工无法全天候持续验证威胁,局限性日益明显;
渗透人员能力、经验不同,使渗透测试过程、结果可能存在较大差异,难以标准化与量化评价。
(二)自动化渗透测试系统的组成与特性
自动化渗透测试通过对目标网络、系统的自动化分析,能够发现目标网络、系统潜在的脆弱性,并调用攻击载荷进行脆弱性验证,为解决上述问题提供了思路。
自动化渗透测试系统的核心在于实现攻击路径的自动发现与多路径的关联,即“目标识别、漏洞检测、漏洞验证、多漏洞关联”的流程自动化,实现“一键渗透,漏洞联动”。目前,典型的自动化渗透测试系统主要由决策引擎和自动化渗透测试框架构成。其中,决策引擎包含知识库、漏洞库、路径规划、数据分析、事件调度等模块,负责根据目标状态实现自动化决策,调度自动化渗透测试框架,发现攻击路径,确定有效的攻击载荷及参数;自动化渗透测试框架集成多种渗透测试工具/脚本,由决策引擎驱动,负责与被测目标的数据交互及格式化反馈信息。
图2:自动化渗透测试系统组成与工作方式示意
自动化渗透测试系统的重要特性:渗透测试框架工作流中的每一步操作都需要决策引擎的指令,类似于以“威胁建模”指导情报收集、漏洞分析、渗透攻击、后渗透各阶段的操作,并将不同阶段自动关联起来。实现“威胁建模”的核心在于知识库,知识库通常需维护<目标信息,漏洞检测策略>、<漏洞信息,攻击策略>、<攻击策略,攻击工具>等元组信息。
系统通过决策引擎指导、调度渗透测试框架工作,当前存在两种方式:漏洞视角与威胁视角。
漏洞视角
属于“目标-漏洞-利用”逻辑,系统通常集成Metasploit、Websploit、AutoSploit、APT2、Nmap等自动化工具,并完成工具串联。在情报收集、漏洞分析阶段,以漏洞普查为首要工作目标,尽量挖掘多的可能存在的漏洞,之后以每一个漏洞作为着眼点尝试进行利用。在测试过程的每个阶段,根据前一阶段的测试结果自动调用匹配的工具资源,形成一条具有多分支结构的自动化渗透测试攻击链。这种方式更强调“漏洞-工具”知识的建立、工具流程自动化、不同工具的连动及配置,漏洞覆盖度较好,可基于全量漏洞发现进而完成攻击路径规划,可能产生扫描流量大、速度慢、精准度不够等问题。
2.威胁视角
属于“目标-威胁-策略”逻辑。通常不集成大量的漏洞扫描、模糊测试工具、渗透测试平台,更强调攻击策略、脚本库的建立,针对目标信息与目标状态实现脚本精准化的渗透,扫描流量小,速度快,注重情报在渗透过程中的关联应用,兼顾漏洞攻击、密码破解、逆向攻击、社工等多种方式。
(三)智能化渗透测试系统:复杂场景下的自动化
当前,自动化渗透测试系统主要实现了基于规则的决策自动化。每看到“自动化”,人们往往希望将其升级为“智能化”、“AI化”,这种美好追求可落地转化为系统在复杂场景下自动化程度的提高,例如:
完成更多工具、平台的集成及RPA流程自动化;
系统针对不同目标场景具备不同的渗透策略,例如针对门户系统、办公系统、金融业务系统、工业控制系统等,可自动定制最佳攻击路径:包括最佳工具、薄弱口确认、高权限目标确认等;
具备自动绕过防御、检测机制。针对防火墙、WAF、流量监控、杀毒软件、恶意代码检测等,扫描与渗透行为如何自动识别、绕过、免杀;
具备渗透风险可控策略。系统按渗透预期可配置可调整,具备足够多的提示,可依据检测范围和检测强度要求,限定渗透手法和边界,控制渗透测试给业务带来的影响;
系统测试过程中能与目标系统完成自动化交互,例如能模拟用户鼠标键盘操作,在测试中自动触发目标系统各种功能,完成对更多业务环节与细节的深度渗透;
系统具备针对网络整体(非单点)的渗透测试规则,例如可自动化完成后渗透操作(权限维持、内网横向移动等);
系统具备自学习规则,例如结合实际使用数据、样本数据给予不同工具、攻击路径的置信度,可通过自学习不断修正决策引擎。