Atac de restabliment de TCP

De la Viquipèdia, l'enciclopèdia lliure

L'atac de restabliment de TCP, també conegut com a restabliment de TCP falsificat o restabliment de TCP falsificat, és una manera de finalitzar una connexió TCP enviant un paquet de restabliment de TCP falsificat. Aquesta tècnica de manipulació pot ser utilitzada per un tallafoc o abusada per un atacant maliciós per interrompre les connexions a Internet.[1]

Se sap que el Gran Tallafocs de la Xina i els censors d'Internet iranians utilitzen atacs de restabliment de TCP per interferir i bloquejar connexions com a mètode principal per dur a terme la censura d'Internet.[2]

Rerefons[modifica]

Internet és un sistema per ordinadors individuals per intercanviar missatges electrònics o paquets de dades. Aquest sistema inclou maquinari per transportar els missatges (com ara cables de coure i fibra òptica) i un sistema formalitzat per a formatar els missatges, anomenat "protocols". El protocol bàsic utilitzat a Internet és el Protocol d'Internet (IP), que normalment s'acobla a protocols addicionals com el TCP (Transmission Control Protocol) o UDP (User Datagram Protocol). TCP/IP és el conjunt de protocols utilitzat per a la navegació per correu electrònic i web. Cada protocol té un bloc d'informació, anomenat capçalera, inclòs prop de la part frontal de cada paquet. Les capçaleres contenen informació sobre quin ordinador ha enviat el paquet, quin ordinador l'ha de rebre, la mida del paquet, etc.

TCP s'utilitza amb IP quan es requereix una connexió virtual bidireccional entre dos ordinadors. TCP és un protocol orientat a la connexió i requereix que s'estableixi una connexió lògica entre dos processos abans de l'intercanvi de dades (UDP, d'altra banda, és un protocol IP sense connexió). S'utilitza un sòcol TCP/IP quan es comunica entre dos ordinadors (per exemple, una estació de treball amb un navegador i un servidor web) intercanviant un flux de paquets. L'ús d'una connexió TCP ofereix als ordinadors una manera fàcil d'intercanviar elements de dades massa grans per a un sol paquet, com ara clips de vídeo, fitxers adjunts de correu electrònic o fitxers de música. Tot i que algunes pàgines web són prou petites per a un sol paquet, s'envien a través de connexions TCP per comoditat.[3]

Reinicialització del TCP[modifica]

En un flux de paquets d'una connexió TCP, cada paquet conté una capçalera TCP. Cadascuna d'aquestes capçaleres conté una mica coneguda com la bandera de "restabliment" (RST).[4] En la majoria dels paquets, aquest bit està establert a 0 i no té cap efecte; tanmateix, si aquest bit s'estableix a 1, indica a l'ordinador receptor que l'ordinador hauria de deixar d'utilitzar immediatament la connexió TCP; no hauria d'enviar més paquets utilitzant els números d'identificació de la connexió, anomenats ports, i descartar cap paquet addicional que rebi amb capçaleres que indiquin que pertanyen a aquesta connexió. Un restabliment de TCP bàsicament mata una connexió TCP a l'instant.

Quan s'utilitza tal com està dissenyat, aquesta pot ser una eina útil. Una aplicació habitual és l'escenari en què un ordinador (ordinador A) es bloqueja mentre hi ha una connexió TCP en curs. L'ordinador de l'altre extrem (ordinador B) continuarà enviant paquets TCP ja que no sap que l'ordinador A s'ha bloquejat. Quan l'ordinador A es reinicia, rebrà paquets de l'antiga connexió prèvia a la fallada. L'ordinador A no té context per a aquests paquets i no hi ha manera de saber què fer amb ells, de manera que podria enviar un restabliment de TCP a l'ordinador B. Aquest restabliment permet que l'ordinador B sàpiga que la connexió ja no funciona. L'usuari de l'ordinador B ara pot provar una altra connexió o fer una altra acció.

Forjar restabliments de TCP[modifica]

En l'escenari anterior, el bit de restabliment de TCP va ser enviat per un ordinador que era un dels punts finals de connexió. És possible que un tercer ordinador supervisi els paquets TCP de la connexió i després enviï un paquet "falsificat" que conté un restabliment de TCP a un o ambdós punts finals. Les capçaleres del paquet falsificat han d'indicar, falsament, que prové d'un punt final, no del falsificador. Aquesta informació inclou les adreces IP del punt final i els números de port. Tots els camps de les capçaleres IP i TCP s'han de configurar amb un valor falsificat convincent perquè el restabliment fals enganyi el punt final perquè tanqui la connexió TCP. Els restabliments TCP falsificats amb el format adequat poden ser una manera molt eficaç d'interrompre qualsevol connexió TCP que el falsificador pugui supervisar.

Ús legítim[modifica]

Una aplicació d'un restabliment de TCP falsificat és interrompre de manera maliciosa les connexions TCP sense el consentiment de les dues parts propietaris dels punts finals. Tanmateix, també s'han dissenyat sistemes de seguretat de xarxa que utilitzen restabliments TCP falsificats. El 1995 es va demostrar un prototip de paquet de programari "Buster" que enviaria restabliments falsificats a qualsevol connexió TCP que utilitzés números de port en una llista curta. Els voluntaris de Linux van proposar fer alguna cosa semblant amb els tallafocs de Linux l'any 2000,[5] i el codi obert Snort va utilitzar el restabliment de TCP per interrompre connexions sospitoses ja el 2003.

Referències[modifica]

  1. «TCP Resets (RST): Attack or Defender Containment Method? | ExtraHop» (en anglès). [Consulta: 19 novembre 2023].
  2. «How does a TCP Reset Attack work?» (en anglès). [Consulta: 19 novembre 2023].
  3. «How it works: The novel HTTP/2 ‘Rapid Reset’ DDoS attack» (en anglès americà). [Consulta: 19 novembre 2023].
  4. «May 2000 Linux discussion archives» (en anglès). Arxivat de l'original el 2016-03-03. [Consulta: 19 novembre 2023].
  5. «May 2000 Linux discussion archives» (en anglès). Arxivat de l'original el 2016-03-03. [Consulta: 19 novembre 2023].