冬训营丨基于安全开发响应Log4j
上图左侧是源码安全扫描套件AntiySCS,其包含用于源代码扫描的白盒测试工具 应用静态安全检测AntiySAST,以及用于确定软件中所用组件和库的来源,并识别是否存在已知漏洞的软件组成分析AntiySCA。
该套件用于实践“安全左移”思想,更多的关注研发流程的“左”边,即在更早的环节中进行安全介入和管控。
右侧在检测和响应部分,除了传统的流量安全设备如WAF、探海,我们还提供了基于运行时自我保护技术的应用威胁自免疫AntiyRASP,通过两者的互补性结合可以为应用提供更完善的安全防护、监控与分析能力。
在预防阶段,我们提供了容器镜像安全扫描工具,分析容器镜像中的安全风险。
基于灰盒扫描的应用交互式测试工具IAST,尚在开发阶段,未来也会从属于源码安全扫描套件中。
2.1 源码安全扫描套件其一:应用静态安全检测 AntiySAST
相比于上线后,通过各类黑盒众测,亡羊补牢地发现漏洞并修复,如果能在开发期间就发现漏洞,并将问题扼制在源头,将使修复难度、成本大幅下降。这也是在实践SecDevOps流程中,核心的关键点之一:安全左移。
实践安全左移(也即:代码原生安全)的方式,除了增强安全意识教育、安全框架的引入等,更需要AST(Application Security Testing)应用安全测试类工具在SecDevOps中的使用。而AST工具中最基础的就是基于白盒的静态应用安全测试工具SAST(Static Application Security Test)。
SAST工具不需要运行目标应用程序,因此可以在开发生命周期的早期使用,因为修复成本很低。
AntiySAST目前可检出的安全风险类型,包含了OWASP、CWE中常见的漏洞分类,除此之外我们还扩充了的一套安全风险规则库,帮助开发者避免使用废弃函数、不安全加密等可能的安全风险。
AntiySAST目前支持Java、Python的检测,使用的主要检测技术包含正则匹配、AST(抽象语法树)语法分析、静态污点分析技术。
图2 AntiySAST扫描结果截图
再谈及SAST工具的一个难以绕过的问题,就是误报率问题。
误报率高是传统SDL流程中SAST类工具的一大痛点,一方面我们在降低误报率上做出了很多努力,效果显著,另一方面在实际的SecDevOps实践中,较短的CI间隔使得误报率问题对开发人员造成的负担有所降低。因为扫描结果是增量迭代的。少量多次的增量内容能让开发人员更好进行针对性研判、修复,并能感知开发过程中的安全风险变化。
2.2 源码安全扫描套件其二:软件组成分析 AntiySCA
保障供应链安全的痛点
我们常会遇到这样的问题,如何快速自查资产的依赖版本是否在受影响清单中?或者该升级到哪个版本?是否存在间接依赖导致修复不完整的情况?
即使运维人员能够在某个时刻保证所有依赖版本的安全性,但随着新依赖的增加,或更多安全补丁的引入,运维人员又需要重新进行依赖安全的评估。而一个中小型项目的依赖数量能达到近百个,这无疑加大了运维人员的负担。
AntiySCA介绍
为了解决上述的几个常见问题,自动化的软件组成分析工具在SecDevOps流程中的引入必不可少。
AntiySCA是一种针对源码工程或者二进制可执行文件的成分分析工具,它可以识别代码库中的开源软件及其对应的历史漏洞信息,并提供修复建议。SCA能够替代繁重的人工步骤,在开发阶段及时阻断不安全的组件,从而防止来自供应链的污染。
上图为某真实案例的依赖扫描结果。
AntiySCA目前支持多种语言依赖的扫描,包括C/C++、Java、Golang、JavaScript、Node、Python、PHP、Ruby、Rust。
AntiySCA主要优势有以下两点:
能识别出不安全的间接依赖;
能识别出二进制可执行文件、安卓应用程序、IOT固件中的不安全组件。
2.3 源码安全扫描套件 AntiySCS
图5 源码安全扫描套件 AntiySCS 全局视图
通过AntiySCS的全局视图,可以在时间范围、项目两种筛选维度进行筛选,统计视图中,包含了各等级漏洞统计趋势图、风险分布图、出现最多的漏洞信息等。
传统流量安全设备与运行时自我保护技术配合起来相得益彰
RASP是什么技术
• RASP全称运行时自我保护技术(Runtime application self-protection)。
以一个比喻来通俗的解释,以WAF为代表的应用外的安全措施,就像是戴口罩,将攻击请求拦截在应用外部,而RASP就像是打疫苗,为应用自身提供防御能力。
AntiyRASP目前支持Java语言的防护,Python、PHP、Golang语言的防护能力尚在开发当中。
AntiyRASP的检测能力覆盖了大部分的OWASP TOP 10漏洞,包括不安全的反序列化、敏感数据泄露、SSRF、XXE漏洞、SQL注入、命令注入、敏感数据泄露等。
WAF与RASP配合起来相得益彰
4.1 Log4j漏洞简单介绍
4.2 针对Log4j漏洞披露前,工具链如何保障应用不受侵害
4.3 Log4j 漏洞披露后,工具链持续响应
-
应用威胁自免疫 (AntiyRASP) 新增检测算法
应用静态安全检测(AntiySAST)添加了新的污点传播规则
软件组成分析(AntiySCA )增加Log4j漏洞信息(CVE-2021-44228)
■ 影响面确认:通过自动化的SCA扫描,确认公司是否受到影响,以及那些资产受影响。
■ 风险同步:邮件通知到对应的资产责任人,将漏洞可能造成的影响、官方的解决方案或缓解措施给到资产责任人。
■ 持续跟踪:在SecDevOps流水线中,持续同步漏洞的最新进展。
如下图所示,通过AntiySCA,可以发现由间接依赖所导致的供应链威胁