Le directory.git non protette costituiscono un rischio per la sicurezza in Internet

27.10.2022 - Spesso gli sviluppatori utilizzano il software open source «Git» per la gestione e il controllo di versione dei codici sorgente. I sistemi per il controllo di versione facilitano il lavoro e sono molto utili. Tuttavia, utilizzarlo con noncuranza può costituire un rischio per la sicurezza e mettere in pericolo la confidenzialità di dati sensibili. Un’occhiata ai siti Internet del nostro Paese mostra che il pericolo delle directory.git non protette a sufficienza è reale anche in Svizzera.

Il fatto di poter lavorare insieme a un progetto ha sempre costituito una sfida per gli sviluppatori di software, e non soltanto dalla pandemia di COVID-19. Idealmente questa collaborazione deve poter permettere a persone situate in diversi luoghi del mondo di lavorare insieme contemporaneamente. Lo strumento del controllo di versione permette a più sviluppatori di lavorare su un codice software centrale e di apportarvi modifiche. In tal modo gli aggiornamenti al codice vengono documentati in maniera tracciabile e le diverse versioni sono visualizzabili in un’unica cronologia. Lo strumento probabilmente più conosciuto per il controllo di versione si chiama «Git» ed è stato lanciato dallo sviluppatore Linus Torvalds come software open source. Tuttavia esistono anche numerosi altri prodotti per la gestione delle versioni come, ad esempio, Mercurial, Apache Subversion, CVS, BitKeeper, ecc. 

Il pericolo delle directory.git protette in modo insufficiente

Se le directory.git non sono configurate correttamente o non vengono protette a sufficienza, con pochi click i dati sono visualizzabili pubblicamente in Internet. Le possibili cause per una protezione insufficiente includono errori umani da parte di amministratori IT o sviluppatori, ma anche punti deboli nella creazione di un nuovo progetto di sviluppo. Quando si comincia un nuovo progetto spesso viene copiata una directory già esistente, senza prestare particolare attenzione a che tipo di dati contiene e come sono protetti. Per la gestione e il tracciamento delle versioni, Git, come altri strumenti, utilizza una directory specifica (directory.git). Questa directory contiene, da un lato, il codice sorgente completo del software, ad esempio di un’applicazione o un sito web e, dall’altro, anche tutte le versioni e le modifiche precedenti ed eventualmente i file di configurazione con informazioni di sistema sensibili e degne di particolare protezione (password di banche dati, chiavi API, ecc.). Accedendo al codice sorgente, un potenziale aggressore potrebbe cercare in modo mirato le vulnerabilità dell’applicazione o del sistema e compromettere quindi una pagina Internet.

Le directory .git costituiscono un rischio per la sicurezza anche in Svizzera

Nel quadro del programma relativo alla segnalazione falle nella sicurezza (Coordinated Vulnerability Disclosure), nell’estate del 2022 l’NCSC è stato reso attento da un giornalista della piattaforma dnip.ch alla problematica delle directory .git non protette a sufficienza. Di conseguenza, l’NCSC ha condotto un’indagine sulle directory .git pubblicamente disponibili e accessibili in Svizzera. Sono stati individuati 1300 sistemi con dati potenzialmente sensibili come il codice sorgente, i dati di accesso o le password che risultano accessibili a causa di directory .git non protette a sufficienza.

Occorrono controlli di sicurezza

Per ridurre il rischio per la sicurezza e impedire l’abuso dei dati esposti, nel mese di ottobre del 2022 l’NCSC ha informato direttamente via mail le imprese interessate e i gestori dei siti web responsabili. Le mail, inviate a 400 destinatari, sono state indirizzate ai contatti tecnici o ai titolari del dominio. Tuttavia, l’indagine e l’informazione fornite dall’NCSC si riferiscono soltanto a una situazione istantanea e non sono da ritenere esaustive. Internet è in continua evoluzione, occorre quindi che i responsabili di sistema effettuino verifiche periodiche. A tal fine l’NCSC raccomanda di esaminare regolarmente il contenuto e la configurazione delle directory .git.

Raccomandazioni

La directory .git non dovrebbe mai essere liberamente accessibile su Internet in un sistema produttivo. Se la directory non può essere eliminata rapidamente, l’accesso dovrebbe essere per lo meno limitato e protetto in modo adeguato (ad es. tramite regole «.htaccess» o restrizioni tecniche simili, a seconda della tecnologia utilizzata).

Misure preventive come la verifica e l’adeguamento del processo di sviluppo sono ancora più efficaci. Ciò dovrebbe garantire che vengono memorizzati soltanto i dati auspicati e previsti («build files»). I dati sensibili o segreti (come password, chiavi API, ecc.) non dovrebbero mai essere memorizzati nel codice sorgente o nell’applicazione stessa («hardcoded»), o perlomeno bisognerebbe assicurarsi che non vengano memorizzate nella directory .git e poi ignorate («gitignore file»). Nella prassi purtroppo è stato dimostrato che spesso queste misure di sicurezza fondamentali e le «best practices» non vengono osservate.

Esempio di una directory .git

Se una directory .git non è protetta a sufficienza, dati sensibili come le password possono essere liberamente accessibili in Internet.
Se una directory .git non è protetta a sufficienza, dati sensibili come le password possono essere liberamente accessibili in Internet.

Git è solo uno dei numerosi esempi. Lo stesso problema si presenta con i file .env e .DS_Store non protetti: Alcuni prodotti software memorizzano la loro configurazione nelle cosiddette variabili d'ambiente e nel sistema operativo Apple le impostazioni delle cartelle sono memorizzate in file nascosti DS_Store (Desktop Service Store). Questi file possono anche contenere dati sensibili.

Link

Ultima modifica 27.10.2022

Inizio pagina

https://www.ncsc.admin.ch/content/ncsc/it/home/aktuell/im-fokus/2022/git.html