Objetivo del tema
En esta unidad aprenderás a reforzar la seguridad al administrar dependencias con pip dentro de proyectos desarrollados en Python, priorizando la integridad de paquetes, la evaluación de riesgos y la resolución ordenada de conflictos.
Antes de instalar una distribución comprobá que provenga de una fuente confiable y verificá las sumas de comprobación publicadas en PyPI. Descargá el paquete y validá su hash con herramientas del sistema.
pip download --no-deps requests==2.31.0
certutil -hashfile requests-2.31.0-py3-none-any.whl SHA256 # Windows
shasum -a 256 requests-2.31.0-py3-none-any.whl # macOS o Linux
Compará el resultado con el hash oficial. Si no coincide, descartá el archivo y revisá si usaste la URL correcta o si el mirror presenta problemas de sincronización.
Cada paquete adicional incrementa la superficie de ataque y el peso del despliegue. Auditá periódicamente tus dependencias para eliminar bibliotecas sin uso o reemplazarlas por alternativas incluidas en la biblioteca estándar.
requirements.txt
.pipdeptree
para identificar dependencias transitivas que podrían quedar obsoletas.La opción --require-hashes
obliga a que cada entrada en el archivo de requisitos incluya el hash del paquete, evitando que pip instale artefactos manipulados.
# requirements.txt
requests==2.31.0 --hash=sha256:5de070b5e056a75ad095c5bbf0b4180f12ce8a1f8409be2e3ea364ab539cc96f
urllib3==2.2.3 --hash=sha256:6d0f45ed70653cebfb0dce274235a491091696e2a8c62ff50f827bddb5ec9a7a
pip install --require-hashes -r requirements.txt
Generá los hashes con pip hash archivo.whl
o utilizando herramientas como pip-compile --generate-hashes
de pip-tools
para automatizar la tarea.
Las auditorías detectan vulnerabilidades conocidas en versiones específicas. Ejecutá utilidades especializadas como pip-audit para contrastar tus dependencias frente a bases de datos de CVE.
Un CVE (Common Vulnerabilities and Exposures) es un identificador único para una vulnerabilidad de seguridad informática conocida públicamente. Estos registros ayudan a los profesionales de la seguridad y a los desarrolladores a coordinar sus esfuerzos para solucionar y proteger los sistemas contra estas amenazas.
pip install --upgrade pip-audit
pip-audit --requirement requirements.txt
Integrá estos reportes en tu canal de integración continua para recibir alertas tempranas. Complementá el proceso con escaneos de código estáticos y revisiones manuales de cambios provenientes de repositorios externos.
Los conflictos de versiones surgen cuando dos dependencias exigen requisitos incompatibles. Prevé el problema planificando actualizaciones y empleando herramientas de inspección.
pip check
pipdeptree --warn fail
Aplicar verificación de integridad, limitar dependencias, usar hashes obligatorios, auditar con herramientas externas y anticipar conflictos de versiones fortalece el ecosistema de tus proyectos. Estas prácticas convierten a pip en un aliado seguro sin sacrificar la velocidad de entrega.