Questa è una risposta in due parti:
- Devi superare qualsiasi offuscamento o raggiungere una sorta di stato decompilato. Consulta questa domanda su StackExchangeRE per ulteriori dettagli sull'offuscamento di Python.
- Una volta ottenuto il codice (o se si ha la fonte in primo luogo), si vorrà utilizzare una combinazione di revisione sicura del codice, analisi runtime e analisi statica focalizzata sulla sicurezza per scoprire potenziali risultati per il triage.
Se stai cercando strumenti di analisi statica focalizzati sulla sicurezza, purtroppo molti di quelli commerciali non sono ancora disponibili per il linguaggio Python. Pylint e Flake8 sono anche controllori di stile o di correttezza con zero controlli di sicurezza. La mia raccomandazione principale per Python SAST è il progetto Bandit del team di sicurezza di OpenStack. Ci sono solo alcuni controlli di base ma puoi aggiungerne altri. Bandit è solo un leggero (ma importante) miglioramento rispetto alle tecniche degli strumenti precedenti, come mostrato in graudit e RATS .
Se sei interessato all'analisi runtime, la maggior parte dei tester di sicurezza utilizza Burp Suite Professional per il traffico HTTP / TLS e Canape come proxy innestabile local-logging per altri protocolli. Per comprendere i gestori di file oi protocolli di rete che utilizzano le routine di compressione o crittografia durante l'analisi runtime, molti tester di sicurezza si rivolgono a tecniche di traccia del software (perché è più veloce del debug) o di hooking, come quelle trovate in Frida framework. Un noto insieme di difetti indirizzati alla serializzazione (pickling in Python) sta diventando più noto, quindi potrebbe essere utile consultare OWASP Python Pagina del progetto di sicurezza o elenca per ulteriori informazioni.
Per uno sguardo più dettagliato su Dropbox in particolare, vedi questa altra risposta su StackExchangeRE, oltre a questo codice Analisi sicurezza di Dropbox .