Back to Blog

Preocupaciones de Seguridad y Privacidad de los Servicios de Transacciones Privadas en Binance Smart Chain

September 20, 2022
5 min read

Antecedentes del servicio de transacciones privadas

El servicio de transacciones privadas tiene como objetivo proteger las transacciones de los usuarios sin transmitirlas en la cadena. Este servicio puede ayudar a construir un ecosistema saludable al proteger a los usuarios de los ataques de tipo sandwich. Por ejemplo, un atacante no puede escuchar el pool de transacciones pendientes para adelantarse a otras transacciones. Además, el servicio de transacciones privadas puede mitigar la guerra de tarifas de gas entre los bots MEV. Esto se debe a que los bots MEV pueden aprovechar dicho servicio en lugar de competir en el pool de transacciones pendientes, lo que elevaría el precio del gas, dificultando que las transacciones normales sean procesadas.

Flashbots es un conocido proveedor de servicios privados en Ethereum y cuenta con excelente documentación sobre cómo funciona el sistema. También proporciona APIs claras para los datos de transacciones privadas. BNB48 ha proporcionado un servicio similar (RPC mejorado) en Binance Smart Chain (BSC).

El servicio de transacciones privadas ha sido abusado por atacantes

Sin embargo, el servicio de transacciones privadas puede ser abusado por atacantes para que la transacción del ataque sea procesada en la cadena (sin ser detectada) de forma rápida.

Recientemente, hemos visto una transacción interesante en BSC. El atacante abusó del servicio de transacciones privadas de BNB48 para ocultar su transacción de ataque (la ganancia del ataque es de aproximadamente $150K USD). A partir de la siguiente captura de pantalla, podemos observar que esta transacción fue procesada por el validador BNB48 con un precio de gas de 15Gwei.

Desafortunadamente, no encontramos un servicio público que permita consultar las transacciones que han sido procesadas por el servicio de transacciones privadas de BNB48. Sin embargo, sospechamos fuertemente que este es el caso debido a las siguientes dos razones.

  • Según la documentación de BNB48, para usar el RPC mejorado, el remitente de la transacción debe establecer el precio del gas en 15Gwei. Por supuesto, todavía existe una pequeña posibilidad de que el atacante no haya utilizado el servicio de transacciones privadas de BNB48, sino que casualmente haya usado un endpoint RPC normal para la transacción y establecido el precio del gas en 15Gwei.
  • Además, el contrato del atacante tiene un código que limita que la transacción de ataque solo pueda ejecutarse en el validador BNB48 (véase la siguiente figura).

A partir del precio del gas y la lógica del código, sospechamos fuertemente que esta transacción abusó del servicio de transacciones privadas de BNB48.

La dirección IP del atacante ha sido revelada

De manera interesante, la víctima afirmó haber identificado exitosamente las direcciones IP y el momento de la transacción del ataque. Luego, la víctima envió un mensaje en la cadena para pedirle al atacante que devolviera los fondos.

El atacante devolvió los fondos en una serie de transacciones [ 1 | 2 | 3 | 4 | 5 | 6].

Esto plantea la pregunta, es decir, si la transacción de ataque abusó del servicio de transacciones privadas de BNB48 (enviando transacciones al endpoint RPC de BNB48), ¿cómo pudieron identificarse y filtrarse las direcciones IP del atacante? Basándonos en el resultado de que los fondos fueron devueltos, la dirección IP y la geolocalización en el mensaje deberían ser reales.

Preocupaciones de seguridad/privacidad del servicio de transacciones privadas

Consideramos que el servicio de transacciones privadas es una entidad crítica en el ecosistema, ya que protege las transacciones de ser transmitidas y de sufrir ataques de tipo sandwich. Sin embargo, también plantea otras preocupaciones de seguridad y privacidad.

  • Cómo evitar que el servicio de transacciones privadas sea abusado por atacantes es una pregunta abierta. Si se necesita un servicio de filtrado en el servicio de transacciones privadas es (todavía) debatible en la comunidad. Actualmente estamos desarrollando un sistema que puede ayudar al proveedor del servicio de transacciones privadas a monitorear el servicio de ataques (la concienciación sobre el ataque es valiosa).
  • ¿Cómo proteger la privacidad de los usuarios que utilizan el servicio de transacciones privadas? Por ejemplo, el endpoint que acepta las transacciones privadas puede registrar la información del remitente, como la dirección IP y el momento. Si esta información está debidamente protegida es desconocido.

Acerca de BlockSec

BlockSec es una empresa pionera en seguridad blockchain establecida en 2021 por un grupo de expertos en seguridad de reconocimiento mundial. La empresa está comprometida con mejorar la seguridad y la usabilidad del emergente mundo Web3 con el fin de facilitar su adopción masiva. Con este objetivo, BlockSec ofrece servicios de auditoría de seguridad para contratos inteligentes y cadenas EVM, la plataforma Phalcon para el desarrollo de seguridad y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el seguimiento e investigación de fondos, y la extensión MetaDock para que los desarrolladores de Web3 naveguen eficientemente en el mundo cripto.

Hasta la fecha, la empresa ha servido a más de 300 distinguidos clientes como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares estadounidenses en dos rondas de financiación de inversores prominentes, entre ellos Matrix Partners, Vitalbridge Capital y Fenbushi Capital.

Sitio web oficial: https://blocksec.com/

Cuenta oficial de Twitter: https://twitter.com/BlockSecTeam