
escáner de vulnerabilidades de dependencias de Python, escrito en Rust.
Pyscan es un escáner de vulnerabilidades altamente concurrente escrito en Rust. Recorre automáticamente tu proyecto de Python, extrae dependencias de varios formatos de empaquetado y las contrasta con la base de datos Open Source Vulnerabilities (OSV) en una única solicitud por lotes asíncrona.
Pyscan fue diseñado para resolver los cuellos de botella de rendimiento y memoria de las herramientas de seguridad tradicionales basadas en Python:
pip-audit y safety en conjuntos de datos medianos y grandes. El tiempo de ejecución de Pyscan opera bajo un modelo de complejidad temporal $O(\text{vulns})$; el tiempo de ejecución escala con el número de vulnerabilidades encontradas, no con el número de dependencias que tengas.uv.lock, requirements.txt, pyproject.toml (Poetry, Hatch, PDM, Flit), o dinámicamente analizando tu código fuente .py sin procesar.Lee el análisis en profundidad en Informe de Benchmarks.
Puedes instalar Pyscan mediante pipx, pip (wheel de Python compilado) o cargo (binario nativo de Rust):
# 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
Simplemente ejecuta pyscan en el directorio raíz de tu proyecto, o apúntalo a una carpeta fuente específica:
# Scan the current directory
pyscan
# Scan a specific directory
pyscan -d path/to/src
Si hay múltiples archivos fuente, Pyscan extrae las dependencias siguiendo esta cadena de prioridad:
bom.json, spdx.json)uv.lockrequirements.txtpyproject.toml.py)Pyscan recurrirá a consultar PyPI para obtener la última versión si se encuentra una dependencia sin una versión estrictamente fijada, aunque se recomienda encarecidamente adherirse a la sintaxis PEP-508.
Pyscan requiere un toolchain de Rust >= v1.70 y aprovecha la red asíncrona mediante reqwest y tokio para paralelizar las consultas OSV y maximizar el rendimiento. Si te interesa cómo están estructurados el analizador y el escáner, consulta la Descripción general de la arquitectura.
Pyscan es una herramienta altamente optimizada, pero aún no ha sido puesta a prueba en todos los casos límite. No garantiza que tu código esté 100 % seguro frente a todos los vectores. Recomiendo encarecidamente usar un enfoque de seguridad en capas junto con herramientas como Dependabot, pip-audit o Trivy. ¡Las PRs y los issues son bienvenidos!
Empecé este proyecto cuando era un estudiante de secundaria sin dinero, y ahora soy un estudiante universitario sin dinero. Si Pyscan ha ahorrado un tiempo valioso y RAM a tus pipelines de CI/CD, considera comprarme un café: