Un ataque replay o ataque de reproducción, es una de las vulnerabilidades más comunes que afectan a las blockchains. Estos ataques suelen ejecutarse durante la implementación de un hard fork, pues es en esos momentos donde se dan las mejores condiciones para su puesta en marcha.
Un Ataque Replay o Ataque de Reproducción, sucede cuando un actor malicioso intercepta y luego repite una transmisión de datos válida que pasa por una red. Esto es posible, porque el atacante ha logrado acceso a credenciales válidas para la red. Debido a esto, los protocolos de seguridad de la red tratan el ataque como si fuera una transmisión de datos normal. De esta manera, el atacante puede realizar su ataque sin mayores problemas.
Los Ataque Replay afectan muy especialmente a la tecnología blockchain, debido a su funcionamiento como sistema distribuido. Ello se debe a que precisamente esta estructura de funcionamiento facilita este tipo de acciones maliciosas. Todo lo que necesitas es tener acceso a credenciales válidas y que el ataque se lleve en el momento indicado, con ello suficiente para alcanzar el éxito.
Una explicación más cercana
Para ejemplificar de forma más sencilla este problema, podemos tener en cuenta el siguiente ejemplo:
Juan tiene una serie de criptomonedas en la blockchain de Bitcoin Cash. Sin embargo, la blockchain está por sufrir un hard fork que dividirá la blockchain en dos partes, legacy y la nueva blockchain. Después de la división, Juan posee la misma cantidad de criptomonedas en ambas blockchain. En esta situación, Juan quien había recibido varias transacciones importantes de Cristina antes del hard fork, decide actuar maliciosamente junto con ella. Para ello, vuelven a realizar operaciones pasadas (en la blockchain legacy), dentro de la nueva blockchain. Esta «repetición» de transacciones es validada por los mineros sobre la nueva blockchain. Esta acción les permite obtener nuevas criptomonedas por el mismo valor de las transacciones pasadas. Con esto, Juan y Cristina han realizado exitosamente un ataque replay.
De esta forma, los atacantes pueden hacerse con nuevos fondos de forma inescrupulosa, haciendo ver las terribles consecuencias que este tipo de ataques puede tener sobre toda la red.
Alcances y consecuencias de un ataque replay
Un ataque replay puede tener en primera instancia, el siguiente alcance:
- Permite suplantar la identidad de uno más usuarios del sistema. En este punto, un atacante puede efectivamente robar credenciales de acceso a la red y suplantar la identidad de un usuario. Al hacer esto, el atacante tiene acceso a todo el historial de acciones de dicho usuario. Este punto es condición suficiente y necesaria para llevar a cabo un ataque replay con desastrosas consecuencias.
- Permite crear ataques de denegación de servicios (DoS). Un atacante puede hacer que el ataque replay sea masivo dentro de la blockchain. Este escenario es posible debido a la pérdida de poder de cómputo de la blockchain legacy. Al caer el poder de minería de la blockchain legacy, se abre espacio para un ataque de 51%. Esto habilita la creación de nuevas transacciones que pueden ir a la nueva blockchain y dejarla fuera de servicio si se supera su potencia. Otra forma de realizar este tipo de acciones es aprovechar una debilidad en el protocolo de mensajes de la red P2P. Por medio de esta vulnerabilidad, no solo se puede hacer el ataque replay, sino también controlar la red para que solo escuche los mensajes formateados de una forma específica.
En ambos casos, existen limitantes en las acciones maliciosas que se pueden realizar. Pero quizás la más importante, es que no se pueden cambiar los datos que se envían sin que la red los rechace. Esto limita la efectividad del ataque a repetir acciones pasadas, a menos claro que se lleve junto a un ataque de 51%.
Importancia e implicaciones de los ataques replay
Este tipo de ataques son muy importantes a tener en cuenta en la tecnología blockchain. Especialmente cuando la blockchain está pasando por un proceso de hard fork. Esto es, porque los hard fork abren la posibilidad para realizar más fácilmente este tipo de acciones.
Ello se debe a que en esos momentos, existen dos blockchain con información idéntica al mismo tiempo. Esto significa que; una transacción procesada antes del hard fork también será válida en la otra. Como resultado, una persona que recibió una cierta cantidad de criptomonedas de otra persona en la vieja blockchain, podría cambiar a la otra, replicar la transacción y transferir de manera fraudulenta un número idéntico de unidades a su cuenta por segunda vez.
Sin embargo, esta situación solo es posible para los usuarios que han tomado parte en el hard fork. Es decir, los nuevos usuarios que han creado un monedero luego del hard fork no son vulnerables ni pueden realizar este tipo de ataques.
Pero este tipo de ataques pueden realizarse en espacios más allá de la tecnología blockchain. Por ejemplo, los sistemas de pago contactless o NFC también son susceptibles. Para hacer frente a ellos, estos deben tener contramedidas que eviten que un usuario pueda ejecutarlos y robar fondos de esa manera.
¿Cuánto sabes, criptonauta?
¿Un ataque replay conlleva a que el atacante tenga el control de la toda red?¡FALSO!
Un Ataque Replay, solo conlleva a que el atacante tenga la capacidad de suplantar identidades dentro de la red y realizar acciones ya realizadas en la misma. En ningún momento, el atacante tiene el control total de la red o la capacidad de sobrescribir toda la blockchain.
Medidas de protección contra este tipo de ataques
Las medidas efectivas contra los ataques de repetición de blockchain se dividen en dos categorías: protección de repetición fuerte y protección de repetición opt-in.
En una protección de repetición fuerte, se agrega un marcador especial a la nueva blockchain que emerge del hard fork. Esto con el fin de garantizar que las transacciones realizadas no serán válidas en la blockchain legacy, ni al contrario. Este es el tipo de protección que se implementó cuando Bitcoin Cash se separó de Bitcoin. Cuando se implementa, la protección se ejecuta automáticamente tan pronto como se produce el hard fork.
Por otro lado, la protección de reproducción opt-in requiere que los usuarios realicen cambios manualmente en sus transacciones. Esto con el fin de garantizar que no puedan ser susceptibles a los ataques replay. Esta protección puede ser útil en los casos en que la bifurcación está pensada como una actualización de la blockchain de una criptomoneda, en lugar de una división completa de la misma.
Además de estas soluciones, los usuarios individuales también pueden tomar medidas para protegerse. Un método para hacer esto, es evitar que las monedas se transfieran hasta que se alcance un cierto número de bloques en la nueva blockchain. Con ello se evita que la red verifique cualquier ataque replay que involucre esas unidades de monedas. Sin embargo, esta es una opción que no está disponible en muchos monederos o blockchains.