源代码是任何应用程序或软件产品的基本组成部分。它是任何以技术为中心的组织的支柱。源代码承载着公司知识产权的专有信息,保护着公司运行的数据。
集成第三方开源组件可以让软件团队轻松利用已有的代码,而无需从头开始开发。不幸的是,这种便利性的负面影响涉及针对第三方供应商的风险,造成供应链攻击。在供应链攻击中,网络犯罪分子可以在第三方代码或构建系统中插入恶意软件,从而向组织及其相关客户发送恶意软件。
在本博客中,我将演示如何使用MetaDefender Jenkins 插件防止源代码中的恶意软件。
Secure 使用MetaDefender Jenkins 插件进行构建
MetaDefender for Jenkins 插件可扫描 Jenkins 构建中的恶意软件,并检查源代码和工件是否存在威胁。高阶恶意软件可以轻松绕过单一的防病毒(AV)引擎,从而使源代码处于危险之中。在大多数防病毒解决方案中,恶意软件检测中的误报也是常见的副作用,这会导致补救工作、时间和资源的浪费。MetaDefender for Jenkins 利用Metascan(一种多重扫描技术)提高检测率,缩短软件构建的爆发检测时间。
这里有两种情况可以说明恶意软件是如何渗透的:在源代码中和在构建过程中。
情景 1:源代码中的恶意软件
在这种情况下,源代码可以是你自己的源代码(来自开发人员的受损机器),也可以是来自第三方库的源代码。在第一种情况下,我想检查 GitHub 中的第三方库。为了确保该库不受威胁,我添加了一个构建步骤,使用 Jenkins 的MetaDefender 插件进行扫描。

如果源代码中存在任何威胁,我还希望构建返回 "失败"。

尝试运行构建后,结果被标记为 "失败",因为MetaDefender Jenkins 插件捕获了受感染的文件。

情景 2:在构建过程中引入恶意软件
如果您认为扫描源代码库就足以保护您的源代码,那么事实并非总是如此。有些恶意软件并不存在于原始源代码库中,但会在您下载依赖程序或库等组件时引入。在第二段视频中,我演示了第二种情况的示例,以及如何使用MetaDefender Jenkins 插件进行防范。
正如您所看到的,在第一次运行时,我扫描了源代码,没有发现任何问题。

之后,我使用 build.bat 文件在流程中添加了一个新的构建步骤,并再次开始构建。

出于演示目的,我使用 npm 下载了一个 EICAR 测试包,以模拟在真实场景中安装恶意软件的操作。在这种情况下,虽然原始源代码中没有任何威胁,但在构建过程中脚本中出现了恶意 npm 包。MetaDefender Jenkins 插件检测到了威胁,将构建标记为失败。

详细扫描结果见MetaDefender Core 。

关于OPSWAT MetaDefender for Jenkins
OPSWAT MetaDefender for Jenkins 在向公众发布应用程序之前,会对您的构建进行恶意软件和机密检查。由MetaDefender 平台的全部功能(包括30 多个领先的反病毒引擎)提供支持、 Deep CDR和 Proactive DLPMetaDefender Jenkins 插件将彻底扫描您的源代码和工件,查找任何威胁。您将通过内置的故障安全机制获知潜在问题,从而帮助防止恶意软件爆发和敏感数据泄漏。了解有关MetaDefender for Jenkins和其他OPSWAT 免费工具的更多信息。
如需了解更多信息,请联系我们的网络安全专家。