EtherOops y ataques packet-in-packet

Publicado por Diego Córdoba en

El equipo de investigación de Armis descubrió un nuevo método de ataque para explotar una vulnerabilidad en cables Ethernet que se creían 100% seguros. Le llamaron «EtherOops», y aquí haré una breve reseña explicativa.

Ataques Packet-in-Packet

EtherOops es un ataque de tipo paquete-en-paquete, es decir, ataques que se basan en el encapsulado de un paquete de red dentro de otro: el paquete exterior sería un paquete válido en la red, y podría pasar desde el exterior a través de un firewall, mientras que el paquete interior sería un paquete malicioso.

El concepto es muy similar al encapsulado que se realiza en un túnel de red, o un túnel seguro como una VPN.: un protocolo de red encapsulado, o «anidado», dentro de otro protocolo, en general de la misma capa o capas superiores.

El paquete exterior permite al atacante introducir un paquete con contenido malicioso como carga útil (payload) dentro de una red LAN Ethernet, saltando las defensas perimetrales como Firewalls. El paquete interior entonces tendrá como objetivo algún dispositivo de la red interna.

Básicamente, en EtherOops un atacante podría hacer uso de los errores que se producen aleatoriamente en bits de los paquetes de red, principalmente al transitar segmentos de cables defectuosos o de baja calidad, y usar estos errores para inyectar paquetes maliciosos en la red.

etheroops pip packet-in-packet
Esquema de funcionamiento packet-in-packet (créditos Armis)

Un ataque podría ocurrir si se cumplen algunas condiciones

  1. El atacante debe enviar grandes cantidades de paquetes «legales» que pueden pasar la seguridad perimetral (firewall, NAT) desde Internet hacia la red interna. Estos paquetes encapsulan en su interior otros paquetes (packet-in-packet) y el atacante podrá inyectarlos en la red interna. Esos paquetes, al pasar por un cable Ethernet defectuoso podrían experimentar cambios aleatorios en sus bits. Esto también podría producirse intencionalmente con interferencia electromagnética (ver fuentes abajo).
  2. El atacante entonces debe esperar a que se produzcan errores en ciertos y determinados bytes en la cabecera de la trama Ethernet de bajo nivel al pasar por dicho cable defectuoso, o al ser afectado por interferencia.
  3. Cuando esto ocurre, el atacante puede engañar al controlador Ethernet en el otro extremo para interpretar la carga útil como una trama nueva en la red. Esto le permitirá controlar las cabeceras de bajo nivel de los paquetes inyectados, haciendo que el controlador Ethernet envíe tramas nuevas. Estos paquetes nuevos no podrían haber ingresado desde el exterior debido a que hubieran sido bloqueados por el firewall.

Estos pasos son los fundamentos de los ataques packet-in-packet, y cumpliendo ciertos requisitos podrían permitirle al atacante controlar paquetes Ethernet en el interior de una red corporativa.

Además, el atacante podría aprovechar ciertas fallas de diseño que son inherentes al funcionamiento de las redes Ethernet, e interceptar tráfico como MITM (man-in-the-middle) en consultas DNS o HTTP entre distintos nodos de la red.

EtherOops: prerequisitos

En las redes Ethernet los paquetes generalmente no se modifican intencionalmente, y suelen perder las capas externas de encapsulamiento (llámese headers o cabeceras de protocolos externos) al pasar por firewalls y NAT’s. Aquí es donde se encuentra el origen del ataque EthetOops.

Los investigadores de Armis mencionan que los cables defectuosos, con fallas de fabricación, vulnerables a ataques de interferencia, etc., son propensos a una forma de interferencia eléctrica que permitirá modificar los bits del paquete externo y dejar la carga útil, el paquete malicioso, libre en la red.

EtherOops es un ataque complejo de llevar a la práctica, por lo que está fuera del alcance de muchos, pero un atacante sofisticado, como aquellos guiados por intereses internacionales, gobiernos y multinacionales, podrían dirigir sus ataques a estas vulnerabilidades (si se permite el término) presentes en los cables Ethernet.

Los requisitos necesarios para un ataque satisfactorio son de una complejidad considerable, por lo que, como se mencionó arriba, los atacantes más sofisticados podrían conseguirlos.

Los requisitos para que el ataque tenga éxito son:

  • Enviar paquetes a través de una barrera perimetral
  • Que se modifiquen bits de los paquetes enviados.
  • Manipular las sumas de verificación, o checksum.

A continuación se detallan algunos aspectos de cada punto.

Enviar paquetes a través de una barrera perimetral

El atacante primero necesita enviar flujos de paquetes a través de un firewall o NAT, con la esperanza de que uno o mas de ellos se corrompan en algún cable defectuoso o por interferencia que den lugar al ataque packet-in-packet.

Para que un atacante pueda enviar este tipo de paquetes puede elegir entre dos escenarios de ataque:

  • Ataque de 1 click: con esta técnica el atacante de alguna forma envía al usuario que será la víctima un enlace a un sitio web montado ex profeso. Accediendo a dicho enlace el equipo del usuario generará una conexión saliente hacia el sitio web del atacante, una conexión hacia Internet. Esta conexión en general será aceptada por el firewall, y permitirá al atacante enviar paquetes a la red interna de la compañía, y por mucho tiempo, incluso si el navegador de la víctima se cierra.
  • Ataque de 0-click: esta técnica implica que el atacante debería envenenar las respuestas del resolver DNS que usa la red de la empresa, idealmente un resolver externo como los servidores DNS públicos. Un atacante que utilice este método necesitará adivinar un número de 16 bits (el puerto origen de la consulta DNS) para poder inyectar una «respuesta DNS» en la red a través del firewall/NAT. Esto podría llevarse a cabo mediante fuerza bruta. Este ataque es más difícil de lograr y requiere de ataques por canal lateral. Los investigadores de Armis ejemplifican esto con un ataque de proximidad (ver fuentes).

Ocurrencia de bits modificados

Para que el ataque tenga éxito se necesitará que algunos bits se modifiquen en los paquetes que pasen por un cable Ethernet defectuoso o afectado por una fuente de interferencia electromagnética.

Ya en la conferencia BlackHat 2013 se presentó un caso similar, pero se descartó la brecha de seguridad debido a la alta confiabilidad de los cables. No obstante, los investigadores de Armis descubrieron que los cables defectuosos son numerosos, aproximadamente un 3.7% de ellos presentaron una cantidad significativa de errores.

Según los estándares de la industria la tasa máxima de error, o BER (bit-error-rate) en cables Gigabit Ethernet es de un bit por cada 10 mil millones de bits. Los cables que estudiaron los investigadores de Armin superaron esta tasa máxima estandarizada, y concluyeron que un ataque como el EtherOops puede ser perfectamente posible en un tiempo razonable, horas o menos. Por ejemplo, en cables con alta tasa de error un ataque tipo packet-in-packet puede ser efectuado en minutos.

Manipulación de las sumas de verificación (checksum)

Cuando se producen los errores en los bits en una transmisión Ethernet, el mismo mecanismo verifica las tramas con una suman de verificación en la cabecera, denominada checksum, con la intención de descartar tramas erróneas, o intentar corregirlas.

Un atacante que intente explotar la vulnerabilidad de packet-in-packet de Ethernet puede saltar esta verificación haciendo que el paquete interno (el que introduce código malicioso y será leído como una trama nueva) tenga la misma suma de verificación (checksum) que el paquete original. Esto no es difícil de lograr si el atacante conoce todo el contenido del paquete original de antemano, de modo que pueda precalcular dicho checksum.

La suma de verificación se calcula, en parte, utilizando las direcciones MAC de origen y destino de la trama, por lo que para lograr manipular el checksum esto se deben identificar las direcciones MAC del equipo destino y del router más cercano. Esto no es tan difícil para un atacante sofisticado debido a que las direcciones MAC no son secretas ni se pueden enviar cifradas.

Fuentes externas de EtherOops

Finalmente, y debido a que es un tema muy interesante y amplio, creo esta sección con algunos enlaces y fuentes externas (oficiales y no) para quien desee introducirse más en tema.

Primero, una prueba de concepto del ataque de packet-in-packet provista en video por los investigadores de Armis:

Segundo, el enlace oficial de Armis donde pueden encontrar una explicación más detallada de un escenario de ataque por proximidad mediante interferencias electromagnéticas (además de lo ya expuesto en este artículo): https://www.armis.com/etheroops/

Además, les dejo el enlace al paper técnico en el que detallan la investigación y los experimentos:
recursos.juncotic.com/research/Armis-EtherO-TWP-20200805-1.pdf

Finalmente, algunos enlaces adicionales que consulté para escribir este artículo:

Espero les sea de utilidad!!


¿Preguntas? ¿Comentarios?

Si tenés dudas, o querés dejarnos tus comentarios y consultas, sumate al grupo de Telegram de la comunidad JuncoTIC!
¡Te esperamos!


Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador