Torna indietro   Hardware Upgrade Forum > Networking e sicurezza > Antivirus e Sicurezza > Tutorial / How-To / F.A.Q.

Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
Apple MacBook Air M3: chi deve davvero comprarlo? La recensione
A distanza di circa 8 mesi arriva l’importante aggiornamento dei MacBook Air: nessun cambiamento estetico, ma una revisione hardware interna con l’upgrade al processore M3. Le prestazioni migliorano rispetto alle generazioni precedenti, e questo fa sorgere una domanda spontanea: a chi è rivolto oggi questo laptop? Cerchiamo di capirlo nella nostra recensione 
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono
Da ASUS un monitor particolare ma molto completo: principalmente indirizzato al videogiocatore, può essere sfruttato con efficacia anche per attività creative e di produzione multimediale
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza
Il nuovo robot aspirapolvere domestico di Dreame abbina funzionalità complete a un moccio flottante che raggiunge al meglio gli angoli delle pareti. Un prodotto tutto in uno semplice da utilizzare ma molto efficace, in grado di rispondere al meglio alle necessità di pulizia della casa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2009, 21:38   #1
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
http only cookies, XST (Cross site tracing), varie :D

Visto che
- e' stato tirato in ballo (riferimenti a http only cookies nelle "regole d'oro" per gli sviluppatori nell'altro thread, assieme all'intervento di riazzituoi)
- e' venerdi'
- adesso sono a casa e ho una mezz'ora libera prima di preparare una cenetta per la mia mogliettina che presto tornera' dal suo turno in ospedale



parliamo un po' di questi benedetti cookies "http only" (brevemente perche' ho non molto tempo, poi magari possiamo approfondire in seguito o linkare qualche doc etc).


Immagini di repertorio: ( )





Premessa: come si e' visto nell'altro thread, e in svariate altre occasioni, i cookies, quando non ci si riferisce ai biscotti, sono qualcosa spesso frainteso (molti utenti inesperti, ancora oggi, pensano che cookie sia sinonimo di spyware, virus, o quant'altro).
E molto spesso i cookie finiscono al centro dell'attenzione per l'una o l'altra vulnerabilita' di questo o quell'altro sito.

Il motivo e' semplice: i cookies sono - tristemente, come si vedra' in seguito - alla base, in un certo senso il "cuore", dei sistemi di autenticazione utilizzati dalla stragrande maggioranza dei siti Internet e, purtroppo per gli utenti della rete, la stragrande maggioranza degli sviluppatori web ignora o non conosce in maniera adeguata, i rischi indirettamente legati all'uso dei cookies, qualora non vegano prese le dovute misure di precauzione.

Questi due fattori fanno si' che i cookies, appunto, siano spesso il soggetto, il target di molte vulnerabilita' di un tipo o dell'altro che di solito mirano a compromettere l'account dell'utente X sul sito (non idealmente progettato) Y.

Tornando in topic... (se la prendiamo alla larga non la finiamo piu' )

Tutti, anche i meno esperti, avranno almeno una volta sentito il termine "AJAX", che quando non e' usato per riferirsi alla squadra di calcio o al detersivo, sta per asynchronous JavaScript and XML.
Al giorno d'oggi si usano spesso parole nuove per riferirsi a technologia vecchia (o a nuovi modi di utilizzare tecnologia esistente), e il termine AJAX non fa eccezione (mi viene in mente "cloud computing", in proposito).

Inutile ripetere qui descrizioni ed esempi che potete trovare su Wikipedia all'articolo linkato, o googlando.
Ci interessa qui fare il punto sul perche' i cookies sono cosi' importanti quando si parla di tecniche di programmazione AJAX che sono alla base del "web 2.0" e di tanta roba figa che si vede oggi giorno su Internet.

Anzi...per essere piu' precisi, avrei forse dovuto cominciare col dire: "Ci interessa qui fare il punto sul perche' i cookies sono cosi' importanti quando si parla di JavaScript", prima che di AJAX che vedremo nello specifico in un attimo.

Nel precedente post ho illustrato un paio tra le piu' comuni tecniche (ci sono diverse varianti) usate per appropriarsi di cookies che altrimenti dovrebbero essere inacessibili se non dal sito stesso che li crea. Ho fatto cenno sulla restrizione che riguarda il nome a dominio (in breve: una pagina nel dominio microsoft.com, per esempio, non puo' accedere ai cookies scritti dal dominio google.com, per esempio) e ad un trucchetto, quello dell'IMG tag (o SCRIPT tag... il concetto e' lo stesso), che sfrutta l'inaccortezza di chi ha progettato un sito per inviarne i cookies, di nascosto, accedendo mediante JavaScript alla proprieta' cookie dell'oggetto document.

Fin qui, penso sia chiaro, ed e' qui che entra in gioco il flag "http only".
HttpOnly e' una sorta di meccanismo di difesa introdotto nei browsers (chi prima, chi dopo), per rendere questi tipi di attacco molto piu' difficili, a vantaggio dell'utente, poiche' esso rende un cookie inaccessibile (almeno in teoria) a codice client.

Ad es. il cookie:

Quote:
Set-Cookie: SessId=...; HttpOnly;
contenente un token di autenticazione della sessione, non potra' essere accessibile mediante document.cookie perche' "document.cookie" restituira' semplicemente una stringa vuota.
Cio' significa, almeno in teoria, che le tecniche di XSS citate, cosi' come altre varianti che comunque hanno lo stesso scopo (quello di fare "session hijacking" per potersi autenticare impersonando altri), fallirebbero.

Cool, no?

Il problema e' che non tutti i browsers, o non tutte le versioni ancora in uso dei vari browsers, supportano questo flag.

Prima di chiudere questo riferimento, una parentesi (onde evitare di dimenticarlo in seguito). Aggiungo pertanto una importante nota a proposito del fatto che HttpOnly non protegge da altri tipi di azioni maligne che e' possibile compiere attraverso tecniche basate su XSS molto simili. Vi ricordate del MySpace worm?
O, anche meglio: sempre attraverso il trucchetto di un IMG o SCRIPT tag, e' possibile effettuare HTTP requests verso il sito vittima, e compiere azioni maligne, senza che l'utente se ne accorga, e spesso anche senza dover
far ricorso a tecniche di cross site scripting.
Questo, a causa ancora una volta del fatto che un buon (mia stima ) 90% degli sviluppatori web lavora in maniera molto amatoriale, tutt'altro che professionale, per ignoranza o disinteresse.

Le specifiche che descrivono il protocollo HTTP, infatti, dettano la seguente legge, in due chiare regole:

1) tutte le HTTP requests che hanno lo scopo di leggere dati ritornati da un server, andrebbero normalmente eseguite col verb/method GET.

Richieste di tipo GET sono per esempio quelle che voi stessi fate effettuare al browser nel momento in cui digitate un indirizzo e premete invio.

Altri esempi di richieste GET:

- normali links che semplicemente redirezionano l'utente all'indirizzo specificato nell'attribute href, o - similarmente - i rif. a stylesheets, che anche usano href

- redirezioni fatte attraverso la manipolazione dell'oggetto location mediante JavaScript

- l'attribute src di frames/iframes/images

2) tutte le azioni che comportano la creazione, la modifica, o la cancellazione di dati, andrebbero effettuate col verb/method POST.

Le richieste di tipo POST sono quelle effettuate

- attraverso l'invio di forms

- attraverso richieste AJAX / XMLHttp specificando il method POST


Purtroppo *TROPPI* siti, invece, consentono azioni "distruttive" (di cui al punto 2) attraverso richieste GET.
Facciamo un esempio (quello classico dell'home banking ): supponiamo che bancafiga.com consenta erroneamente il compimento di azioni, attraverso l'invio di richieste GET del tipo:

Quote:
bancafiga . com /transfer-money/?to_account_id=...&amount=1000000
bene: in un caso di questo tipo sarebbe sufficiente che un malintenzionato aggiungesse un tag IMG su un sito qualunque (il suo blog, un forum, ecc) che invece di visualizzare una immagine, effettui una richiesta come quella dell'esempio (che naturalmente e' soltanto un fantasioso esempio par illustrare il concetto), verso il sito bancafiga.com.

Utenti che giungano al sito dell'attaccante, e che in quel momento risultino autenticati sul sito vittima (bancafiga.com nell'esempio), puff...

Purtroppo anche questo tipo di vulnerabilita' e' fin troppo diffusa.
Sarebbe sufficiente, per evitarla,

1) seguire le direttive RFC ed usare POST per evitare le varianti piu' banali di questo tipo di attacco; banali... perche' il solo uso di POST non protegge da questo tipo di vulnerabilita' nell'insieme, perche' un sito maligno potrebbe avere del JavaScript che comunque effettui richieste POST...

2) usare, come gia' suggerito, nonce con validita' di singola pagina/richiesta (meglio) o almeno di sessione.

Un valore nonce dovrebbe essere generato dalla parte di applicazione invisibile all'utente, quella che opera sul lato puramente server della comunicazione, e dovrebbe essere reso disponibile nella pagina inviata al browser attraverso un campo form nascosto, una variabile JavaScript settata dinamicamente, o quello che vi pare.
L'importante e' che questo "nonce" venga passato ad ogni richiesta, e che venga confrontato col valore che l'applicazione server si aspetta di vedere.
Una richiesta effettuata malignamente nel modo illustrato nell'esempio, non avrebbe modo -se eseguita attraverso un altro sito- di conoscere il valore nonce che verrebbe accettato dal server (qui ho volutamente semplificato il discorso.... c'e' molto altro da dire, ma non la finiamo piu' altrimenti )

Chiudo questa parentesi che si e' protratta molto piu' a lungo di quanto immaginavo tornare in topic

E' possibile, in determinate circostanze, bypassare la restrizione che ho illustrato in merito al flag HttpOnly che e' possibile usare quando si scrivono cookies. In questo caso parliamo di cross site tracing o XST (ho linkato un white paper nell'altro post).
Questa tecnica si basa su un altro verb/method previsto da HTTP: trace. Normalmente non viene usato per le normali richieste ma per diagnostica, controllo, ecc. E' utile per esempio per sapere se una richiesta e' stata modificata tra server e client a causa di un proxy o MITM ecc.

Dunque? il problema e' che

- i browsers inviano tutti i cookies assieme a tutte le richieste, anche quelle che vengono effettuate col method trace, anche quelli segnati come httponly

- in diverse precedenti versioni di IE, Safari, Firefox, ecc ancora in uso (soprattutto di IE e Safari), e' ancora possibile effettuare richieste trace, e quindi leggere i cookies, anche con AJAX, dunque JavaScript, dunque client code, anche se document.cookie ritorna una stringa vuota.

Per es. con in IE:

Quote:
var xst_req = new ActiveXObject("Microsoft.XMLHTTP"); // o altra versione
with (xst_req) {
open("TRACE", "http://sito vittima", false);
send();
var testo_contenente_il_cookie = responseText;
}

Fortunatamente i browsers piu' recenti, chi prima, chi dopo, si stanno adeguando bloccando le richieste trace effettuate con JavaScript / AJAX.
Questo e' il motivo per cui nelle "5 regole d'oro" mi sono limitato a suggerire cookies http only. Se utilizzati assieme agli altri suggerimenti, sono un'ottimo meccanismo di difesa e prestissimo tutti i browsers in circolazione saranno - si spera - immuni a XST.

spero che anche quest'altro mattoncino vi sia piaciuto
adesso stacco, tocca a me cucinare stasera




ps: ho parlato di "mezz'ora libera", ma scrivere m'ha portato via un'altra ora

Ultima modifica di Sisupoika : 22-05-2009 alle 21:46.
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2009, 23:13   #2
riazzituoi
Bannato
 
Iscritto dal: Aug 2007
Messaggi: 3847
.

Ultima modifica di riazzituoi : 30-04-2010 alle 14:20.
riazzituoi è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 00:27   #3
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Quote:
Originariamente inviato da riazzituoi Guarda i messaggi
Ti sei dato da fare
ricomplimenti, ottimo POST

Per onestà intellettuale bisogna dare a Cesare quel che è di Cesare, vale a dire IE è stato il primo browser a risolvere questo problema (nonchè ad implementare l'httponly).
Hai ragione, per una volta tanto avrei dovuto menzionare un primato di IE
Ho dimenticato di scriverlo
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 19:25   #4
juninho85
Bannato
 
L'Avatar di juninho85
 
Iscritto dal: Mar 2004
Città: Galapagos Attenzione:utente flautolente,tienilo a mente
Messaggi: 28661
ogni volta che ti leggo mi viene mal di testa,per limiti miei purtroppo
juninho85 è offline   Rispondi citando il messaggio o parte di esso
Old 25-05-2009, 16:49   #5
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Quote:
Originariamente inviato da juninho85 Guarda i messaggi
ogni volta che ti leggo mi viene mal di testa,per limiti miei purtroppo
ho del paracetamol, se vuoi...
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2009, 07:41   #6
medus@
Member
 
L'Avatar di medus@
 
Iscritto dal: Jun 2008
Messaggi: 79
un uomo ke cucina da solo e conosce tutte queste cose sui...."biscottini". ke uomo di altri tempi
(...e ke favola sono i forum...riesco a prendermi certe confidenze ke d persona posso solo sognarmele...)
medus@ è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2009, 11:52   #7
xcdegasp
Moderatore
 
L'Avatar di xcdegasp
 
Iscritto dal: Nov 2001
Città: Fidenza(pr) da Trento
Messaggi: 27465
io pure cucino e mi diverto molto a farlo
sono questi i tempi, in altri tempi la donna era legata alla stufa a legna come i cookies all'utente
xcdegasp è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2009, 13:10   #8
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2009, 15:57   #9
xcdegasp
Moderatore
 
L'Avatar di xcdegasp
 
Iscritto dal: Nov 2001
Città: Fidenza(pr) da Trento
Messaggi: 27465
spostato in tutorial/faq
xcdegasp è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2009, 15:59   #10
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Quote:
Originariamente inviato da xcdegasp Guarda i messaggi
spostato in tutorial/faq
Cominciavo a pensare di aver perso molto tempo inutilmente nello scrivere questi threads
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2009, 16:06   #11
xcdegasp
Moderatore
 
L'Avatar di xcdegasp
 
Iscritto dal: Nov 2001
Città: Fidenza(pr) da Trento
Messaggi: 27465
assolutamente no non è stato tempo perso semplicemente attendevamo che producessi ogni venerdì


ps: sono stati linkati in thread importanti con un paragrafo dedicato
xcdegasp è offline   Rispondi citando il messaggio o parte di esso
Old 05-08-2009, 16:32   #12
Sisupoika
Registered User
 
Iscritto dal: Nov 2006
Città: Espoo, Finland
Messaggi: 1631
Quote:
Originariamente inviato da xcdegasp Guarda i messaggi
assolutamente no non è stato tempo perso semplicemente attendevamo che producessi ogni venerdì


ps: sono stati linkati in thread importanti con un paragrafo dedicato
Ogni venerdi'?
Sisupoika è offline   Rispondi citando il messaggio o parte di esso
Old 06-08-2009, 01:00   #13
xcdegasp
Moderatore
 
L'Avatar di xcdegasp
 
Iscritto dal: Nov 2001
Città: Fidenza(pr) da Trento
Messaggi: 27465
dai 2 visto che è estate, due venerdì al mese?
xcdegasp è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2009, 07:53   #14
medus@
Member
 
L'Avatar di medus@
 
Iscritto dal: Jun 2008
Messaggi: 79
Quote:
Originariamente inviato da xcdegasp Guarda i messaggi
io pure cucino e mi diverto molto a farlo
sono questi i tempi, in altri tempi la donna era legata alla stufa a legna come i cookies all'utente
medus@ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Apple MacBook Air M3: chi deve davvero comprarlo? La recensione Apple MacBook Air M3: chi deve davvero comprarlo...
ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ultrawide si fondono ASUS ROG Swift OLED PG49WCD: quando QD-OLED e ul...
Dreame L10s Pro Ultra Heat: la pulizia di casa tutta sostanza Dreame L10s Pro Ultra Heat: la pulizia di casa t...
HONOR Magic6 Pro: come funziona Magic Portal, il modo ''intelligente'' di condividere HONOR Magic6 Pro: come funziona Magic Portal, il...
L'innovazione richiede fiducia: Workday si propone come guida nell'era dell'IA L'innovazione richiede fiducia: Workday si propo...
RocketStar FireStar Drive: un propulsore...
Roscosmos: il lancio del razzo spaziale ...
Italia strategica per Oracle. Arriva la ...
Sam-Bankman Fried: 25 anni di reclusione...
Mobility Analytics di WINDTRE Business p...
Il lander lunare JAXA SLIM si è r...
Warframe conquista l'iPhone: senza soluz...
Marvel Rivals!, l'inaspettato shooter Pv...
Twitch aggiorna le linee guida sui conte...
Galaxy M55 ufficiale: la nuova fascia me...
Google corregge sette vulnerabilit&agrav...
IA: le imprese italiane sono in prima li...
Garmin Dash Cam 57: un'alleata perfetta ...
Elgato Facecam MK2: come rendere ancora ...
2 iRobot Roomba al prezzo più sco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:35.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www2v