Felice Piccola Vulnerabilità
SQL injection attacks contro le applicazioni sono in aumento con le grandi imprese e le corporazioni globali come bersaglio principale. Come abbiamo visto più e più volte, anche il software di fornitori affidabili può avere vulnerabilità che consentono agli utenti malintenzionati di compromettere la sicurezza di un’applicazione. Ecco un altro esempio.
La fine del 2016 è stata caratterizzata dalla scoperta di una nuova vulnerabilità di GitHub Enterprise. GitHub.com è un servizio di hosting basato sul Web, che utilizza Git – un sistema di controllo della versione distribuito open source. GitHub Enterprise è la versione on-premises di GitHub confezionata per essere eseguita sulla rete locale di un’organizzazione. La vulnerabilità trovata permetteva agli utenti malintenzionati di iniettare comandi SQL nelle istruzioni SQL attraverso l’invio di una richiesta specifica.
GitHub Enterprise viene fornito come un’appliance virtuale con licenze di prova gratuite di 45 giorni disponibili. Condivide una base di codice con GitHub.com. Il codice sorgente viene mantenuto privato e durante l’installazione viene recuperato in modalità trasparente. Dopo aver de-offuscato il codice, il ricercatore ha scoperto che il codice era in gran parte scritto in Ruby con componenti in Python, C++, Bourne Shell e Java. Dopo aver avuto accesso al codice, ha impiegato solo quattro giorni per analizzare i problemi potenziali e trovare una vulnerabilità di SQL Injection sotto il modello PreReceiveHookTarget di GitHub Enterprise. Il payload dannoso poteva essere iniettato nel parametro di ordinamento quando si inviava una query all’API di accesso.
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=????????
&sort=id,(select+1+from+information_schema.tables+limit+1,1)'
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=????????
&sort=id,(select+1+from+mysql.user+limit+1,1)'
{
"message": "Server Error",
"documentation_url": "https://developer.github.com/enterprise/2.8/v3/orgs/pre_receive_hooks"
}
$ curl -k -H 'Accept:application/vnd.github.eye-scream-preview' \
'https://192.168.187.145/api/v3/organizations/1/pre-receive-hooks?access_token=????????
&sort=id,if(user()="github@localhost",sleep(5),user())
GitHub è stato informato della vulnerabilità a dicembre e ha risolto il problema nella versione 2.8.5 di GitHub Enterprise. Il ricercatore che ha individuato il bug ha ricevuto una ricompensa di $ 5.000. Il programma bug bounty di GitHub è stato lanciato tre anni fa. Durante questo periodo più di 100 ricercatori della sicurezza del software sono stati premiati e oltre $ 100.000 sono stati pagati per lodare i loro sforzi.
L’iniezione SQL è la vulnerabilità delle applicazioni più pericolosa e più comunemente sfruttata. Pertanto, avere gli strumenti giusti in atto per prevenire questo tipo di attacchi è fondamentale. DataSunrise monitora e analizza costantemente le query SQL per prevenire iniezioni SQL in tempo reale e garantire la continua sicurezza nel database.