
Python-Abhängigkeits-Schwachstellenscanner, geschrieben in Rust.
Pyscan ist ein hochgradig nebenläufiger Schwachstellenscanner, geschrieben in Rust. Er durchläuft automatisch Ihr Python-Projekt, extrahiert Abhängigkeiten in verschiedenen Paketformaten und gleicht sie in einer einzigen asynchronen Batch-Anfrage mit der Open Source Vulnerabilities (OSV)-Datenbank ab.
Pyscan wurde entwickelt, um die Leistungs- und Speicherengpässe herkömmlicher Python-basierter Sicherheitstools zu lösen:
pip-auditsafetyuv.lock, requirements.txt, pyproject.toml (Poetry, Hatch, PDM, Flit) oder dynamisch durch das Parsen Ihres rohen .py-Quellcodes.Lesen Sie die ausführliche Analyse im Benchmarks Report.
Sie können Pyscan über pipx, pip (kompiliertes Python-Wheel) oder cargo (natives Rust-Binary) installieren:
# via pipx (recommended) (Note the "-rs" suffix)
pipx install pyscan-rs
# via pip (Note the "-rs" suffix)
pip install pyscan-rs
# via Cargo
cargo install pyscan
Führen Sie einfach pyscan im Wurzelverzeichnis Ihres Projekts aus, oder geben Sie ein bestimmtes Quellverzeichnis an:
# Scan the current directory
pyscan
# Scan a specific directory
pyscan -d path/to/src
Falls mehrere Quelldateien vorhanden sind, extrahiert Pyscan Abhängigkeiten gemäß dieser Prioritätskette:
bom.json, spdx.json)uv.lockrequirements.txtpyproject.toml.py)Pyscan greift auf PyPI zurück, um die neueste Version abzufragen, wenn eine Abhängigkeit ohne strikt festgelegte Version gefunden wird – die Einhaltung der PEP-508-Syntax wird jedoch dringend empfohlen.
Pyscan benötigt eine Rust-Toolchain >= v1.70 und nutzt asynchrone Netzwerkfähigkeiten über reqwest und tokio, um OSV-Abfragen zu parallelisieren und den Durchsatz zu maximieren. Wenn Sie daran interessiert sind, wie Parser und Scanner strukturiert sind, werfen Sie einen Blick auf die Architekturübersicht.
Pyscan ist ein hochoptimiertes Tool, wurde aber noch nicht in allen Randfällen ausgiebig getestet. Es garantiert nicht, dass Ihr Code zu 100 % vor allen Vektoren sicher ist. Ich empfehle dringend einen mehrschichtigen Sicherheitsansatz zusammen mit Tools wie Dependabot, pip-audit oder Trivy. PRs und Issues sind herzlich willkommen!
Ich habe dieses Projekt gestartet, als ich ein pleitegehender Highschool-Schüler war, und jetzt bin ich ein pleitegehender College-Student. Wenn Pyscan Ihren CI/CD-Pipelines wertvolle Zeit und RAM gespart hat, denken Sie darüber nach, mir einen Kaffee zu kaufen: