Il cookie come descritto alla pagina ( i cookie minacciano la nostra sicurezza ) sono applicazioni che contengono informazioni sull’utente che visita un sito, essi possono essere impostati per sessione rimanendo nella memoria di sistema fino alla chiusura del browser oppure, possono avere una determinata scadenza o essere permanenti ed allora vengono memorizzati in una apposita cartella del disco fisso locale sotto forma di file di testo in modo da Poter essere successivamente recuperati dal sito.
Tale file è di proprietà esclusiva dell'utente e può essere letto solo dal server che lo ha inviato, secondo le specifiche descritte nel documento
Request for Comments (RFC) 2965, " HTTP State Management Mechanism " ( http://www.rfc-editor.org ), i Set-Cookie che hanno un campo domain privo di
" embedded dot " devono essere automaticamente rifiutati.
Come funzionano
I cookie sono spesso usati dagli sviluppatori web, perchè danno la possibilità di gestire informazioni senza bisogno di memorizzarle sul server stesso, ma in maniera distribuita sui client, preservando quindi le risorse del server. I siti internet che li utilizzano, ne fanno uso, solitamente, oltre che per controllare quante volte uno stesso utente accede al sito web, anche per memorizzare informazioni che possano rendere migliore la navigazione di una persona all'interno di uno stesso sito, ad esempio possono essere creati per conservare informazioni di login per accesso ad un forum o ad un’area privata.
I Parametri
I cookie sono caratterizzati dagli attributi:
- Nome/Valore: possiamo pensare ad esso come ad una variabile, obbligatorio.
- Scadenza (expiration date): è opzionale ed indica la scadenza del cookie rispetto al timestamp nel quale lo stesso viene creato, può essere espressa come data, come numero di giorni, come NOW (adesso) e come NEVER (mai). L'utilizzo di una scadenza NOW elimina il cookie dal sistema ospite in quanto il cookie scade nel momento in cui viene creato o aggiornato. L'utilizzo di una scadenza NEVER permette la creazione di cookies non soggetti a scadenza.
- Sicuro (secure): è un attributo opzionale che indica se il cookie debba essere trasmesso criptato HTTPS.
- Percorso (path): è opzionale e definisce il sottoinsieme di indirizzi url a cui il cookie può essere applicato.
- dominio (domain): indica il dominio a cui il cookie si riferisce.
Vulnerabilità dei Cookie
La vulnerabilità dei cookie è dovuta proprio alla loro semplicità, infatti come abbiamo visto i cookie non sono altro comuni file di testo quindi modificare il loro contenuto non dovrebbe essere un operazione molto difficile. La tecnica che basa gli attacchi alle applicazioni web servendosi dei cookie è conosciuta con i nomi di cookie tampering, cookie poisoning o più comunemente Cookie Manipulation
Attacco Cookie ManipulationImmaginiamo di iscriverci ad un forum di un sito web che utilizza i cookie per memorizzare i dati dell’utente in modo da non doverli ridigitare nel caso in cui si voglia accedere anche in un secondo momento .
Quando ci troviamo nella condizione di effettuare un Login e il sistema ci riconosce viene rilasciato sul nostro computer un cookie del tipo
FORUM nome=Nazzareno&password=TestSicurezza
www.notrace.it
a questo punto ,si prova a sostituire i valori delle variabili , nome e password con quelli visti con l’sql injection
Un altro esempio è un carrello della spesa in un sito di e-commerce
Immaginiamo che i dati dei prodotti che abbiamo nel carrello siano conservati In un cookie tipo
CARRELLO IDprodotto=250&prezzo=1600&Quantita=1
www.sito-e-commerce.it
modificando il valore della variabile prezzo nel cookie possiamo scontarci il nostro prodotto
Visto così, sembra impossibile che un webmaster si lasci sfuggire questi banali dettagli, ma succede molto spesso. Secondo l’organizzazione The Open Web Application Security Project comunemente detta OWASP http://www.owasp.org/ la manipolazione dei cookie è uno dei 20 attacchi più utilizzati dagli hackers soprattutto nei sistemi di e-commerce
Come Difendersi
Per evitare che si possa mettere in atto questa tipologia di attacco occorre che lo sviluppatore, adotti una'lgoritmo di crittografia e di decrittografia lato server per evitare che le informazioni presenti sui cookie possano essere manipolate. Crittografando infatti i valori delle variabili e magari offuscando i loro nomi e possibile ottenere un grado di sicurezza più elevato, in quanto è più difficoltosa la modifica , verificare sempre la correttezza formale dei risultati delle elaborazioni rispetto a quelli attesi. Occorre Non utilizzare id autoincrementanti per accedere alle informazioni e comunque all’uso dei cookie è preferibile l’uso di cookieless session variables (variabili di sessione lato server che non fanno uso dei cookie)
Per ovvie ragioni non scendo nei dettagli dell'attacco, questo testo a solo l' obiettivo di mettere al corrente i web master dei pericoli che si corrono non proteggendo adeguatamente le applicazioni web
Immaginiamo che i dati dei prodotti che abbiamo nel carrello siano conservati In un cookie tipo
CARRELLO IDprodotto=250&prezzo=1600&Quantita=1
www.sito-e-commerce.it
modificando il valore della variabile prezzo nel cookie possiamo scontarci il nostro prodotto
Visto così, sembra impossibile che un webmaster si lasci sfuggire questi banali dettagli, ma succede molto spesso. Secondo l’organizzazione The Open Web Application Security Project comunemente detta OWASP http://www.owasp.org/ la manipolazione dei cookie è uno dei 20 attacchi più utilizzati dagli hackers soprattutto nei sistemi di e-commerce
Come Difendersi
Per evitare che si possa mettere in atto questa tipologia di attacco occorre che lo sviluppatore, adotti una'lgoritmo di crittografia e di decrittografia lato server per evitare che le informazioni presenti sui cookie possano essere manipolate. Crittografando infatti i valori delle variabili e magari offuscando i loro nomi e possibile ottenere un grado di sicurezza più elevato, in quanto è più difficoltosa la modifica , verificare sempre la correttezza formale dei risultati delle elaborazioni rispetto a quelli attesi. Occorre Non utilizzare id autoincrementanti per accedere alle informazioni e comunque all’uso dei cookie è preferibile l’uso di cookieless session variables (variabili di sessione lato server che non fanno uso dei cookie)
Per ovvie ragioni non scendo nei dettagli dell'attacco, questo testo a solo l' obiettivo di mettere al corrente i web master dei pericoli che si corrono non proteggendo adeguatamente le applicazioni web
Nessun commento:
Posta un commento