Recentemente, un articolo è apparso nel mio feed non-rss riguardante il numero di sviluppatori che hanno inserito credenziali sensibili nei repository, esponendole al mondo intero:
- http://www.net-security.org/secworld.php?id=16566
Un paio di cose mi hanno colpito riguardo questo articolo:
-
Come cazzo fa qualcuno a gestire un sito web con ‘security’ e ‘php’ nei suoi url… ?
-
Quanto può essere pigro lo sviluppatore medio?
Seriamente, la pigrizia è generalmente considerata una grande virtù tra i programmatori (http://c2.com/cgi/wiki?LazinessImpatienceHubris) ma questo non si è mai applicato alla sicurezza, nonostante la mia personale tendenza a risolvere i problemi con ‘chmod -R 0777’. (temporaneamente Dave!)
C'è un esercito di sviluppatori, elencati come contributori nei repository incriminati, che discuteranno fino a diventare rossi in faccia su ogni sorta di cose come editor, linguaggi, framework, piattaforme, griglie css e framework di test. Questi stessi sviluppatori inseriranno password sensibili in un repository, per essere preservate come ambra in una grotta di ghiaccio, semplicemente perché non possono essere disturbati a scrivere 100 righe di codice per crittografare correttamente le cose che non dovrebbero mai essere in un repo.
Se sei uno di questi sviluppatori, metti una fetta di cipolla nel tuo buco del pisello e pensaci un po'.
Se sei un'azienda che pratica questo anti-pattern, usa l'intera cipolla.
Se scrivi framework che incoraggiano l'uso di ‘config/hack-my-db-little-pony.yml’ usa l'intero sacco.
OpenSSl non è così difficile. Crittografa la tua roba. Almeno crittografa la roba dei tuoi clienti.
Semplicemente non lasciare la password che il tuo capo, cliente o fondatori usano per tutto il resto (perché sai che lo fanno) in congelamento criogenico in un repository GitHub. Pubblico o privato.
I design pattern per risolvere questo sono semplici;
- https://github.com/ahoward/sekrets
è uno.
Se sei in Ruby, puoi semplicemente avere questo.
Se non lo fai, per favore scrivine uno nel linguaggio di tua scelta.
Ma qualunque cosa tu faccia, non essere pigro quando si tratta di inserire le password. È semplicemente completamente e totalmente - dilettantesco #weaksauce.