概述
CodeQL代码查询工具
CodeQL是一个强大的语义代码分析引擎,可以扫描发现代码库中的漏洞。首先,该工具会先构建一个数据库,该数据库将已编译源代码的模型捕获为二进制文件。数据库创建完成后,就可以像其他任何数据库一样重复查询它。
CodeQL聚合了数据库,以便于之后在各种代码库中进行语义搜索,并根据构建的一部分特定代码查找可能跨越多个程序集、库或模块的代码示例。
CodeQL查询代码级IoC的方法
CodeQL工具使用了两种不同的策略,以搜寻与SolarWinds攻击相关的任何代码级别的攻陷指标(IoC)。第一种策略是通过寻找代码级IoC中突出的特定语法,另一种策略则是寻找代码级IoC中存在的技术的整体语义模式。
与正则表达式搜索相比,语法查询不仅编写和执行速度更快,且还具有许多其他优势。语义模式寻找恶意植入程序中使用的总体技术,例如哈希进程名称、与C2服务器联系之前的时间延迟等。
通过结合这两种方法,CodeQL工具能够检测到黑客使用相似语法并更改了技术,或更改了语法但使用了相似技术的情况。
总结
微软在博客中解释了如何将由整个公司的构建系统或管道生成的CodeQL数据库聚合到集中式基础结构中,并指出:“聚合CodeQL数据库使我们能够在众多代码库中进行语义搜索,并根据构建的一部分特定代码查找可能跨越多个程序集、库或模块的代码条件。我们建立了此功能,以在所描述的变体发生后的几个小时内分析成千上万的资源库以查找新描述的漏洞变体,但类似地,它也使我们能够快速地对Solorigate植入程序进行首次通过调查。”
微软现已经开放了一些用于评估代码级IoC的C#查询,有需要的组织可以直接从CodeQL GitHub存储库进行下载。
END
本文始发于微信公众号(SecTr安全团队):微软公开SolarWinds恶意代码检测工具的源代码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论