guarddog
GuardDog is a CLI tool for identifying malicious open source packages
What it is and what it does
GuardDog is a static analysis tool that downloads and scans open source packages across multiple ecosystems (PyPI, npm, Go, Rust, RubyGems, GitHub Actions, VSCode extensions) to detect supply chain attacks. Rather than flagging every suspicious pattern independently, it uses a risk-correlation model: it identifies both code capabilities (what the package can do, like network access) and threat indicators (suspicious domains, obfuscation), then flags actual risks only when both appear in the same file or across related files. This reduces alert fatigue by distinguishing between legitimate functionality and genuine malicious intent.
The tool runs YARA rules against package source code and analyzes metadata to score packages on a 0-10 risk scale based on attack chain completeness, specificity, and sophistication. Scans execute inside a kernel-level sandbox (Landlock on Linux, Seatbelt on macOS) to prevent malicious code from executing during extraction or analysis. It supports scanning remote packages, local archives, directories, and S3 buckets, with output in JSON or SARIF format for CI/CD integration.
Use it for:
- Scan dependencies in a requirements.txt or package.lock file before deployment to catch known malicious packages
- Integrate into CI/CD to automatically flag high-risk packages during pull requests or builds
- Triage a suspected compromised package by scanning it locally to understand its capabilities and threat indicators
- Verify the security posture of third-party packages before adding them to a monorepo or internal registry
- Generate SARIF reports for integration with security dashboards or SIEM systems like Datadog
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
GuardDog is a CLI tool that scans PyPI, npm, Go, Rust, RubyGems, GitHub Actions, and VSCode extension packages to identify malicious code and supply chain attacks using YARA rules and metadata analysis.
Yes. GuardDog is actively maintained, has no known vulnerabilities, and fills a specific gap in supply chain security by correlating code capabilities with threat indicators rather than generating false-positive noise. The sandboxed scanning protects against execution during analysis. Install it if you need to audit dependencies across multiple package ecosystems or integrate package security checks into CI/CD; skip it if you only use a single ecosystem and already have ecosystem-specific tooling.
Install
guarddog on PyPI
pip
pip install guarddoguv
uv add guarddogpoetry
poetry add guarddogInstalling guarddog
Before you install
Low friction installation via pip or uvx; actively maintained with recent releases. Requires modern Python (3.10+) and 18 runtime dependencies including boto3, pygit2, and yara-python. Sandboxed scanning on Linux and macOS protects against malicious code execution during analysis.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for integration into security workflows and CI/CD pipelines.
Quickstart
pip install guarddog
guarddog pypi scan requests
guarddog pypi scan requests --version 2.28.1
guarddog pypi verify requirements.txt --output-format=json
Requires Python 3.10+. Sandboxed scanning (default) requires Linux Landlock or macOS Seatbelt; use --no-sandbox to disable. Windows requires Docker.
Verify before relying
- Accuracy and false-positive rate of YARA rules and risk scoring model in real-world supply chain scenarios
- Performance characteristics when scanning large monorepos or dependency trees with hundreds of packages
- Coverage and detection capability for emerging or novel malware patterns not yet in the rule set
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 18 — boto3, click, configparser, disposable-email-domains, nono-py, packaging, prettytable, pygit2, python-dateutil, python-whois, pyyaml, requests, semantic-version, tarsafe, termcolor, typing-extensions, urllib3, yara-python |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 157,816/month — #10,744 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: guarddog-3.2.0-py3-none-any.whl
Tags
More Security packages
Provides Python bindings to the FreeDesktop.org…
permissive · top 1,000 on PyPI
msalMSAL for Python handles OAuth2 and OpenID…
permissive · top 1,000 on PyPI
joserfcjoserfc implements JOSE standards (JWS, JWE,…
permissive · top 1,000 on PyPI
AuthlibAuthlib provides a complete implementation of…
permissive · top 1,000 on PyPI
argon2-cffi-bindingsProvides low-level CFFI bindings to the…
permissive · top 1,000 on PyPI
adalADAL for Python authenticates applications with…
permissive · top 1,000 on PyPI
safetySafety CLI scans Python project dependencies…
permissive · top 5,000 on PyPI
skylosSkylos is a local-first static analysis CLI…
permissive · top 15,000 on PyPI
socketsecuritySocket Security CLI scans Python projects for…
permissive · top 15,000 on PyPI
pysentry-rsPySentry scans Python projects for known…
permissive · top 15,000 on PyPI
kingfisher-binKingfisher is a command-line secret scanner…
permissive · top 15,000 on PyPI
ca9ca9 analyzes Python package supply chains to…
copyleft · top 15,000 on PyPI
picklescanScans Python Pickle files and related…
permissive · top 15,000 on PyPI
clamdclamd is a Python interface to the ClamAV…
copyleft · top 5,000 on PyPI
checkovCheckov is a static code analysis tool that…
permissive · top 5,000 on PyPI
plugin-scannerLints, verifies, and gates plugins, skills, MCP…
permissive · top 15,000 on PyPI