Vorrei dire la mia riguardo il post di Igor Damiani. Sicuramente programmare il web dovrebbe essere, al giorno d'oggi, una cosa esclusivamente riservata ai professionisti.
E in questo post vorrei esporre il mio personale punto di vista.

Di solito dopo aver creato una applicazione web privata (area admin) si ha spesso la cattiva abitudine di renderla visibile ai motori di ricerca. Come tutti sappiamo, i motori di ricerca tentano continuamente la scansione della rete alla ricerca d’informazioni e siti Internet in generale. Trovato un sito, si procede ad analizzare i collegamenti ipertestuali in esso presenti, se ne legge il contenuto corrente e quello di ulteriori collegamenti, questo, fino ad arrivare alla parte finale del ramo del sito.

A differenza della maggior parte dei proprietari di siti web, i quali sono ansiosi di ricevere visite da questi applicativi, i sviluppatori di applicazioni private dovrebbero rifiutarne a tutti i costi l’accesso.

Google è sicuramente uno dei migliori motori di ricerca mai esisti. La sua precisione nel recuperare informazioni su internet è pressoché sbalorditiva. Molto spesso però, incorre ed indicizza, documenti ed informazioni personali / riservate. A livello concettuale l’archiviazione di queste informazioni è del tutto lecito e corretto. L’indicizzazione viene eseguita unicamente nel caso in cui abbia ricevuto un consenso esplicito.

Vista la sua velocità d’indicizzazione e, dato il suo vastissimo database, Google è (e lo diventerà sempre di più) il principale punto di partenza per intrusioni non autorizzate a sistemi informatici. Questo è reso possibile dalle varie metodologie con cui è possibile ricavare, anche con esilarante semplicità, tutte le informazioni di cui si può aver bisogno.

Come detto, Google, deve essere considerato un vero e proprio database. In questa tipologia di applicazioni, per ricevere informazioni che corrispondono alle nostre richieste, è necessario digitare, attraverso un linguaggio d’interrogazione, una richiesta ben precisa. Anche Google fornisce il suo linguaggio d’interrogazione. Non è scopo di questo documento andare ad illustrare nel dettaglio il suo funzionamento, tuttavia sappiate che grazie a Google potete ricavare senza troppi sforzi informazioni incredibilmente private e riservate. Un esempio? Carte di Credito, Stringhe di Connessione a database di grandi aziende, Curriculum Vitae, stati di famiglia etc etc.

Pensate che le informazioni sopra citate possono appartenere anche ai vostri clienti,e quindi, indirettamente anche a voi. Pur essendo una tecnica piuttosto giovane, l’utilizzo di Google per fini non proprio “corretti” sta prendendo sempre più piede nella scena del hacking. Il profilo medio di un utilizzatore “non politicamente corretto” di Google è una persona con non molta esperienza che si diverte a cancallere (spesso in modo indelebile) informazioni di un certo spessore e peso per il business di chi riceve l’attacco.

John Long, ha recentemente scritto un interessante libro intitolato “Google Hacking for penetration tester”, il quale espone, in modo molto chiaro, tecniche per raggiungere informazioni riservate. Attraverso il suo sito è possibile visionare gran parte delle informazioni descritte nel libro. Sicuramente la pubblicazione di queste informazioni va ad aumentare il livello di rischio.

Pur essendo del tutto legale, l’errore ed il problema non riguarda direttamente Google. Al momento dell’archviazione delle informazioni Google rileva il consenso dello sviluppatore ad archiviare le informazioni presenti nel sito. Nel caso in cui la richiesta abbia esito negativo, i robots di Google scartano l’applicazione e continuano il loro lavoro senza indicizzare alcun tipo d’informazione. Questa politica, comune a tutti i motori di ricerca, lo rende uno degli esempi più lampanti su come lo sviluppo di applicazioni non sia orientata alla sicurezza.

Img 0.1 = Google mostra tutte le informazioni necessarie a collegarsi ai database MySql di 45 siti differenti.

 

Come è possibile evitare che questo accada anche alle nostre applicazioni? E' per prima cosa necessario seguire due semplici passaggi. Vediamoli insieme.

Proteggere intere directory con il file robots.txt

La tecnica che verrà descritta consiste nella creazione di un file di nome “robots.txt” all’interno del percorso ~/www/htdocs del webserver. Questa tecnica viene utilizzata nel caso si voglia negare l’accesso ad intere directory. Il contenuto del file robots.txt deve essere scritto rispettando una specifica sintassi, la quale può essere interpretata dal robot che sta effettuando lo scan.

Le due principali parole chiave usate sono le seguenti:
User-Agent contiene il nome specifico del robot per il quale si vuole applicare una regola, viene utilizzato * nel caso si voglia includere tutti i robots
Disallow contiene la path che non si vuole rendere pubblica, questa può essere di due tipi, completa o parziale.

Nel caso in cui la vostra web applications sia presente all’interno della cartella ~/privatearea/ il nostro file robots.txt dovrebbe essere scritto in questo modo

1 User-Agent:* 2 Disallow: /privatearea/

Con le istruzioni sopra riportate è possibile negare in modo assoluto l’autorizzazione ad archiviare le informazioni presenti nel percorso specificato. 

Che si sviluppi una singola pagina, o una intera serie di aggiunte ad un progetto esistente, assicuratevi sempre di rendere di mettere al sicuro il vostro lavoro.

Per la protezione delle single pagine è possibile applicare un ragionamento basato su MetaTags. Questi sono speciali istruzioni non visibili direttamente dall’utente i quali possono contenere particolari informazioni riguardo l’autore della pagina web e/o gli strumenti utilizzati. Un esempio di pagina "AntiGoogle" può essere la seguente

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> <html> <body> <h2>Pagina privata(!)</h2> Tutte le informazioni riportate in questa pagina non verranno indicizzate da Google </body> </html>

Alla prima riga è possibile notare il codice META il quale contiene una keyword “ROBOTS”. Questa particolare istruzione nega in modo assoluto il permesso ad indicizzare il contenuto presente nella pagina stessa ed in tutti i collegamenti che in essa contenuti.

Internet Information Services - Disabilitare la funzione Esplora Directory

Nascondersi ai motori di ricerca è sicuramente uno dei primi passi da effettuare per conservare un determinato livello di privacy dell’applicazione sviluppata. Tuttavia non è sempre solo necessario operare a livello codice per proteggersi. In Microsoft Internet Information Services (IIS), per esempio, si deve sempre negare l’esplorazione directory per tutti i siti che si sviluppano.