
Nell'ottobre 2006, Google, ha presentato Google Code Search, un nuovo e potente servizio che potrebbe avere significative ripercussioni nella comunità open source e nell'industria dell'information security.
Come funziona Google Code Search
Prima di esaminare a fondo le sue potenziali
ripercussioni, dovremmo esaminare come funziona questo servizio. Allo stesso
modo in cui i bot di Google setacciano Internet, analizzando le varie pagine per
la directory di ricerca, Code Search recupera il codice sorgente in decine di
linguaggi, spaziando da Ada a Yacc.
Google raccoglie quindi i dati attraverso i suoi bot, li indicizza in un modo speciale e li contrassegna come ricercabili. Ma tramite tale indicizzazione, il codice sorgente è reperibile attraverso modi molto più flessibili di quelli offerti dai “normali” operatori e criteri di ricerca resi disponibili da Google. Il risultato è un servizio velocissimo per la ricerca del codice di decine di migliaia di progetti.
L'impatto sulla comunità open source di Google
Code Search
Attualmente, Google Code Search ha come obiettivo ufficiale
solo i progetti open source. In questo senso, può aiutare i programmatori in
erba a vedere come gli sviluppatori più esperti risolvono determinati
problemi. In aggiunta, può aiutare gli sviluppatori esperti a individuare utili
porzioni di codice da inserire nei propri programmi. Ma come accade spesso con
prodotti nati per aiutare le persone nel proprio lavoro, anche Google Code
Search può essere usato per scopi fraudolenti; i malintenzionati possono
“scoprire” veri tesori costruendo query per individuare i difetti di sicurezza,
comprese le vulnerabilità di buffer overflow, gli attacchi formato di stringa e
numerosi altri aspetti.
Per esempio, Google Code Search potrebbe essere usato per sfruttare le chiamate della funzione gets () presente nel linguaggio di programmazione C. Siccome questa funzione non pone limitazioni alle dimensioni dell'input accettato all'interno di una variabile string con dimensione prefissata, potrebbe causare una vulnerabilità di buffer overflow. Un attacker potrebbe usare Google Code Search per trovare questa e altre vulnerabilità nel software open source e quindi realizzare nuovi exploit.
L'esempio di gets () è soltanto uno dei possibili tipi di problemi che potrebbero essere scoperti usando Google Code Search. Dug Song, un noto ricercatore di sicurezza, e Aaron Campbell hanno “postato” un blog che prende in esame i modi in cui Google Code Search può essere usato per individuare una decina di differenti difetti, comprese determinate condizioni di buffer overflow o irregolarità nel formato delle stringhe, giusto per nominarne un paio.
Entro breve, Google Code Search aiuterà gli sviluppatori a trovare e correggere il codice che potrebbe portare a importanti vulnerabilità della sicurezza. E, a lungo termine, Google Code Search migliorerà lo stato della sicurezza stessa, visto che questo servizio offre un modo incredibilmente potente di visualizzare il codice. Tuttavia, lo sviluppo a breve termine sarà abbastanza singolare, dato che i malintenzionati useranno Google Code Search per individuare i difetti mentre il resto della comunità se ne avvarrà per implementare tutte le correzioni disponibili per tali difetti.
Google Code Search e il codice commerciale
Oggi Google Code Search viene indirizzato a
progetti open source, ma questo non significa che le aziende commerciali del
software debbano ignorarlo. Infatti, lo sviluppo in casa del codice implica una
serie di conseguenze per le imprese. Per esempio, se il codice proprietario è
indicizzato da Google, i malintenzionati possono individuare eventuali “falle” e
sfruttare i sistemi colpiti.
Ma allora, cosa possono fare che le aziende per proteggersi dall'uso maligno di Google Code Search? Alcuni hanno suggerito di identificare chiaramente il codice sorgente “proprietario” e includere commenti nel codice stesso per difendersi contro la scansione di Google Code Search . È sicuramente una buona idea, ma attualmente non impedisce a Google di incorporare ogni codice disponibile nel suo database. Ce ne siamo accorti quando abbiamo cercato il termine “proprietary” e abbiamo trovato 99.900 hit, diversi dei quali riportavano nel codice “This is unpublished proprietary source code for vendor [XYZ]”. In futuro, Google potrà sicuramente filtrare le ricerche eliminando tali risultati, ma oggi non è ancora in grado di compiere questa operazione.
Impedire l'abuso di Google Code Search
Ci sono alcune misure che le imprese
possono prendere per proteggersi dall'uso maligno e dall'abuso di Google Code
Search. In primo luogo, dovrebbero assicurarsi che il codice sorgente non possa
essere raggiunto attraverso i siti Web a meno che non ci sia un motivo di
business per “renderlo pubblico”.
Secondariamente, dovrebbero implementare file robots.txt nel proprio Web server: questo limiterà ai bot di Google lo spazio in cui cercare i parametri, durante la ricerca dei contenuti. Potete anche usare robots.txt per dire ai motori di ricerca che hanno un comportamento “corretto” che determinati indici sono off-limits. Per saperne di più su come configurare i file robots.txt, visitate il sito www.robotstxt.org. È importante sottolineare che robots.txt è una lama a doppio taglio: mentre da una parte impedisce ai servizi di ricerca “corretti” di scandagliare le zone sensibili del vostro sito Web, dall'altra attira l'attenzione di qualche malintenzionato su quelle stesse zone.
Nonostante ciò, va da sé che un'impresa abbia bisogno di un programma di garanzia della qualità. Revisionate con attenzione il codice ed effettuate test approfonditi, verificando tutto il software prodotto in casa. Infine, inserite delle stringhe con un numero di serie in ogni file creato dal vostro team di sviluppo e periodicamente ricercate queste stringhe in Google Code Search e in altri motori di ricerca per verificare se il vostro codice è uscito o meno dalla vostra organizzazione.
