DataCon24供应链安全赛道亚军源码分享:MalNPMDetector NPM恶意软件包检测
该资源是来自武汉大学0817团队,DataCon 2024软件供应链安全赛道亚军(一等奖)的开源分享,该团队构建了一个针对npm软件包的恶意包检测方法及系统——MalNPMDetector。极其适合开发者、研究者、学生学习和应用。
MalNPMDetector是一个针对npm软件包的恶意包检测方法及系统,包括如下步骤:
- 高效的静态规则匹配在大样本数据集中初步过滤出可疑恶意包及混淆软件包;
- 较为耗时的基于字符串的污点分析在规则匹配的可疑恶意包结果中进一步收缩范围;
- 将两步过滤结果的可疑样本通过构造的prompt提交给ChatGPT验证其恶意性,同时学习新的恶意特征更新已有的静态规则;
- 针对静态规则匹配检测出的混淆软件包,采用动态分析的方式确认其恶意性。本项目能够高效检测出npm软件包中的恶意包,误报率低、准确率高、能够检测新的攻击。
其开源地址如下:
- https://gitee.com/jenniedn/mal-npmdetector.git
- 文章目录:
- 软件供应链的安全风险分析
- MalNPMDetector
- 如何参与?
- 让我们一起推动软件供应链安全项目的开源发展!
软件供应链的安全风险分析
随着软件供应链复杂性的增加,开源软件包 已成为现代软件开发的核心组成部分。然而,这一趋势也带来了 新的安全挑战,特别是 攻击者在开源软件源中投放恶意软件包,对开发者及其使用的系统构成潜在威胁。常见的NPM恶意软件包大致可以分为六类:
- 信息窃取
- 反弹shell
- 后门木马
- 挖矿病毒
- 加密勒索
- npm仓库污染
MalNPMDetector
MalNPMDetector结合静态 + 动态 + AI 辅助分析,实现高效、精准的恶意软件包检测,并具备 自学习与持续优化能力,增强软件供应链安全防护。其工作流程图可以如下图所示:
其先进性在于:
(1)基于静态规则匹配的高效预筛选机制 构建大规模 恶意软件包特征库,结合 模式匹配、语法解析与启发式分析,在海量样本中 精准筛选疑似恶意包及代码混淆样本。采用 多层级匹配策略(关键字规则、代码模式、异常依赖链分析)降低误报率,为后续深度分析奠定基础。
(2)基于高级污点分析的恶意代码路径追踪提出了一种基于字符串字面值的污点分析方法,并结合 Semgrep 进行更精准的检测。例如,我们仅在关键敏感字符串(如 bash -i、cat、curl 等)经过污点传播并最终进入系统执行函数时,才会报告恶意行为。
(3)基于 AI 的大规模恶意软件包自动化分类与持续学习利用 ChatGPT 进行上下文感知的恶意性推理,实现恶意代码逻辑的深度解析与分类。
如何参与?
MalNPMDetector是一个 开源项目,我们欢迎所有对软件供应链安全感兴趣的开发者参与贡献:
- 给个 Star,支持我们的项目!
- Watch 关注项目,随时获取最新动态
- Fork 仓库,进行二次开发或学习研究!
- 提交 Issue 或 PR,共同优化软件供应链生态!
- 访问 Gitee 仓库:https://gitee.com/jenniedn/mal-npmdetector.git
并且拥有详细的源码分析:
让我们一起推动软件供应链安全项目的开源发展!
如果你正在从事安全开发、软件供应链安全研究,那么MalNPMDetector绝对值得你的关注!现在就Star+ Fork ,加入我们,一起构建更安全的数字世界!期待您的加入!
最后,分享不易,赶快前往 GitHub,尤其从事恶意代码分析和参与DataCon的同学,体验这一NPM恶意软件包检测的解决方案吧!
- https://gitee.com/jenniedn/mal-npmdetector.git