本文介绍了来自武汉大学0817团队在DataCon 2024软件供应链安全赛道中开源的MalNPMDetector项目。该项目专注于检测npm软件包中的恶意包,通过结合静态规则匹配、污点分析和AI辅助分析,实现高效、精准的恶意软件包检测,并具备自学习与持续优化能力。项目开源于Gitee,适合开发者、研究者和学生学习和应用,旨在增强软件供应链安全防护。
🔥 软件供应链安全风险分析:文章首先指出了随着软件供应链复杂性的增加,开源软件包的安全风险日益突出,特别是攻击者在开源软件源中投放恶意软件包,对开发者及其系统构成潜在威胁。文章列举了常见的npm恶意软件包的六大类,包括信息窃取、反弹shell、后门木马、挖矿病毒、加密勒索和npm仓库污染,揭示了其潜在的危害。
⭐ MalNPMDetector的核心技术:MalNPMDetector结合静态、动态和AI辅助分析,实现高效、精准的恶意软件包检测,并具备自学习与持续优化能力。其先进性体现在:基于静态规则匹配的高效预筛选机制,构建大规模恶意软件包特征库;基于高级污点分析的恶意代码路径追踪,采用基于字符串字面值的污点分析方法;以及基于AI的大规模恶意软件包自动化分类与持续学习,利用ChatGPT进行上下文感知的恶意性推理。
💡 如何参与MalNPMDetector项目:文章鼓励开发者参与MalNPMDetector开源项目,提供了参与方式,包括Star、Watch、Fork、提交Issue或PR等。同时,文章也提供了Gitee仓库的访问地址,方便感兴趣的开发者进行二次开发或学习研究,共同优化软件供应链生态。
0817团队 2025-03-28 10:17 北京
DataCon2024软件供应链安全赛道亚军的开源分享。

该资源是来自武汉大学0817团队,DataCon 2024软件供应链安全赛道亚军(一等奖)的开源分享,该团队构建了一个针对npm软件包的恶意包检测方法及系统——MalNPMDetector。极其适合开发者、研究者、学生学习和应用。快来 Gitee 点个 Star ⭐,Fork 🍴并 Watch👀, 试试吧!希望对大家有所帮助。
MalNPMDetector是一个针对npm软件包的恶意包检测方法及系统,包括如下步骤:
高效的静态规则匹配在大样本数据集中初步过滤出可疑恶意包及混淆软件包;较为耗时的基于字符串的污点分析在规则匹配的可疑恶意包结果中进一步收缩范围;将两步过滤结果的可疑样本通过构造的prompt提交给ChatGPT验证其恶意性,同时学习新的恶意特征更新已有的静态规则;针对静态规则匹配检测出的混淆软件包,采用动态分析的方式确认其恶意性。本项目能够高效检测出npm软件包中的恶意包,误报率低、准确率高、能够检测新的攻击。
其开源地址如下:
文章目录:
🔥软件供应链的安全风险分析
🔥MalNPMDetector
💡 如何参与?
🎯让我们一起推动软件供应链安全项目的开源发展!
🔥软件供应链的安全风险分析
随着软件供应链复杂性的增加,开源软件包 已成为现代软件开发的核心组成部分。然而,这一趋势也带来了 新的安全挑战,特别是 攻击者在开源软件源中投放恶意软件包,对开发者及其使用的系统构成潜在威胁。常见的NPM恶意软件包大致可以分为六类:
信息窃取此类恶意包通常结构简单,具有统一模板。安装后会自动执行恶意脚本,收集并回传系统和用户信息等敏感数据,如用户目录、用户名、DNS服务器,网卡信息和 passwd 文件内容等;反弹shell此类恶意包危害极大,成功攻击后,攻击者可获取目标机器当前用户权限,并进步尝试提权,以最高权限执行任意命令,全面控制受害设备;后门木马此类恶意包在用户机器上下载或释放并执行已经精心制作好的后门木马;挖矿病毒此类恶意包以窃取计算资源为目的,将受害者的机器变为攻击者矿池的算力节点,为其持续提供算力。加密勒索此类恶意包会读取用户电脑上的重要目录文件内容,加密后再写回原文件,并留下勒索提示。npm仓库污染此类恶意包没有太多实际作用,但是大量充斥于NPM开源仓库,某些情形下容易造成NPM整个仓库不可用。
🔥MalNPMDetector
👉 MalNPMDetector结合静态 + 动态 + AI 辅助分析,实现高效、精准的恶意软件包检测,并具备 自学习与持续优化能力,增强软件供应链安全防护。其工作流程图可以如下图所示:
⭐ 其先进性在于:
(1)基于静态规则匹配的高效预筛选机制
构建大规模 恶意软件包特征库,结合 模式匹配、语法解析与启发式分析,在海量样本中 精准筛选疑似恶意包及代码混淆样本。采用 多层级匹配策略(关键字规则、代码模式、异常依赖链分析)降低误报率,为后续深度分析奠定基础。
(2)基于高级污点分析的恶意代码路径追踪
提出了一种基于字符串字面值的污点分析方法,并结合 Semgrep 进行更精准的检测。例如,我们仅在关键敏感字符串(如 bash -i、cat、curl 等)经过污点传播并最终进入系统执行函数时,才会报告恶意行为。
(3)基于 AI 的大规模恶意软件包自动化分类与持续学习
利用 ChatGPT 进行上下文感知的恶意性推理,实现恶意代码逻辑的深度解析与分类。
💡 如何参与?
MalNPMDetector是一个 开源项目,我们欢迎所有对软件供应链安全感兴趣的开发者参与贡献:
📝 提交 Issue 或 PR,共同优化软件供应链生态!
并且拥有详细的源码分析:
🎯让我们一起推动软件供应链安全项目的开源发展!
如果你正在从事安全开发、软件供应链安全研究,那么MalNPMDetector绝对值得你的关注!现在就Star ⭐ + Fork 🍴,加入我们,一起构建更安全的数字世界!🔥 期待您的加入!
最后,分享不易,赶快前往 GitHub,尤其从事恶意代码分析和参与DataCon的同学,体验这一NPM恶意软件包检测的解决方案吧!
阅读原文
跳转微信打开