AutoWarp 是 Azure 自动化服务中的一个严重漏洞,通过该漏洞,攻击者可以在未经授权的情况下访问使用该服务的其它 Azure 客户的 Azure Automation 账号凭证,然后访问该账号下分配的资源与数据。
我们的研究表明,多家大公司正在使用该服务并存在被攻击的可能。我们直接向微软报告了这个问题,现在漏洞已经修复,所有受影响的客户都已收到通知。
AutoWarp 是 Azure 自动化服务中的一个严重漏洞,通过该漏洞,攻击者可以在未经授权的情况下访问使用该服务的其它 Azure 客户的 Azure Automation 账号凭证,然后访问该账号下分配的资源与数据。
我们的研究表明,多家大公司正在使用该服务并存在被攻击的可能。我们直接向微软报告了这个问题,现在漏洞已经修复,所有受影响的客户都已收到通知。
2022-09-06,Go 安全团队正式对外宣布Go漏洞管理工具 Govulncheck, Govulncheck 是一款面向开发者的供应链漏洞检测工具,通过分析源代码或编译后的二进制文件,分析项目中引入的三方包及相关函数,然后在漏洞库 https://vuln.go.dev/ 中查询是否是否存在漏洞。
值得称赞的是, Govulncheck 在三方包的名称和版本进行漏洞匹配的基础上,还分析了三方包中的函数是否被调用,以及相关的调用路径。此外, Govulncheck 还结合了 Go 版本、操作系统的版本和架构做进一步的漏洞筛选,最终只展示在当前操作系统和 Go 语言版本中,具有真实危害的三方包。例如,对于 Linux 平台运行的二进制文件,不会报告具有 Windows 特定依赖条件的三方包漏洞,更详细的内容可以查看官方文档。
Govulncheck 通过分析二进制文件的符号信息查找出三方包及显式调用的函数,根据三方包和函数查找漏洞库,最终确定三方包是否存在漏洞,因此 Govulncheck 无法检测去除符号表信息的二进制文件。但是,生产环境中运行的 Go 二进制文件基本上都会去除符号表信息,减小体积并提高安全性。这一点也更加印证了 Govulncheck 的核心定位是一款为 Developer 开发的 DevSecOps 工具。 Govulncheck 还有一些其它的不足,比如:只支持 Go 1.18 及以上版本编译的二进制文件,分析二进制文件时无法展示漏洞调用图等,更多的限制信息可以查看官方博客。
随着Java Web应用模块化、微服务化的程度越来越高,传统的单应用、单项目中的安全风险正逐渐转变为跨组件、跨应用、跨项目等复杂路径下的安全风险,传统白盒工具针对单项目的扫描无法覆盖这种类型的漏洞产生场景,包括:二方包、项目与二方包结合、项目与三方包结合、项目与项目通过API结合、项目与项目通过消息队列/数据库结合等众多细分场景。
笔者用白盒工具(CheckMarx、Coverity、内部自研白盒、CodeQL)在每个细分场景下都做了对比和测试,现有工具的检测效果都不理想,相比之下,CodeQL 基于编译时的数据流、控制流采集方案,效果优于其它工具,有望解决项目与二方包、项目与三方包结合的漏洞检测场景下的漏洞检测。
由于 CodeQL 强依赖于代码编译,如果只是对个别项目做代码审计,倒是可以配置环境、配置构建命令实现检测,但笔者的真实场景是在 CI/CD 的构建流程里做统一的安全控制。如果联合 CI/CD 部门做适配开发,将带来很大的人力成本,而且 CodeQL 的检测方案还无法解决全部细分场景的问题,所以笔者索性自己实现,即不需要额外的人力成本,又可以很灵活的测试、调试和变更,这感觉真香~
AST-Framework 产品的 sast-plugin 中增加了二方包、项目与二方包结合、项目与三方包结合 三种细分场景下的安全风险监测能力,使用 AST-Framework 的白盒扫描,并勾选☑️ “深度监测” 即可触发该能力,实现上述场景的漏洞检测。
AST-Framework 产品的白盒工具在进行代码分析之前,需要做一些前置的数据采集用于后续项目基本信息的输出,包括:项目使用的编程语言、项目使用的开发框架、代码行数等信息。经过调研,发现了一款成熟度很高的代码统计工具 Tokei,本文将重点介绍如何在 AST-Framework 产品的 sast-plugin 插件中集成 Tokei,实现项目的代码统计。
最近在 非交互式shell 中执行 cp 命令时,遇到了个坑,由于目标文件已存在,cp 命令出现交互式输入,要求确认是否执行强制覆盖,但由于是非交互式 shell,无法操作。查看 cp 命令的文档后发现,cp 命令可以进行强制覆盖,只需要执行 cp -rf <source> <target>
即可,但是在 shell 中输入强制覆盖的指令后,依然无法成功复制。经过折腾,终于找到了原因,记录一下解决方案和爬坑过程。
Apache Commons Configuration2 是Apache基金会下的一款开源项目组件, 它是 Java 应用程序的配置管理工具,用于解析 properties、xml、ini 等格式的配置文件,构建应用程序的基础配置;通过 commons-configuration2 组件可以实现远程配置文件加载、配置文件监听与热更新等高级功能。