查看新的威胁向量:抗议软件

2022 年 5 月 26 日

自俄罗斯入侵乌克兰以来,一种新的威胁载体在开源社区中传播开来。 这种被称为抗议软件的威胁媒介涉及激进分子将恶意内容注入开源代码库以表达政治观点。

虽然大多数抗议软件仅显示亲乌克兰或反战信息,但有些更为危险。 例如,node-ipc 包中的“peacenotwar”模块旨在擦除存储在白俄罗斯和俄罗斯的数据。

继续阅读以了解有关抗议软件以及公司如何保护自己免受其侵害的更多信息。

什么是抗议软件?

抗议软件是“抗议”和“软件”两个词的合成词,是注入开源和第三方代码库以表达政治信息的恶意代码的总称。 这些威胁载体中的大多数表达了创作者对俄罗斯入侵乌克兰的反对,使它们成为一种创造性的、非暴力的抗议形式,在某些情况下可能会有效。

但是,如果打算擦除数据或采取其他操作,则可能很危险。

尽管抗议软件通常与 2022 年的俄罗斯和乌克兰冲突有关,但将政治信息融入软件的概念至少已经存在了几年。 例如,Notepad++ 在 2020 年有一个“与香港站在一起”的更新。

与恶意程序包不同,抗议软件更改通常不是由恶意行为者进行的。 相反,它们通常是由开源社区中受人尊敬的成员制作的。

抗议软件的类型

抗议软件有 4 种主要类型:

在这种类型的抗议软件中,维护者在回购协议的横幅中添加了亲乌克兰的信息。 这些看起来像:

1. 表示支持乌克兰的 README 文件
2. 关于快递信息的未决问题
3. 更改包裹说明以支持乌克兰事业

由于 repo banners 是无害的,仅用于表达维护者的意见,因此公司在遇到它们时无需采取任何行动。

2. CLI 抗议日志

CLI 抗议日志超越了回购横幅。 他们在安装开源包期间和之后通过 CLI 日志向用户发送政治信息。

一个说明性的例子涉及 es5-ext,这是一个流行的开源包,几乎两年没有更新。 然而,在 2022 年 3 月 7 日,一位名为 medikoo 的程序员添加了一个 postinstall.js 组件,其中包含用于执行时区检查以对用户进行地理定位的代码。 如果用户位于俄罗斯,代码将留下包含以下内容的 CLI 日志:

1. 亲乌克兰的信息
2. 战争信息
3. 下载 TOR 以规避俄罗斯政府对报道战争的网站的审查的说明

与回购横幅一样,CLI 抗议日志通常不是恶意的。 这种类型的 CLI 日志记录在软件生态系统中也有很多优先级。 执行时区检查有时是正常的安装行为,特别是当 vector 需要确定安装包的最佳方式和时间时。

同样,许多开源软件包在安装过程中记录了可靠的消息。 其中许多与包本身没有直接关系。 例如,他们可能会记录表情符号、信用和其他信息。

简而言之,只要消息保留在安装环境中,就无需对 CLI 抗议日志采取任何操作。

3. 环境外抗议日志

第三种抗议软件是环境外抗议日志。 与 CLI 抗议日志不同,这些包在安装环境之外下载。 大多数环境外抗议日志都是非破坏性的,但它们可能会通过在机器上运行代码而对系统造成不良破坏。

他们可能会:

创建弹出窗口
使用有关战争的信息在桌面上创建新文件
将浏览器重定向到相关网站

例如,事件源 polyfill 对用户进行地理定位以确定他们的位置。 如果用户在俄罗斯,它会在浏览器中显示一条政治抗议信息,并尝试将浏览器重定向到另一个网站。

4. 破坏性抗议

最后,还有一些抗议软件包会威胁到它们运行的机器。

最著名的例子发生在 2022 年 3 月 7 日至 3 月 8 日期间,当时使用 RIAEvangelist 句柄的程序员将恶意数据擦除代码注入到 node-ipc 中,node-ipc 是一种用于编写系统软件的流行软件包。 下载 node-ipc 后,更新执行代码对用户的 IP 地址进行地理定位。 如果 IP 地址来自白俄罗斯或俄罗斯,代码将擦除所有用户的文件并用心形表情符号替换它们。

因此,美国国家标准与技术研究院 (NIST) 已将 RIAEvangelist 的恶意版本 node-ipc 列为漏洞 (CVE-2022 23812)。


公司如何保护自己免受 Protestware 的侵害?

Protestware 最初是作为对俄罗斯侵略的非暴力抗议而创建的。 然而,正如 node-ipc 所示,恶意行为者已开始使用抗议软件来针对无辜的俄罗斯和白俄罗斯开源用户。

Protestware 造成的问题

这些攻击不仅公然仇外,而且还削弱了公众对开源的信任。 在 Google 和 GitHub 等流行的编程中心快速搜索一下就会发现,越来越多的用户已经意识到,有一天他们的应用程序和库可能会被利用,让随机开发人员说出或做任何想做的事。

Protestware 还可能开创危险的先例,利用社会原因攻击用户和窃取数据。 例如,node-ipc 的情况可能会朝相反的方向发展,俄罗斯开发人员在美国系统上进行地理定位和删除文件。

公司需要开始保护自己免受抗议软件和其他相关威胁。 他们可以通过创建和实施以下安全方法来做到这一点:

1. 只使用可靠的开源依赖

开发人员应该只下载具有充足文档并定期维护的包。 文档和更新将减少活动家或威胁行为者添加抗议软件代码的机会。

除了查看文档之外,开发团队还应该在下载之前谷歌和研究每个依赖项。 如果有任何关于依赖项如何被破坏的新闻报道,公司必须避免下载该依赖项。

2.获取代码扫描工具来阻止抗议软件和其他威胁

组织还应该使用依赖扫描工具来阻止抗议软件和其他代码异常。 这些工具可以检查新依赖项中的每一行代码,使 IT 和开发人员团队能够在可疑依赖项造成任何损害之前对其进行隔离。

然而,虽然这些工具中的大多数都可以识别抗议软件,但许多工具可能无法提供足够的保护。 大多数依赖项扫描器只能在公司下载包后扫描更改。 当软件包下载完成时,公司的系统可能已经被感染。

幸运的是,一些扫描器,例如 Kiuwan Code Security (SAST),可以自动扫描代码以发现并修复漏洞。 这些领先的代码扫描器还涵盖所有重要的语言,并直接与一流的 DevOps 工具集成。


体验Kiuwan的不同

选择正确的依赖项扫描工具来阻止抗议软件可能是一项尝试,特别是对于刚接触代码扫描解决方案的公司而言。

这就是企业应考虑获得 Kiuwan Code Security (SAST) 的原因。 Kiuwan Code Security 时尚而强大,可自动扫描系统代码以识别和修复漏洞和异常。

具体来说,它可以帮助组织:

扫描 IT 环境并通过云端共享结果
使用行业标准安全评级生成定制报告,帮助团队更好地了解风险
创建并实施自动行动计划以修复协作环境中的漏洞
管理技术债务和开发运营
执行渗透测试
抵御软件供应链攻击
自定义不同漏洞的重要性
跟踪目标的进展情况并避免偏差

此外,Kiuwan Code Security 涵盖所有重要语言,并符合 CWE、NIST 和 OWASP 等领先的安全标准。 它还在整个软件开发生命周期 (SDLC) 中与尖端的 DevOps 和 DevSecOps 工具集成,使开发人员能够创建真正的 DevSecOps 方法,将安全性融入应用程序设计的每个步骤。

有兴趣体验基湾的不同吗? 立即获取演示。 开发人员将看到启动扫描、使用流畅的用户界面、生成操作计划和管理代码漏洞是多么简单。

立即获取 Kiuwan 应用程序安全性的演示!

快速、高效地扫描和报告漏洞并进行修复。 我们符合所有安全标准,为您的团队量身定制软件包,以减轻您在 SDLC 内的网络风险。

立即演示