
¿Qué es el ataque al sándwich de Ethereum?

La máquina virtual de Ethereum (EVM) es un intérprete de bytecode basado en la pila. Esto significa que la EVM ejecuta instrucciones en forma de operandos de un byte y direcciones de dos bytes que dirigen el código de operación que debe realizarse sobre esos datos. Estos datos pueden ser números, palabras (es decir, espacios de almacenamiento de 32 bytes) o incluso otras direcciones de ubicaciones de almacenamiento. El entorno de ejecución de cada contrato inteligente se conoce como máquina virtual de Ethereum (EVM). Se ejecuta en un entorno de caja de arena con su propio conjunto de reglas y recursos. Sin embargo, aparte de estas restricciones, la EVM es prácticamente perfecta para ejecutar cualquier tipo de instrucción de código de bytes. Por eso, los contratos inteligentes suelen desplegarse como código compilado en lugar de bytecode en bruto. Sin embargo, hay algunos casos en los que tiene sentido desplegar el código de un contrato malicioso directamente como bytecode en bruto – así lo hemos descubierto después de numerosos experimentos de autodestrucción por parte de varios actores atrapados por sus propias creaciones. El más famoso es el «ataque del sándwich de Ethereum» descrito aquí:
¿Qué es el ataque al sándwich de Ethereum?
El ataque Ethereum Sandwich es un código de contrato inteligente malicioso que se despliega en la blockchain y se ejecuta como bytecode EVM en bruto. El código está diseñado para atrapar al EVM en un bucle eterno, haciendo que el EVM se vea abrumado con el consumo de su CPU y memoria, lo que lleva a un ataque de denegación de servicio (DoS). Como resultado, toda la red se detiene, impidiendo cualquier nueva transacción. El ataque recibe el nombre del método de despliegue del código malicioso: colocándolo entre dos contratos legítimos que no tienen ningún efecto sobre el código malicioso. Cuando el código del contrato se despliega en la cadena de bloques como código de bytes sin procesar, el EVM es incapaz de decir que el código es malicioso, por lo que lo ejecuta para siempre. El código malicioso se coloca entonces entre los dos contratos legítimos, utilizando los contratos legítimos como escudos contra la detección. El código malicioso es capaz de hacer esto porque el EVM no se preocupa por la estructura del código del contrato y por lo tanto no busca espacios entre los contratos; sólo busca sus ubicaciones de inicio y fin.
¿Cómo funciona el ataque de Ethereum Sandwich?
El ataque comienza cuando un actor malicioso intenta colocar un gran volumen de código en una blockchain. Este código se divide en múltiples contratos y contratos de blindaje colocados entre el código malicioso y una blockchain legítima. El código del contrato malicioso desactiva el ordenador central que se utiliza para desplegar el código. Una vez desactivado este ordenador, el actor malicioso utiliza un ordenador diferente para desplegar el código malicioso en la blockchain. El código malicioso se sitúa entonces entre dos contratos legítimos, y el código malicioso impide que se desplieguen los contratos legítimos. El código malicioso también impide que se eliminen los contratos maliciosos. El código malicioso impide que se ejecuten los contratos legítimos al consumir todos los recursos del EVM. Esto hace que los contratos legítimos nunca se ejecuten, lo que hace que el código malicioso permanezca siempre entre los contratos legítimos. El código malicioso es capaz de hacer esto porque el EVM no se preocupa por la estructura del código del contrato y, por lo tanto, no busca espacios entre los contratos; sólo busca sus ubicaciones de inicio y fin.
Implicaciones del ataque Ethereum Sandwich.
Las implicaciones de que el EVM sea incapaz de decir si el código que está ejecutando es malicioso o no, es que podría llevar al colapso de la red Ethereum. Tal colapso podría tener ramificaciones catastróficas para el valor del token ETH y probablemente obligaría a los intercambios a retirarlo de la lista. Esto también dejaría a muchos modelos de negocio basados en Ethereum incapaces de sobrevivir y mermaría seriamente la confianza en la viabilidad de la tecnología blockchain en su conjunto. La otra implicación del ataque al sándwich de Ethereum es que podría ser un ataque deliberadamente malicioso. Si un actor malintencionado es capaz de cerrar la red Ethereum, podría dañar la red hasta tal punto que podría ser extremadamente difícil para la red recuperarse. Además, el actor malicioso podría beneficiarse de sus acciones, ya que muchas criptomonedas se negocian con margen como activos digitales. Si la red Ethereum se cerrara, muchos operadores de margen verían sus fondos anulados al caer el valor de ETH. El actor malicioso también podría beneficiarse de la venta en corto de ETH en el período previo a su ataque, con la expectativa de que su valor caiga una vez que se cierre la red.
Cómo mitigar el ataque de Ethereum Sandwich
Como operador de la red, hay varias cosas que se pueden hacer para mitigar el riesgo de un ataque Ethereum Sandwich. El primer paso es asegurarse de que la red es consciente del riesgo del ataque, para poder tomar medidas preventivas cuando sea necesario. Esto se puede hacer mediante la supervisión de la ejecución de código en la red y la búsqueda de grandes cantidades de código que se despliegan como bytecode crudo. El segundo paso es asegurarse de que hay controles que impiden que el actor malicioso pueda desplegar grandes cantidades de código en la red. Esto puede hacerse implementando un proceso de revisión de código centralizado que garantice que todo el código sea validado antes de ser desplegado en la red.
Conclusión
El ataque «sandwich» de Ethereum es un ataque malicioso que se ejecuta colocando código malicioso entre dos contratos legítimos. El código malicioso está diseñado para consumir todos los recursos de la EVM de manera que los contratos legítimos nunca se ejecuten. Como resultado, el código malicioso es capaz de permanecer entre los contratos legítimos indefinidamente. Las implicaciones de que el EVM sea incapaz de saber si el código que está ejecutando es malicioso o no, es que podría llevar al colapso de la red Ethereum. Tal colapso podría tener ramificaciones catastróficas para el valor del token ETH y probablemente obligaría a los intercambios a retirarlo de la lista. Esto también dejaría a muchos modelos de negocio basados en Ethereum incapaces de sobrevivir y mermaría seriamente la confianza en la viabilidad de la tecnología blockchain en su conjunto. La otra implicación del ataque al sándwich de Ethereum es que podría ser un ataque deliberadamente malicioso. Si un actor malintencionado es capaz de cerrar la red Ethereum, podría dañar la red hasta tal punto que podría ser extremadamente difícil para la red recuperarse. Además, el actor malicioso podría beneficiarse de sus acciones, ya que muchas criptomonedas se negocian con margen como activos digitales. Si la red Ethereum se cerrara, muchos operadores de margen verían sus fondos anulados al caer el valor de ETH.