-
El atacante podría vaciar la hot wallet de la casa de cambio con altos costos de gas
-
La vulnerabilidad también podría presentarse con Ethereum Classic y EOS
Este 21 de noviembre se conoció de manera pública una vulnerabilidad en casas de cambio que no tengan establecido un límite de gas para transacciones de salida relacionadas con contratos inteligentes de Ethereum.
Según una publicación de Level K, desde el pasado 09 de noviembre han alertado a las casas de cambio de esta vulnerabilidad que podría vaciar sus hot wallets (carteras que utilizan para pagar las comisiones de las transacciones en su plataforma) por medio del constante cobro de comisiones o gas en Ethereum. A raíz de ello, algunos de estos servicios ya han tomado medidas correctivas.
The disclosure is now public: https://t.co/xVwsG9EBET We appreciate the patience while affected parties were notified.
— Level K (@levelk_io) 21 de noviembre de 2018
Desde Level K explicaron que esto se debe a que, en contratos inteligentes (desde tokens ERC20, tokens ERC721 como CryptoKitties y otros), las direcciones receptoras son las que fijan de forma arbitraria el límite de gas para llevar a cabo una transacción, el cual es pagado por los iniciadores de las transacciones, en este caso, las casas de cambio.
Cuando las casas de cambio no han establecido un límite de gas bien definido para los contratos inteligentes, usuarios malintencionados puedan establecer altos costos de gas para procesar sus transacciones y retirar más fondos de los necesarios de la hot wallet que usa la casa de cambio.
Este panorama podría ser aún peor si la casa de cambio no cuenta con normas KYC y se ejecutan ataques Sybil. Esto es, que un mismo usuario, bajo distintas identidades y direcciones, ejecute una serie de transacciones de salida con montos elevados de gas. De esta forma, la casa de cambio podría perder una significativa cantidad de criptomonedas.
Miembros de Level K, IC3 y Trail of Bits compartieron un documento en donde extendieron la explicación acerca de la vulnerabilidad:
Muchas casas de cambio permiten el retiro de Ethereum a direcciones arbitrarias sin límite de uso de gas. Dado que el envío de Ethereum a una dirección de contrato ejecuta su función de respaldo, los atacantes pueden hacer que estas casas de cambio paguen por cálculos arbitrarios. Esto permite que los atacantes puedan forzar a las plataformas de intercambio para quemar su propio Ethereum en alto costos por transacción. Los atacantes pueden incluso beneficiarse económicamente al acuñar GasTokens.
Chris Whinfrey (Level K), Shane Fontaine (Level K), Dan Guido (Trail of Bits), Philip Daian (IC3) y Lorenz Breidenbach (IC3)
Autores
Cabe destacar que GasToken es un contrato inteligente que pudiera ser utilizado para explotar aún más esta vulnerabilidad, por medio de un «ataque rentable». GasToken funciona como un banco de gas, el recurso fundamental para transacciones en la blockchain de Ethereum. Allí, los usuarios pueden comprar tokens representativos de gas y almacenarlos cuando este recurso se encuentre a bajos precios.
Asimismo, a través de GasToken, los usuarios pueden beneficiarse del reembolso de almacenamiento de ether. Dicho reembolso solo aplica a transacciones de contratos, cuando estos eliminan elementos de almacenamiento que, en caso contrario, deben ser alojados en la blockchain. La ventaja de este tipo de reembolso es que puede representar hasta la mitad del gas de una transacción de contrato.
¿Qué hacer para evitar este tipo de ataques?
Ante este panorama, los autores del documento recomiendan a las casas de cambio «implementar límites razonables de gas en todas las transacciones», además de asegurarse que sea el usuario el que pague el gas cuando se trate de transacciones costosas, así como también que las tarifas de retiro cubran el gas necesario.
Recalcaron que las transacciones a direcciones de usuarios solo requieren el mínimo (21.000 gas) mientras que las transacciones a direcciones de contratos inteligentes promedian un costo mayor de gas, aunque el monto ideal puede ser fácilmente calculado. También mencionaron la posibilidad de hacer modificaciones en la interfaz de usuario para comunicar las comisiones a cobrar. Además, los autores recomendaron revisar sus registros para determinar si han sido objeto de este tipo de ataques, no solo en la red de Ethereum, sino también en Ethereum Classic y EOS.
Este tipo de advertencias de vulnerabilidades se merecen atención, ya que la seguridad es esencial para cualquier tipo de sistema financiero. Anteriormente se han anunciado debilidades que atacantes han sabido explotar para robar fondos en criptomonedas e incluso espacio de almacenamiento.
Imagen destacada por: canjoena / stock.adobe.com