Recentemente ho scoperto un caso in cui un collega aveva accidentalmente impegnato le proprie credenziali di accesso (host, nome utente e password) in un repository di codice sorgente locale, quindi ha trasferito queste modifiche a un repository pubblico su GitHub. Naturalmente, questo non è stato un incidente isolato: alcuni anni fa, GitHub ha ucciso la sua funzione di ricerca di codice completo dopo che le persone hanno scoperto centinaia di chiavi private e altre credenziali negli archivi pubblici .
Mi piacerebbe assicurarmi che questo genere di cose non sia accaduto in passato con nessuno dei nostri altri repository pubblici (e, nel caso abbia, per cancellare i dati privati, cambiare le password esposte, revocare le chiavi esposte, ecc.). Per me non è un problema mettere insieme uno script di shell per passare i commit a un determinato repository Git o Subversion in modo da poterli analizzare per ottenere dati privati. Ma che tipo di nome di file e modelli di testo dovrei usare? Ad esempio, voglio catturare file il cui nome suggerisce che contengono chiavi o credenziali private ( password.txt
, id_dsa
, id_rsa
, secring.gpg
, .netrc
, e probabilmente molti altri standard che sto dimenticando o non ne sono nemmeno a conoscenza). C'è una lista da qualche parte che copre i casi più comuni? Allo stesso modo, mi piacerebbe scansionare il contenuto dei file di testo e di origine per i pattern che indicano le credenziali di accesso hard-coded. Forse qualcuno ha già prodotto un elenco di espressioni regolari da cui iniziare?