Se lavori con GitHub e le chiavi EC2 di Amazon AWS, devi prestare molta attenzione a come ti comporti e, soprattutto, devi evitare di condividere le chiavi API di Amazon AWS sui progetti che pubblichi nel repository per sviluppatori più grande al mondo.
Infatti, non tutti sanno che nel mese di dicembre 2014, Slashdot ha pubblicato una storia allarmante che puoi leggere direttamente qui, che narra la vicenda dello sviluppatore e blogger Andrew Hoffman durante alcune prove di Ruby on Rails condotte con l’ausilio di Amazon AWS S3.
Senza volerlo, Hoffman aveva involontariamente immesso su Github un file dal nome application.yml contenenti le chiavi di accesso ai servizi AWS. Per quanto se ne fosse accorto e li avesse eliminati con una certa rapidità, i bot degli hacker in continua esecuzione erano riusciti a carpirli, consentendo ai malintenzionati di spendere oltre 2.375 dollari in servizi prima che Amazon intervenisse. Fortunatamente per Hoffman, la piattaforma non diede a lui la responsabilità di quanto avvenne.
Sicurezza API GitHub: l’hacking non è un caso sporadico
Quanto ti ho raccontato, però, non è l’unico caso di accesso non consentito ad Amazon AWS per negligenza da parte dello sviluppatore. Infatti, l’evento capitato a Hoffman non è di certo una storia nuova. Circa un anno prima, infatti, e per la precisione a gennaio 2014, l’autrice di Forbes Runa Sandvik aveva riferito l’esperienza di Rich Mogull, CEO di Securosis, azienda operante nel settore del security research, in un articolo dal titolo inquietante: Attackers Scrape GitHub For Cloud Service Credentials, Hijack Account To Mine Virtual Currency, secondo cui gli hacker erano riusciti a spendere 500 dollari dal suo conto Amazon AWS.
Ecco un tratto della sua storia:
Ero sul divano e stavo finendo di guardare un episodio della Marvel di Agents of S.H.I.E.L.D. E dopo visione ho controllato la mia e-mail prima di andare a letto, trovandoci una missiva che recitava così: “Caro cliente AWS, la tua sicurezza è importante per noi. Abbiamo recentemente scoperto che il tuo AWS Access Key che termina con 3KFA insieme con la tua Secret Key di accesso sono disponibili pubblicamente su github.com.”. Mi precipitai giù dal divano, borbottando a mia moglie, “il mio account Amazon è stato violato”, e mi fiondai nel mio ufficio, collegandomi subito ad AWS e GitHub per vedere cosa fosse successo.
Questo piccolo spezzone di vita quotidiana dimostra come la sicurezza dipenda non solo dal provider a cui ci si affida, ma anche dalle propria operatività. Sorprende che a essere colpito da questo problema sia proprio un esperto di sicurezza, ma ciò non dovrebbe far inorridire, in quanto un errore del genere è facilmente commettibile da chiunque, indipendentemente dal grado di esperienza nei diversi settori IT.
Come risolvere la questione delle chiavi API su GitHub
E non sono solo le chiavi AWS a essere a rischio. Con l’incrementare dell’uso dei servizi cloud-based, aumentano le chiavi API associate alla vasta gamma di servizi che possono essere compromessi e sfruttati da parte di hacker e spammer di ogni genere.
In realtà, esiste una soluzione pratica e funzionale per separare il codice depositato sul repository GitHub dalle chiavi di accesso ai servizi usati. Il metodo che ti suggerirò forse non funzionerà negli ambienti enteprise e nei grandi progetti di programmazione, ma nei progetti di programmazione quotidiana funziona perfettamente e ti aiuterà a limitare gli errori di sicurezza che ti ho descritto.
Sei curioso di sapere quale sia il metodo? Beh, non ti resta che seguirmi nel corso del prossimo appuntamento.