GuardDog是一款功能强大的CLI工具,专门用于识别PyPI、npm、Go模块、GitHub Actions和VSCode扩展中的恶意软件包。它通过结合源代码分析和包元数据检测的双重机制,为开发者提供全面的软件供应链安全保障。
【免费下载链接】guarddog:snake: :mag: GuardDog is a CLI tool to Identify malicious PyPI and npm packages项目地址: https://gitcode.com/gh_mirrors/gu/guarddog
快速上手:安装与基本使用
简单安装方法
安装GuardDog非常简单,只需一行命令:
pip install guarddog如果你更喜欢使用Docker,也可以拉取官方镜像:
docker pull ghcr.io/datadog/guarddog核心功能演示
从上图可以看到GuardDog的实际运行效果,它能够检测出多种安全威胁,包括:
- Base64编码恶意代码:检测通过base64编码隐藏的恶意执行代码
- 拼写错误攻击:识别模仿知名包名的恶意包
- 空描述信息:发现缺少必要描述的潜在风险包
双重检测机制:源代码与元数据分析
GuardDog采用两种互补的检测策略,确保从不同维度发现潜在威胁。
源代码启发式检测
基于Semgrep规则对包源代码进行深度分析,能够识别:
- 代码混淆技术:检测使用非常规语法的API调用
- 敏感数据窃取:发现读取和泄露本地敏感数据的代码
- 可执行文件下载:识别下载并执行远程二进制文件的行为
- 隐式进程执行:检测静默执行可执行文件的代码
元数据启发式检测
通过分析包在包管理器中的元数据信息,发现:
- 拼写错误攻击:包名与热门包高度相似的恶意包
- 版本号异常:发布版本为0.0或0.0.0的可疑包
- 作者信息可疑:使用一次性邮箱的作者
- 二进制文件捆绑:包中捆绑的可执行文件
实用操作指南:从基础到高级
基础扫描命令
扫描PyPI包的最新版本:
guarddog pypi scan requests扫描指定版本的npm包:
guarddog npm scan express --version 4.18.2项目级安全检查
对项目中的所有依赖进行批量扫描:
guarddog pypi verify requirements.txt输出格式定制
生成安全报告格式,便于集成到CI/CD流程:
guarddog pypi scan requests --output-format=report自定义规则:扩展检测能力
GuardDog支持用户创建自定义检测规则,进一步提升安全防护能力。你可以在guarddog/analyzer/sourcecode目录下添加:
- Semgrep规则:针对特定语言的
.yml格式规则文件 - Yara规则:语言无关的
.yar格式规则文件
创建自定义规则后,GuardDog会自动识别并应用这些规则,为你提供更加个性化的安全扫描服务。
CI/CD集成:自动化安全检测
将GuardDog集成到GitHub Actions中非常简单,可以实现自动化的依赖安全检查。通过上传安全格式的报告,你可以在GitHub的代码扫描功能中:
- 自动在Pull Request中添加安全检测评论
- 通过GitHub界面管理误报
- 持续监控项目依赖的安全性
开发与测试
本地开发环境搭建
使用pip方式:
python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt python -m guarddog或者使用poetry:
poetry install poetry run guarddog质量保证
运行完整的测试套件:
make test类型检查和代码规范检查确保代码质量。
GuardDog作为软件供应链安全的重要工具,通过其强大的检测能力和灵活的配置选项,为开发者提供了可靠的安全保障。无论是个人项目还是企业级应用,都能从中受益,确保所使用的第三方依赖不包含恶意代码。
【免费下载链接】guarddog:snake: :mag: GuardDog is a CLI tool to Identify malicious PyPI and npm packages项目地址: https://gitcode.com/gh_mirrors/gu/guarddog
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考