Luchando contra los bots sweepers

¿Han desaparecido criptomonedas u otra clase de activos de tu cuenta sin tu permiso o conocimiento? ¿Has notado que cada vez que transfieres algo a tu cuenta, se reenvía automáticamente a otro lugar?

Si es así, podrías estar lidiando con un “sweeper”. Este artículo te explicará qué son los “sweepers”, cómo ocurren y te dará orientación sobre cómo manejar tener uno vinculado a tu cuenta.

¿Qué es un "sweeper"?

También conocido como bot “sweeper”, un “sweeper” es un fragmento de código automatizado (también llamado script) que puede asignarse a una dirección de blockchain para realizar acciones relacionadas con esa cuenta automáticamente, como barrer los activos depositados en la cuenta hacia otra dirección.

Como todos los programas informáticos, si un script es malicioso o no depende de quién lo programó, qué está diseñado para hacer y dónde se despliega. Después de todo, poder mover activos programáticamente de una dirección a otra podría ser una funcionalidad muy conveniente. Sin embargo, los bots “sweeper” a menudo se despliegan con fines maliciosos.

La mayoría de las veces, un usuario revela su Frase de Recuperación Secreta; una persona con fines maliciosos usa ese acceso para desplegar un script en esta cuenta, enviando automáticamente todos los recursos valiosos de la cartera a otro lugar.

¿Cómo funciona un "sweeper"?

Para entender cómo funcionan los “sweepers” y otros bots que actúan en las redes blockchain públicas, es necesario un poco de comprensión técnica de cómo funcionan estas redes. En resumen: una red blockchain pública está compuesta por cualquier número de nodos, cada uno de los cuales se comunica con el resto de los nodos de la red, manteniendo continuamente un consenso sobre el estado de un libro mayor común. Ese libro mayor rastrea cualquier número de diferentes activos, dependiendo de cómo fue diseñada la blockchain.

Los usuarios en la red envían transacciones desde sus direcciones a otras direcciones. Estas transacciones se transmiten al nodo(s) más cercano, que luego reenvía la transacción propuesta al resto de la red. La transacción del usuario permanece pendiente por un tiempo, junto con otras transacciones recientes, en lo que se conoce como el pool de transacciones (txpool) o pool de memoria (mempool). Mientras tanto, los nodos trabajan en verificar que la dirección que solicita la transferencia, de hecho, tenga los fondos disponibles para la transferencia, y alcanzan un consenso con el resto de la red de que la transacción es válida. En este punto, un grupo de transacciones validadas se agrupa y se cifra, y se propone a la red como un bloque de transacciones; cuando se acepta, se incluye en la cadena.

Los bots “sweeper”, la mayoría de las veces, están escaneando ese pool de transacciones en busca de transferencias de tokens a la dirección comprometida; tan pronto como un bot ve una transferencia entrante de valor o tokens que serían de interés, inicia una segunda transacción, transfiriendo esos activos a otra dirección de un tercero.

Dado que todo esto se automatiza a través del código y las acciones se toman casi simultáneamente con la transferencia de fondos a la cuenta, podría suceder más rápido que el tiempo que tarda en actualizarse el explorador de bloques. Definitivamente no podrás transferir manualmente activos fuera de tu cuenta más rápido que un bot.

Considera algunos de estos detalles observados sobre el comportamiento de los “sweepers”:

  • Un “sweeper” podría favorecer el activo que tiene el mayor valor en USD, incluso si eso significa gastar más en tarifas de transacción para barrerlo.

  • El “sweeper” puede usar todo el ETH disponible para maximizar el valor barrido de la cuenta, mientras también tiene una alta probabilidad de ser la transacción “ganadora”, en casos donde hay una batalla entre dos partes para remover activos de una cuenta.

  • Incluso si no hay ETH en la cuenta, un atacante puede financiar temporalmente una cuenta para cubrir las tarifas de gas para extraer otros activos deseables de la cuenta (NFTs, tokens de Pool de Liquidez, etc.)

  • Si el valor en USD de los activos en la cuenta está por debajo de cierto nivel, el bot puede no barrer los activos, lo que significa que podrías no darte cuenta de que tienes un “sweeper” en tu cuenta.

Llevando un bot a una pelea de bots

En este contexto, luchar contra un oponente automatizado que toma tu ETH antes de que puedas usarlo, las cosas pueden parecer bastante desesperadas. Aquí es donde entra Flashbots, quienes han desarrollado un proyecto llamado Flashbots/searcher-sponsored-tx. Esto te permite, esencialmente, pagar por la transacción en la dirección comprometida desde otra cuenta. O, como ellos lo dicen: “Esto se logra mediante la presentación de un paquete de transacción Flashbots, con la primera transacción de “patrocinador” pagando a la cartera de “ejecutor” en ETH, seguido de una serie de transacciones de ejecutor que gastan este ETH recién recibido en tarifas de gas”.

Esta estrategia requiere dos cuentas: la cuenta comprometida (el ejecutor) y otra para pagar la transacción (el patrocinador). Tener éxito usando Flashbots requerirá un conocimiento técnico significativo e investigación. Las siguientes instrucciones se proporcionan solo como una guía general.

  • Asegúrate de que la cuenta comprometida no tenga ETH; recomendamos encarecidamente usar un bot quemador primero.
  • Generalmente aconsejamos ejecutar este bot quemador en más de una máquina, usando un punto final diferente en cada una. Por ejemplo, ejecuta un quemador localmente usando Infura, y un quemador en un servidor remoto con otro proveedor como Quiknode. Esto es para que tengas un plan de redundancia en caso de que tengamos alta latencia de red o problemas con nodos (límites de tarifa, problemas de sincronización).
  • El código en Flashbots/searcher-sponsored-tx necesitará ser alterado para tus necesidades específicas, pero el motor está ahí para que rescates tus tokens de una dirección comprometida. El motor de Flashbots es lo suficientemente flexible como para soportar una sola llamada transfer(), o unstake() y transfer().

Usando un contrato inteligente autodestructivo

Otro método para meter ETH en la cuenta sin que se transmita públicamente en el pool de transacciones es enviarlo a través de una transacción interna, usando un contrato inteligente desplegado por una nueva dirección limpia y segura.

 
				
					pragma solidity >=0.7.0 <0.9.0;
contract MoveETH {
    constructor(address sendToAddress) payable {
        address payable addr = payable(address(sendToAddress));
        selfdestruct(addr);
    }
}

				
			

Al desplegar este contrato, podemos enviar ETH y la cadena de dirección comprometida en el argumento del constructor. Este contrato funciona creando el contrato y autodestruyéndose en la misma transacción. El uso de selfdestruct() significa que limpiamos el estado de la blockchain (ya que es un contrato de un solo uso) y reenviamos el ETH a la dirección comprometida en 1 transacción.

Ejemplo:

https://goerli.etherscan.io/tx/0x82ccb222eae55aaea73dd0efee1ea6ed7320f880889f280d4a343b8823f86692

Aunque efectivo, este método usa una cantidad notablemente mayor de gas (alrededor de 70,000), ya que es mucho más complejo que una simple transferencia de una cuenta a otra (normalmente 22,000).

Desde aquí, transmitiríamos transacciones prefirmadas asegurándonos de estar usando todo el ETH en la cuenta para que un “sweeper” no pueda adelantarse a nosotros, o al menos hacer que sea poco probable que se adelante, ya que un “sweeper” necesitaría enviar más ETH a la cuenta para pagar un precio de gas más alto.

Recuerda, la mejor manera de vencer a un “sweeper” es… no tener que hacerlo en primer lugar. Sigue nuestras recomendaciones aquí y mantente seguro.

Empezar de cero

Después de enfrentarte a la angustiosa experiencia de lidiar con un “sweeper”, podrías estar considerando qué pasos seguir para asegurar tus activos en el futuro. Una estrategia efectiva y a menudo recomendada es “Empezar de cero”, es decir, crear una nueva wallet. Aquí te explicamos por qué esta podría ser tu mejor opción y los beneficios que conlleva.

Seguridad renovada

Al crear una nueva wallet, tienes la oportunidad de establecer medidas de seguridad desde el principio, asegurándote de que todos los protocolos recomendados se sigan al pie de la letra. Esto incluye la creación de una nueva Frase de Recuperación Secreta que no haya sido comprometida de ninguna manera.

Limpieza de historial

Comenzar con una nueva wallet significa que no hay historial de transacciones que puedan ser rastreadas por actores maliciosos. Esto te brinda una pizarra limpia y reduce la posibilidad de ser objetivo de futuros ataques basados en el historial de tu wallet anterior.

Organización y gestión

Aprovechar la creación de una nueva wallet te permite organizar y gestionar tus activos de manera más eficiente. Es el momento perfecto para revisar qué activos posees, considerar su distribución y tomar decisiones informadas sobre cómo deseas administrarlos.

Mejores prácticas de seguridad

Este nuevo comienzo es una excelente oportunidad para educarte sobre las mejores prácticas de seguridad en el manejo de criptomonedas. Aprender sobre el uso de wallets frías (cold wallets), la importancia de nunca compartir tu Frase de Recuperación Secreta, cómo detectar estafas comunes y la implementación de medidas de seguridad adicionales como la autenticación de dos factores (2FA) son pasos críticos para proteger tus inversiones.

Cómo empezar de cero

  1. Elige una wallet confiable: Investiga y selecciona una wallet que ofrezca un buen equilibrio entre seguridad y facilidad de uso. Considera las wallets frías para almacenar grandes cantidades de criptomonedas.

  2. Genera una nueva Frase de Recuperación Secreta: Al configurar tu nueva wallet, se te proporcionará una nueva frase de recuperación. Guárdala en un lugar seguro y asegúrate de que nadie más tenga acceso a ella.

  3. Transfiere tus activos de forma segura: Antes de mover tus activos a la nueva wallet, verifica y asegura que la wallet esté libre de vulnerabilidades. Realiza pequeñas transferencias de prueba antes de mover cantidades significativas.

  4. Mantén tus prácticas de seguridad actualizadas: Mantente informado sobre las nuevas amenazas y las mejores prácticas de seguridad en el espacio de las criptomonedas. La educación continua es tu mejor defensa contra los actores maliciosos.

Empezar de cero te brinda la oportunidad de corregir errores pasados y fortalecer tu seguridad, asegurando que tus activos estén protegidos. Mientras que enfrentarse a un “sweeper” puede ser desalentador, tomar medidas proactivas hacia una gestión más segura de tus criptomonedas es un paso positivo hacia la recuperación y la seguridad a largo plazo.

Este articulo es, junto mi recomendación personal, una traducción adaptada al Español del artículo original de MetaMask que puedes ver en inglés pulsando aquí.

Comparte esta publicación:

Leave a Reply

Your email address will not be published. Required fields are marked *

Posts Relacionados

Mantente al día

Déjanos tu correo para avisarte de las últimas noticias y novedades de ApeBond en Español.