Reflection attack: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix +C +fonte
Birrezza (discussione | contributi)
Nessun oggetto della modifica
 
(5 versioni intermedie di 5 utenti non mostrate)
Riga 1:
{{nota disambigua|l'attacco di tipo "denial of service"|Distributed Reflection Denial of Service}}
{{C|il contenuto pare essere quasi del tutto errato, vedere anche [https://www.cl.cam.ac.uk/~rja14/Papers/SEv2-c03.pdf]|informatica|giugno 2018}}
Il '''reflection attack''' è un tipo di attacco informatico in cui un attaccante, invece di colpire direttamente la vittima, dirige il suo traffico verso un host intermedio (testa di ponte o reflector) e poi questo lo dirige verso la vittima.
 
Il '''reflection attack''' è un tipo di [[attacco informatico]] volto a colpire sistemi di [[autenticazione]] di tipo ''[[challenge-response]]'', che usano lo stesso [[protocollo di comunicazione]] in entrambe le direzioni (ovvero, ciascuna parte utilizza lo stesso protocollo per autenticarsi con l'altra parte). L'idea alla base di questo tipo di attacco è di imbrogliare la vittima chiedendogli una soluzione (''response'') alla sua stessa sfida (''challenge'').<ref>{{cita libro|titolo=Computer Networks|autore=[[Andrew S. Tanenbaum]]|edizione=4|isbn=0-13-038488-7|pagine=787-790|anno=2002|lingua=en}}</ref>
In genere per ottenere questo effetto nelle reti IP si usa l'[[IP spoofing]]. L'attaccante genera un pacchetto con l'indirizzo sorgente della vittima e l'indirizzo di destinazione del reflector. Il reflector risponde con un pacchetto che però, a causa dello spoofing, avrà come indirizzo quello della vittima. La vittima quindi riceverà pacchetti provenienti dal reflector e non riuscirà a risalire all'attaccante vero.
 
== Attacco ==
Se l'attaccante è in grado di far sì che i sistemi intermedi mandino dei pacchetti di risposta più grossi dei pacchetti iniziali si è in presenza di un [[amplification attack|attacco di amplificazione]].
In linea di massima, l'attacco è condotto come segue:
# L'attaccante inizia la connessione con la vittima.
# La vittima chiede all'attaccante di autenticarsi, inviandogli una sfida (''challenge'').
# L'attaccante inizia una seconda connessione con la vittima chiedendogli di identificarsi tramite la stessa ''challenge''.
# La vittima risponde alla sfida con la risposta corretta.
# L'attaccante invia il ''response'' corretto nella prima connessione.
 
Se il protocollo di autenticazione non è progettato attentamente, la vittima che riceve la risposta la accetterà in quanto corretta e lascerà all'attaccante un canale di connessione autenticato (mentre il secondo canale verrà abbandonato).
==ACK attack==
Uno dei più classici attacchi reflection è l'ack attack. In questo caso l'attaccante genera un pacchetto [[Transmission Control Protocol|TCP]] SYN verso il reflector. Il reflector (per esempio in questo caso può essere usato un qualunque server TCP, es. un server Web) risponde con un pacchetto SYN/ACK, per stabilire la connessione secondo il protocollo. La vittima verrà quindi inondata di pacchetti TCP fuori sequenza provenienti da un server web "pulito".
 
== Contromisure ==
Questo attacco è particolarmente insidioso perché non c'è modo di distinguere i SYN spoofati dai SYN reali e quindi non c'è modo, per il reflector, di proteggersi. La vittima può invece proteggersi con un [[firewall]] che sia stateful, che sia cioè in grado di scartare i pacchetti TCP fuori sequenza.
La contromisura più comune a questo tipo di attacco è la seguente: la vittima inserisce il suo codice di identificazione nel ''response'' alla ''challenge''. In questo modo, se a sua volta riceve un ''response'' contenente il suo ID, può semplicemente scartarlo.<ref>{{cita libro|url=https://www.cl.cam.ac.uk/~rja14/book.html|titolo=Security Engineering: A Guide to Building Dependable Distributed Systems|autore=[[Ross J. Anderson]]|lingua=en|ISBN=0-471-38922-6|pagine=20–22|anno=2001|edizione=1}}</ref>
# Alice inizia la connessione con Bob
# Bob sfida Alice inviandogli un ''[[nonce]]''. <math>B \rightarrow A: N</math>
# Alice risponde inviando il suo identificatore e il ''nonce'' crittati usando la chiave comune <math>K_{ab}</math>. <math>A \rightarrow B: \{A, N\}K_{ab}</math>
# Bob decifra il messaggi, controllando che provenga da Alice e non da lui stesso assicurandosi che contenga l'identificatore <math>A</math> e non <math>B</math>. Se il ''nonce'' è quello inviato da lui, accetta il messaggio.
 
Un'altra possibile soluzione è usare protocolli (o chiavi crittografiche) differenti per le due direzioni di autenticazione.
== Voci correlate ==
* [[Rete di computer]]
* [[Accesso abusivo a un sistema informatico o telematico]]
 
== BibliografiaNote ==
<references/>
*{{cita libro|url=http://www.cl.cam.ac.uk/~rja14/book.html|titolo=Security Engineering: A Guide to Building Dependable Distributed Systems|lingua=en|pagina=76|ISBN=0-471-38922-6}}
 
== Voci correlate ==
* [[Attacco man in the middle]]
* [[Denial of service]]
* [[Replay attack]]
 
{{Portale|sicurezza informatica|telematica}}
 
[[Categoria:Tecniche di attacco informatico]]
[[Categoria:Sicurezza indi rete]]