如何使用Packj检测恶意或高风险的开源软件包

网站建设4年前发布
37 0 0

Packj是一款功能强大的代码安全检测工具,该工具本质上是一个命令行接口工具套件,可以帮助广大研究人员检测软件代码包中潜在的恶意或高风险代码,旨在缓解软件供应链攻击。该工具支持识别当前热门开源软件管理工具中提供的软件代码包,比如说NPM、RubyGems和PyPI等。在该工具的帮助下,我们可以持续审查软件包并获取免费的风险评估报告。,工具下载,由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。接下来,使用下列命令将该项目源码克隆至本地:,Packj提供了下列工具:,Audit:用于检测软件代码包中的高位风险属性;,Sandbox:用于安全安装软件包的环境;,审计一个代码包,Packj可以审计开源软件包的“高风险”属性,即可能会让其容易受到供应链攻击的各种因素。比如说,包含过期电子邮件的包(缺少2FA)、发布时间间隔太长、敏感API或访问权限问题等。,工具支持审计下列内容:,多个软件包:,依赖文件:,我们还可以在一个Docker/Podman容器中执行审计操作:,软件包沙箱安装,Packj提供了一个轻量级沙箱环境,可以用于安全地安装和测试软件包。具体而言,它可以防止恶意软件包提取敏感数据、访问敏感文件(如SSH密钥)以及植入持久化恶意软件等。操作命令如下:,恶意软件检测,在测试该工具的时候,我们成功地在PyPI上搜索出了40个恶意软家包,其中有部分已经被下架了:,其中,Packj将KrisQian(v0.0.7)标记为可疑,因为在包安装期间(在setup.py中)缺少源代码库和使用敏感API(用于网络通信、代码生成)。经过进一步研究和分析,我们验证了这个代码包确实是存在安全问题的。,本项目的开发与发布遵循AGPL-3.0开源许可证协议。,Packj:【GitHub传送门】,https://packj.dev/,https://www.you*tube.com/watch?v=Rcuqn56uCDk,https://speakerdeck.com/ashishbijlani/pyconus22-slides,https://www.blackhat.com/asia-22/arsenal/schedule/#mitigating-open-source-software-supply-chain-attacks-26241,https://www.blackhat.com/us-22/arsenal/schedule/#detecting-typo-squatting-backdoored-abandoned-and-other-risky-open-source-packages-using-packj-28075,https://osseu2022.sched.com/overview/type/SupplyChainSecurityCon,https://nullcon.net/goa-2022/unearthing-malicious-and-other-risky-open-source-packages-using-packj,https://www.you*tube.com/watch?v=PHfN-NrUCoo?,https://speakerdeck.com/ashishbijlani/mitigating-open-source-software-supply-chain-attacks

© 版权声明

相关文章