作者简介:Senjay,某企业安全架构师。有多年安全技术建设经验,专注于应用安全、数据合规及安全运营技术等信息安全技术领域研究。全栈开发能力,曾主导研发交互式缺陷定位技术的安全自动化平台并获得相关专利。安全技术爱好者。

一、引言

安全建设的发展阶段,分为合规驱动建设阶段、实战驱动建设阶段和算法驱动建设阶段。其分别侧重基础安全信息化建设(1个安全平台+N个安全产品)、数据化和自动化以及基于算法模型的风险控制。

笔者结合了SDL、IPDRR来设计实战驱动建设阶段风险管控体系,或称风险收敛体系。

为更好应对愈演愈烈的网络安全形势,企业根据自身安全文化特点和目标,在不同安全建设阶段选择合适的自动化技术打造DevSec非常关键。而在技术选型之前,安全负责人应该清晰认知当前发展阶段和提前了解自身企业的业务文化并设定能适配业务文化的安全文化建设目标。有了目标才能更好的、清晰的进行愿景设计,包含产品愿景、技术愿景与团队发展愿景。

愿景设计与产品技术选型息息相关,一定程度上决定了产品的可持续发展空间和团队技术发展空间, 对团队技术型人才的育留起关键作用。而DevSec自动化技术选型,产品愿景是解决安全左移的风险修复成本问题和安全工程师重复劳作的效率问题;技术愿景是实现“低侵入、低误报、低脏数据”的自动化风险发现和面向安全工程师具备细粒度且高灵活的配置与调度空间;团队愿景是借助产品的能力,使安全团队的作业模式,从人才输出型枯燥的渗透测试、安全运营中更多的倾向人才输入型有趣的漏洞研究。

二、Devsec自动化关键技术选型

DevSec自动化漏洞检测技术的选型,笔者综合选择了IAST污点传播分析技术及BAS攻击模拟工作站。

  • IAST,污点分析技术

  • BAS,模拟攻击工作站

在满足漏洞研究第一阶段攻击payload运营与持续集成的条件下,在构建和测试阶段通过自动化灰盒测试保障软件开发安全,同时部署内外网攻击模拟工作站通过黑盒测试的方式定时巡航进行自动化渗透并持续验证安全运营的有效性,形成高频风险场景的小规模攻防演习,快速发现安全运营盲区。

IAST,交互式应用安全测试,Interactive Application Security Testing。对内保障软件生产安全,建议优先选择IAST。原因其一,IAST是应用安全检测技术中最接近实现“低侵入、低误报、低脏数据”的三低状态,以灰盒的方式,检测未知及已知的应用漏洞。其二,IAST技术具备可持续发展性,检测能力一旦运营成熟,集合插桩技术可以攻守转换,转型RASP(应用运行时自我保护,Runtime application self-protection),利用应用自身具备更好资源负载的情况下使应用自身具备攻击防护能力,解决传统的网关型应用防火墙过渡依赖请求特征检测攻击模式下需要消耗大量资源且特征库存储量快速增长、频繁更新的问题。即使有云应用防火墙的加持下,利用虚拟化技术优化了动态扩容,但在攻防实战中,旁路部署架构往往面对高并发应用漏扫或大报文攻击掩护下,云应用防火墙也会被“胁迫”放行,从而有绕过云应用防火墙防护的风险。

BAS,入侵和攻击模拟,Breach Attack Simulation。2021年7月,Gartner发布《Hype Cycle for Security Operations, 2021》2021安全运营技术成熟度曲线,对主流的安全运营技术进行了解读,预测创新技术的发展阶段,而BAS是关注热度最高的技术。笔者认为,BAS攻击模拟工作站与DAST交互式缺陷定位技术思路本质上是一样的,但更加突出了分布式入侵的自动化渗透能力和增加了攻防对抗场景下面向高频攻击场景的安全运营水平校验。

无论是IAST还是BAS技术也好,更多是安全产品意识形态和市场需求的转变,由合规驱动走向实战驱动安全产品。

《Hype Cycle for Security Operations, 2021》

三、IAST,污点分析技术

1、污点分析定义

  • 污点源(sources):即外部可控的具有攻击特征数据的入口(如:对外的接口变量)。

  • 污点汇聚点(sinks):经污染后直接产生安全危害的代码语句(污点数据传播到高危函数)。

  • 无害处理(sanitizers):可称清洁函数、净化函数或过滤函数,污点经过此函数处理后不再具备攻击特征的代码片段。

  • 污点标记(tainted tag):标记出污点数据。

  • 污点路径:污点源到污点汇聚点的传播路径。

  • 动态污点分析技术:即追踪污点数据(即污点变量)在程序运行过程中的传播路径(即堆栈信息),检测程序是否非法使用过污点数据,从而确定是否存在未知及已知的漏洞。

2、动态污点分析过程

污点分析处理过程可以分成3个阶段,污点输入、污点传播、污点汇聚

(1) 污点输入阶段:识别污点源和汇聚点

(2) 污点传播阶段:污点传播分析

(3) 污点汇聚阶段:无害处理的识别与处理效果分析,污染研判

3、污点分析示例

(1)污点路径:

(2)污点标记与污点传播路径:

(3)污点数据被无害处理:

4、污点传播分析与程序语句分析

污点传播分析就是分析污点数据(污点变量)在程序中的传播路径。先完成污点标记,标记出污点源和污点汇聚点,然后跟踪其传播路径并进行程序语句分析,最终的目标是判断污点数据是否成功传播至污点汇聚点,造成污染成功,以评估是否存在漏洞。

污点传播分析分为显式流分析和隐式流分析。显式流分析是分析污点标记是如何随程序中变量之间的数据依赖关系传播的。隐式流分析是分析污点标记如何随程序中变量之间的控制依赖关系传播

(1)显示流分析:

1~8,污点数据从污点源到污点汇聚点有清晰的数据依赖传播路径。

(2)隐式流分析:

5~8,污点数据经过控制转移语句,污点传播路径识别依赖程序语句分析,传播呈扩大态势。

(3)污点传播分析的技术难点:

污点传播技术分析也存在欠污染(under-taint),过污染(over-taint)的问题,欠污染是污点数据标记跟踪缺失的问题,过污染是需要跟踪的污点数据标记多导致路径分析嵌套层数过多的问题。此类问题需要结合实际场景和目的进行综合分析。

5、动态污点分析工作流

应用程序及插桩agent启动:

(1)应用程序及插桩agent启动后,插桩agent可自动遍历并识别接口信息

(2)污点信息标记,输出污点路径数据(污点源/污点汇聚点)

(3)数据上报自动化平台

应用程序正常业务交互时:

(4)接口调用监控,记录接口运行时的请求报文

(5)根据污点路径数据,模拟应用程序运行,根据污点库中的污点规则进行污点数据投递,记录并上报污点变量传播路径的堆栈日志

(6)自动化平台进行污点路径数据分析,包含污点路径分析及程序语句分析,并转译为中文,增加运营人员的漏洞判断的易读性

(7)污点汇聚检查功能,污染研判(漏洞检查)

污点分析工作流图示:

污点路径数据分析图示:

三、攻击模拟工作站基本原理

1、解决的问题

(1)将部分手工渗透攻击作业经验流程沉淀为自动化脚本,释放人力,安全工程师投入更多的时间进行漏洞研究,攻击规则的持续运营。

(2)通过自动化渗透验证企业面对高频风险场景的应急处置能力,评估事件预案的有效性和防护盲区。

2、团队进入漏洞研究的基础阶段

从开源的漏洞攻击载荷库中采集历史nday漏洞攻击payload。

3、BAS模拟攻击系统功能架构与红蓝对抗引擎设计

4、攻击模拟工作流

(1)根据渗透方案,红队发起攻击任务。

(2)工作站模拟攻击,进行内外网自动化渗透。

(3)蓝队根据攻击事件预案进行应急处置。

(4)红蓝对抗复盘,扫清视野盲区。

四、总结

以上是笔者关于Devsec自动化技术选型的介绍,主要是从产品愿景、技术愿景与团队发展愿景等三个愿景出发进行选择。OpsSec亦然,合理的技术选型既能保障业务安全航行,又能自下而上的带动企业安全文化建设和团队建设。后续有机会再继续分享下OpsSec自动化与数据合规建设的经验。

声明:本文来自阿肯的不惑之年,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。