Liminal, proveedor de billeteras de computación multipartita (MPC), publicó un informe post-mortem del 19 de julio sobre el hackeo de WazirX del día anterior, afirmando que su interfaz de usuario no fue responsable del ataque. Según el informe, el ataque se produjo porque tres dispositivos WazirX se vieron comprometidos.
Liminal también afirmó que su billetera multifirma estaba configurada para proporcionar una cuarta firma si WazirX proporcionaba las otras tres. Esto significaba que el atacante sólo necesitaba comprometer tres dispositivos para realizar el ataque. La billetera se configuró de esta manera a instancias de WazirX, afirmó el proveedor de la billetera.
En una publicación en las redes sociales del 18 de julio, WazirX afirmó que sus claves privadas estaban protegidas con billeteras de hardware. WazirX dijo que el ataque "surgió de una discrepancia entre los datos mostrados en la interfaz de Liminal y el contenido real de la transacción".
Según el informe de Liminal, uno de los dispositivos de WazirX inició una transacción válida que involucra el token de Gala Games (GALA). En respuesta, el servidor de Liminal proporcionó un "safeTxHash", verificando la validez de la transacción. Sin embargo, el atacante luego reemplazó este hash de transacción por uno no válido, lo que provocó que la transacción fallara.
En opinión de Liminal, el hecho de que el atacante haya podido cambiar este hash implica que el dispositivo de WazirX ya había sido comprometido antes de que se intentara la transacción.
Luego, el atacante inició dos transacciones adicionales; una transferencia GALA y una transferencia Tether (USDT). En cada una de estas tres transacciones, el atacante utilizó una cuenta de administrador de WazirX diferente, para un total de tres cuentas utilizadas. Las tres transacciones fracasaron.
Después de iniciar estas tres transacciones fallidas, el atacante extrajo firmas de las transacciones y las utilizó para iniciar una nueva cuarta transacción. La cuarta transacción "fue diseñada de tal manera que los campos utilizados para verificar las políticas usaban detalles de transacción legítimos" y "usó el Nonce de la transacción USDT fallida porque esa era la última transacción".
Debido a que utilizó estos "detalles legítimos de la transacción", el servidor Liminal aprobó la transacción y proporcionó una cuarta firma. Como resultado, la transacción se confirmó en la red Ethereum, lo que resultó en una transferencia de fondos desde la billetera multifirma conjunta a la cuenta Ethereum del atacante.
Liminal negó que sus servidores provocaran que se mostrara información incorrecta a través de la interfaz de usuario de Liminal. En cambio, afirmó que el atacante proporcionó la información incorrecta, que había comprometido las computadoras WazirX. En respuesta a la pregunta planteada, "¿Cómo mostró la interfaz de usuario un valor diferente de la carga útil real dentro de la transacción?" Liminal dijo:
"Según nuestros registros, dado que tres dispositivos de las transacciones compartidas de la víctima enviaron cargas útiles maliciosas al servidor de Liminal, tenemos razones para creer que las máquinas locales fueron comprometidas, dándole al atacante acceso completo para modificar las cargas útiles y mostrar detalles de transacciones engañosos en el Interfaz de usuario”.
Liminal también afirmó que sus servidores estaban programados para proporcionar automáticamente una cuarta firma si los administradores de WazirX proporcionaban las otras tres. "Liminal sólo proporciona la firma final una vez que se recibe el número requerido de firmas válidas del lado del cliente", afirmó, y agregó que en este caso "la transacción fue autorizada y firmada por tres de los empleados de nuestro cliente".
La billetera multifirma "fue implementada por WazirX según su configuración mucho antes de incorporarse a Liminal" y fue "importada" a Liminal "según la solicitud de WazirX".
Relacionado: Autopsia de la infracción de WazirX: desmantelamiento del ataque de 230 millones de dólares
La publicación de WazirX afirmaba que había implementado "sólidas funciones de seguridad". Por ejemplo, había exigido que todas las transacciones fueran confirmadas por cuatro de cinco poseedores de claves. Cuatro de estas claves pertenecían a empleados de WazirX y una al equipo de Liminal. Además, requirió que tres de los poseedores de claves de WazirX usaran billeteras de hardware. Todas las direcciones de destino debían agregarse a una lista blanca con anticipación, afirmó WazirX, que fue "asignada y facilitada en la interfaz por Liminal".
A pesar de tomar todas estas precauciones, el atacante "parece haber violado dichas características de seguridad y se produjo el robo". WazirX calificó el ataque como "un evento de fuerza mayor fuera de [su] control". Aun así, prometió que “no dejaría piedra sin remover para localizar y recuperar los fondos”.
Se estima que se perdieron 235 millones de dólares en el ataque a WazirX. Fue el mayor hackeo de un intercambio centralizado desde el exploit DMM del 31 de mayo, que resultó en pérdidas aún mayores de 305 millones de dólares.
Revista: Los hackers de WazirX se prepararon 8 días antes del ataque, los estafadores falsifican dinero fiduciario para USDT: Asia Express