Los contratos estaban bien
No había nada mal en los contratos inteligentes de BadgerDAO. Estaban auditados, se comportaron como estaban escritos y nunca fueron explotados. El ataque fue contra el sitio web, usando una clave de API de Cloudflare comprometida para inyectar un script que pedía a los usuarios aprobaciones de tokens hacia una dirección controlada por el atacante.
Desde el lado del usuario, esto era indistinguible del uso normal. Visitas el sitio de siempre, en el dominio correcto, con un certificado válido, y te pide que apruebes un token, que es exactamente lo que te pide cada vez que depositas.
Aprobaciones ilimitadas
La razón de que el compromiso de un front-end se convierta en una pérdida de nueve cifras es el modelo de aprobación de tokens. Aprobar a un gastador por un importe ilimitado es lo que hacen por defecto la mayoría de las interfaces, porque ahorra gas y evita avisos repetidos. También significa que una sola aprobación concedida a la dirección equivocada es una autorización permanente sobre todo tu saldo de ese token, mientras siga vigente.
Las aprobaciones son públicas. Cualquier explorador de bloques muestra qué ha aprobado tu dirección y a favor de quién. Revisarlas periódicamente es una comprobación que cualquiera puede hacer, y es la razón por la que este incidente merece leerse incluso años después.
Dónde se detiene Conisec
No vamos a decirte que revoques nada, y no enlazamos herramientas de revocación. Tras incidentes de este tipo aparecen rápido sitios falsos de «revocar» y «recuperar» que además posicionan bien, y una publicación que envía a sus lectores de forma rutinaria a interfaces de gestión de aprobaciones está entrenando justo el hábito que los atacantes explotan. La lista de aprobaciones es visible en el explorador de bloques en el que ya confías. Empieza por ahí.
Cronología
Solo se añade. Las correcciones se incorporan como su propia entrada fechada; las entradas anteriores nunca se reescriben.
Qué comprobar
BadgerDAO publicó un análisis posterior técnico, enlazado más abajo. Las aprobaciones de tokens son visibles en cadena y pueden inspeccionarse en la vista de aprobaciones de cualquier explorador de bloques para tu propia dirección.
Conisec no aloja ni enlaza herramientas de recuperación, revocación o «comprobación». Tras un incidente público, los atacantes siembran habitualmente ese tipo de enlaces usando los nombres de las publicaciones que cubren la noticia. Usa el canal oficial del propio proyecto afectado, enlazado más arriba, y nada más.
Fuentes
- BadgerDAO, Technical post-mortem (2 Dic 2021)
No es asesoramiento. Esto es un resumen de hechos publicados, no asesoramiento jurídico, fiscal ni de seguridad. Verifícalo con las fuentes primarias enlazadas más arriba.
Última verificación por Conisec Staff.