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

Huawei Mate 30 Pro: ancora uno dei migliori sul mercato (e i servizi di Google sono secondari)
Huawei Mate 30 Pro: ancora uno dei migliori sul mercato (e i servizi di Google sono secondari)
Il nuovo Huawei Mate 30 Pro è arrivato in Italia. Lo ha fatto senza i servizi di Google ma è palese come il suo valore tecnologico risulti tale da renderlo uno dei migliori smartphone del momento pronto a cedere forse il passo solo al futuro Huawei P40 Pro. Lo abbiamo ripreso in mano per capire quanto i servizi di Google siano necessari e quanto sia difficile implementarli.
Recensione KEF LSX: quando l'audio di qualità si fa connesso
Recensione KEF LSX: quando l'audio di qualità si fa connesso
KEF produce altoparlanti apprezzati per l'elevatissima qualità del suono, ma l'azienda inglese non è immune al fascino dei dispositivi connessi e infatti propone i KEF LSX, altoparlanti connessi in grado di offrire ottime prestazioni acustiche anche tramite lo streaming da Internet o dalla rete locale
20 videogiochi da tenere d'occhio nel 2020
20 videogiochi da tenere d'occhio nel 2020
All'interno di ogni pagina trovate le informazioni più fresche su ciascun gioco, le più recenti immagini e gli ultimi video. Abbiamo inserito nella rassegna i titoli che realisticamente hanno possibilità di essere rilasciati nel 2020.
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: 28577
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: 27374
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: 27374
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: 27374
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: 27374
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


Huawei Mate 30 Pro: ancora uno dei migliori sul mercato (e i servizi di Google sono secondari) Huawei Mate 30 Pro: ancora uno dei migliori sul ...
Recensione KEF LSX: quando l'audio di qualità si fa connesso Recensione KEF LSX: quando l'audio di qualit&agr...
20 videogiochi da tenere d'occhio nel 2020 20 videogiochi da tenere d'occhio nel 2020
AMD Ryzen Threadripper 3960X: 24 core di terza generazione AMD Ryzen Threadripper 3960X: 24 core di terza g...
In giro per Las Vegas su un veicolo a guida autonoma In giro per Las Vegas su un veicolo a guida auto...
Leica M10 Monochrom: solo bianco e nero,...
SIAE e Wind Tre vogliono svecchiare la g...
IBM spiega come cambiano i consumatori e...
Samsung Galaxy Z Flip: ecco quanto potre...
HTC abbassa il prezzo di Vive Pro di 200...
SpaceX Crew Dragon: test rinviato a doma...
Kingston Data Center DC1000B, l'SSD per ...
Call center, arriva l'approvazione al nu...
Huddle Room: Snom lancia le nuove soluzi...
Ford Puma con EcoBoost Hybrid: ecco tutt...
noblechairs HERO Series è una delle migl...
A Shanghai il riconoscimento facciale ar...
Samsung Galaxy S20, S20+ e S20 Ultra: ec...
WhatsApp: il tema scuro è davvero...
Harley-Davidson presenta una nuova moto ...
Dropbox
Opera Portable
Opera 66
Chromium
K-Lite Codec Pack Update
K-Lite Mega Codec Pack
K-Lite Codec Pack Full
Media Player Classic Black Edition
VirtualBox
Driver NVIDIA GeForce 441.87 WHQL
Radeon Software Adrenalin 2020 20.2
GPU-Z
IObit Software Updater
NTLite
EZ CD Audio Converter
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: 21:13.


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