Un ataque de replay, también llamado ataque de reproducción o de reinyección, es un ciberataque en el cual una entidad maliciosa intercepta y a continuación repite una transmisión de datos válida a través de una red. Debido a la validez de los datos originales -que habitualmente provienen de un usuario autorizado-, los protocolos de seguridad de la red actúan frente al ataque como si se tratara de una transmisión de datos normal. Dado que los mensajes originales son interceptados y retransmitidos de forma literal, los hackers que ejecutan ataques de replay no se ven obligados a desencriptarlos.
¿Qué pueden hacer los Hackers mediante un Ataque de Replay?
A pesar de los peligros evidentes asociados a ellos, existen límites respecto a lo que los hackers pueden lograr con ataques de replay aislados. Los atacantes no pueden cambiar los datos que están siendo enviados sin que la red lo rechace, limitando de esta forma la efectividad del ataque a la repetición de acciones pretéritas. La defensa frente a estos ataques es también relativamente sencilla. Una defensa tan básica como añadir un sello de tiempo a la transmisión de datos puede proteger frente a ataques de replay simples. Los servidores pueden, a su vez, almacenar los mensajes repetidos y cortarlos tras cierto número de repeticiones, para así limitar el número de intentos que un atacante puede ejecutar mediante la reproducción de mensajes en rápida sucesión.
¿Por qué importan los Ataques de Replay en el Mundo de las Criptomonedas?
Cuando estos hard forks ocurren, resulta teóricamente posible para los atacantes emplear ataques de replay contra libros contables blockchain. Una transacción procesada en un ledger por una persona con un monedero válido antes del hard fork, también será considerada válida en el nuevo ledger resultante. En consecuencia, un individuo que haya recibido cierta cantidad de unidades de una criptomoneda de otra persona a través de un libro contable podrá pasarse al nuevo libro contable, replicar la transacción y transferir de forma fraudulenta un número idéntico de unidades a su cuenta por segunda vez. Debido a que sus monederos no forman parte de la historia compartida de los ledgers, los usuarios que se unen a una blockchain tras la ejecución de un hard fork no son vulnerables a este tipo de ataques.
¿Cómo pueden protegerse las Blockchains frente a este Tipo de Ataques?
A pesar de que la vulnerabilidad de los libros contables blockchain bifurcados frente a los ataques de replay es una preocupación legítima, la mayoría de hard forks incluyen protocolos de seguridad diseñados de forma específica para prevenir el éxito de este tipo de ataques. Las medidas efectivas contra ataques de replay dirigidos a blockchains se dividen en dos categorías: protección de replay sólida (strong replay protection) y protección de replay opt-in (opt-in replay protection). En el caso de la primera, se añade un marcador especial al nuevo ledger resultante del hard fork, para asegurar que las transacciones que tienen lugar en él no serán válidas en el ledger primigenio, y a la inversa. Este es el tipo de protección que se implementó cuando Bitcoin Cash se bifurcó de Bitcoin.
Cuando se opta por esta opción, la protección de replay sólida (strong replay protection) se ejecuta automáticamente tan pronto como el hard fork ocurre. Por el contrario, la protección de replay opt-in requiere que los usuarios lleven a cabo de forma manual cambios en sus transacciones para asegurar que las mismas no puedan ser reproducidas. La protección de replay opt-in puede ser útil en circunstancias en las que el hard fork se contempla como una actualización del libro contable principal de una criptomoneda, en lugar de como una división completa de la misma.
Aparte de estas soluciones de tipo general para el ledger, los usuarios individuales también pueden adoptar medidas de autoprotección para evitar convertirse en víctimas de ataques de replay. Uno de los métodos empleados en esta línea es el bloqueo en depósito de monedas que impide que sean transferidas hasta que el ledger alcanza cierto número de bloques, previniendo de esta manera que cualquier ataque de replay que afecte a estas monedas pueda ser verificado por la red. Cabe señalar, sin embargo, que no todos los monederos o ledgers ofrecen esta función.
Reflexiones Finales
Los ataques de replay, cuando tienen éxito, constituyen una amenaza real a la seguridad de la red. A diferencia de muchos otros tipos de ataques, los ataques de replay no dependen del descifrado de datos, convirtiéndolos en una solución alternativa efectiva para actores maliciosos que se enfrentan a protocolos de encriptación cada vez más seguros. Los libros contables blockchain, como resultado de los hard forks que se emplean para actualizarlos o dividirlos, son especialmente vulnerables a este tipo de ciberataques. Sin embargo, existen soluciones robustas que resultan razonablemente efectivas para proteger a las blockchains de éstos. En especial, el empleo de una protección de replay sólida (strong replay protection), puede garantizar que los atacantes no tendrán la capacidad de replicar las transacciones después de la ejecución de un hard fork.