Es bien conocido que PyPI no impida la carga de código malicioso.
Lamentablemente, las herramientas automatizadas a menudo no pueden distinguir entre las características de un programa y el código malicioso.
En el caso de distribuciones de Linux , hay al menos el responsable del paquete que puede consultar el código fuente. de vez en cuando.
Básicamente, la seguridad de los repositorios de software como PyPI se reduce a la idea de que alguien notaría un código malicioso, si suficientes personas miran el código fuente . Entonces, si me gusta ser una de las personas que miran el código fuente de vez en cuando, ¿a qué debo fijarme?
La lectura de cada línea de código antes de instalar un paquete de Python no es factible.
Para un programador (no un investigador de seguridad), ¿cuáles son las comprobaciones fáciles / mejores prácticas para identificar fragmentos de códigos maliciosos obvios?
Algunas cosas obvias que hacer son:
- grep para
import
y vea si algún módulo importa algo que no debería. En particular, busquesys
,os
,http
etc ... Estos módulos tienen muchos usos legítimos, pero mucha potencia para hacer cosas inseguras. - grep para
eval
y similares. - abra un archivo aleatorio y vea si parece razonable.
- Preste especial atención a
setup.py
¿Cuál es la forma más rápida de tener una mayor probabilidad de detectar códigos maliciosos en los scripts de Python?