È ben noto che PyPI non impedisce il caricamento di codice dannoso.
Sfortunatamente, gli strumenti automatici spesso non sono in grado di distinguere tra le funzionalità di un programma e il codice dannoso.
Nel caso di distribuzioni Linux , c'è almeno il manutentore del pacchetto che potrebbe guardare il codice sorgente di tanto in tanto.
Fondamentalmente la sicurezza dei repository software come PyPI si riduce all'idea che qualcuno potrebbe notare un codice dannoso, se un numero sufficiente di persone guarda il codice sorgente . Quindi, se mi piace essere una delle persone che occasionalmente guarda il codice sorgente, che cosa dovrei cercare?
Leggere ogni riga di codice prima di installare un pacchetto python non è possibile.
Per un programmatore (non un ricercatore di sicurezza), quali sono i semplici controlli / le migliori pratiche per identificare evidenti frammenti di codice dannoso?
Alcune cose ovvie da fare sono:
- grep per
import
e controlla se qualsiasi modulo importa qualcosa che non dovrebbe. In particolare, cercasys
,os
,http
ecc ... Questi moduli hanno molti usi legittimi, ma un sacco di potere per fare cose non sicure. - grep per
eval
e simili. - apri un file casuale e verifica se sembra ragionevole.
- Presta particolare attenzione a
setup.py
Qual è il modo più rapido per avere una maggiore possibilità di rilevare codice dannoso negli script Python?