En los pasados días se dio a conocer que la red financiera llamada Poly Network fue víctima de un ataque en el que perdieron 611 millones de pesos en criptomonedas.
Poly Network es una plataforma que basa su funcionamiento y ofrece sus servicios financieros en blockchain, es decir, trabaja con diversas blockchains como Etherum, Polygon, Binance Smart Chain, entre otras. Su funcionamiento se basa en el intercambio de tokens y/o criptomonedas, eso gracias a que es una plataforma descentralizada, lo que le permite tener variedad. Además de que cuenta con una red de bloques propia y smart contract desplegados a lo largo de la misma, lo que le permite realizar las operaciones.
Este proceso de transferir tokens consiste en el bloqueo de los activos en la red origen, en este caso la red de Poly, y después que sean transferidos a la cuenta destino, con la condición de que los contratos tengan la liquidez suficiente para recibir los activos en la cuenta destino, en este caso la red del atacante.
A continuación, se presenta un diagrama presentado por Poly Network sobre la anatomía de la transferencia:
Pero, ¿cómo sucedió el ataque?
Una vez que el atacante tenía identificado el modo de operación de la red y que estaba convencido de que podía realizar las transferencias, era momento de poner manos a la obra.
En un principio se creía que las claves privadas que utiliza Poly Network para realizar las transferencias habían sido obtenidas mediante fuerza bruta, aunque parecía un escenario improbable, ya que como se sabe, las operaciones de blockchain ocupan muchísimo poder de cómputo, y romper una llave de esta magnitud necesitaría de una red de bots inmensa para lograrlo.
También se planteaba la idea de que habían sido filtradas, es decir, que había sido un error interno o que alguien desde dentro realizó las transacciones.
Sin embargo, ninguna de las dos opciones resultó ser verdadera. Un estudio realizado por la consultora china “SlowMist” reveló que todo se debió a un fallo en el código de la plataforma, particularmente en la función _executeCrossChainTx del contrato EthCrossChainManager.
La debilidad que fue explotada por el atacante, es que los argumentos del contrato y de la función no son verificados adecuadamente, lo que habilita que el usuario pueda manipular esta información. Debido a esto es posible que a partir de esta función se puedan realizar llamadas a otras funciones y/o contratos únicamente sabiendo el nombre del método, por lo que se puede realizar un ataque diccionario o un ataque por fuerza bruta hasta obtener diversos métodos que se incluyan en otros archivos de código o contratos.
En este caso se encontró un método responsable del almacenamiento y modificación de la llave pública que controla el desbloqueo de fondos. Este método se encontraba en el contrato EthCrossChainData que, a pesar de ser un contrato diferente, el contrato vulnerado previamente, es decir, EthCrossChainManager, era su propietario, por lo que al ser parte de este, EthCrossChainData queda vulnerado también.
Una vez que se sustituyó la llave pública que controlaba los fondos fue posible enviar hacia cualquier dirección la cantidad deseada de fondos, que fue lo que realizó el atacante. Cómo vemos, únicamente se trató de una vulnerabilidad en una única función de las cientos de funciones que tiene el código, sin embargo, esta vulnerabilidad permitía obtener acceso a otros métodos y otros contratos, lo que desencadenó en la pérdida del dinero.
Cabe aclarar que el atacante devolvió los tokens y las transacciones a Poly Network, por lo que la empresa decidió contratar al hacker responsable del ataque como su nuevo especialista en seguridad, ya que, como argumentan ellos y los expertos de SlowMist, para encontrar esta vulnerabilidad requiere de mucho talento.
Es por ello que es importante revisar, probar y testear las diferentes aplicaciones, además de la infraestructura que se utilice al montar una plataforma, ya que los errores suelen pasar desapercibidos al momento del desarrollo,y sin embargo, durante el funcionamiento de las aplicaciones es donde generalmente se paga y muy caro.
¿Cómo podemos ayudarte?
En ID SEC GROUP podemos ayudarte con nuestra metodología TAC-SEC®, patentada y creada por nosotros para que se adapte a tus necesidades y a tu infraestructura, con el fin de encontrar todas aquellas vulnerabilidades y amenazas que pongan en riesgo tu negocio antes que sucedan ya que creemos firmemente que los hackers antes de un ataque generan un rastro, el cuál puede rastrearse y detectar que una amenaza o vector que parecia inofensivo se vuelva en una amenaza grave.