源代码是任何应用程序或软件产品的基本组成部分。它是任何以技术为中心的组织的支柱。源代码承载着公司知识产权的专有信息,保护着公司运行的数据。
集成第三方开源组件可以让软件团队轻松利用已有的代码,而无需从头开始开发。不幸的是,这种便利性的负面影响涉及针对第三方供应商的风险,造成供应链攻击。在供应链攻击中,网络犯罪分子可以在第三方代码或构建系统中插入恶意软件,从而向组织及其相关客户发送恶意软件。
在本博客中,我将演示如何使用MetaDefender Jenkins 插件防止源代码中的恶意软件。
使用MetaDefender JenkinsMetaDefender Secure
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 Jenkins会在将应用程序发布给公众之前,对您的构建进行恶意软件和机密信息检测。该功能依托MetaDefender 平台的全部功能——包括30余种领先的防病毒引擎、Deep CDR™技术,以及 Proactive DLP——MetaDefender 的Jenkins插件将对您的源代码和构建产物进行彻底扫描,以检测任何威胁。您将通过内置的安全防护机制获知潜在问题,这些机制有助于防止恶意软件爆发和敏感数据泄露。了解更多关于MetaDefender for Jenkins以及 其他OPSWAT 免费工具的信息。
如需了解更多信息,请联系我们的网络安全专家。
