Logotipo de Zephyrnet

Informe de incidentes de seguridad | Libro mayor

Fecha:

Fecha del informe: 2023-12-20

Fecha del incidente: 2023-12-14

Tipo de incidente detectado: Acceso no autorizado y código malicioso

Resumen Ejecutivo

Ledger detectó un exploit usando Ledger Connect Kit el jueves 14 de diciembre de 2023. Este exploit inyectó código malicioso dentro de las DApps que usaban Ledger Connect Kit, engañando a los usuarios de EVM DApp para que firmaran transacciones que agotan sus billeteras. El exploit se detectó rápidamente y poco después se implementó una solución. Mientras tanto, un pequeño volumen de usuarios cayó en el ataque y las transacciones firmadas vaciaron sus billeteras.

Cronograma 

Las horas de la línea de tiempo se detallan utilizando la zona horaria Hora de Europa Central (CET):

2023-12-14: Mañana: Un ex empleado de Ledger fue víctima de un sofisticado ataque de phishing que obtuvo acceso a su cuenta NPMJS, evitando 2FA, utilizando el token de sesión del individuo.

2023-12-14 – 09:49 a. m. / 10:44 a. m. / 11:37 a. m.: El atacante publicó en NPMJS (un administrador de paquetes para código Javascript compartido entre aplicaciones), una versión maliciosa del Ledger Connect Kit (que afecta a las versiones 1.1.5, 1.1.6 y 1.1.7). El código malicioso utilizó un proyecto falso de WalletConnect para redirigir activos a las billeteras de los piratas informáticos.

2023-12-14: 1.45:XNUMX: Ledger se enteró del ataque en curso gracias a la rápida reacción de diferentes actores en el ecosistema, incluido Blockaid, quien se acercó al equipo de Ledger y compartió actualizaciones sobre X.

2023-12-14: 2.18:XNUMX: Los equipos de tecnología y seguridad de Ledger fueron alertados sobre el ataque y los equipos de Ledger implementaron una versión genuina de la solución Ledger Connect Kit dentro de los 40 minutos posteriores a que Ledger se diera cuenta. Debido a la naturaleza de la CDN (Content Delivery Network) y a los mecanismos de almacenamiento en caché de Internet, el archivo malicioso permaneció accesible durante un poco más de tiempo. Desde el compromiso del NPMJS hasta la resolución completa han pasado aproximadamente 5 horas. Esta disponibilidad extendida del código malicioso fue el resultado del tiempo que le tomó a la CDN propagar y actualizar sus cachés globalmente con la última versión genuina del archivo. A pesar de la presencia del archivo durante cinco horas, según nuestra investigación estimamos que el período durante el cual se drenaron activamente los activos de los usuarios se limitó a menos de dos horas en total.

Ledger se coordinó rápidamente con nuestro socio WalletConnect, quien deshabilitó la instancia no autorizada de WalletConnect utilizada para drenar los activos de los usuarios.

2023-12-14: 2.55 Tras nuestra coordinación, Tether congeló el USDT de los atacantes (cf. TX).

Análisis de causa raíz, hallazgos y medidas de prevención
Contexto

Libro mayor Kit de conexión es una biblioteca de código abierto de Java Script que permite a los desarrolladores conectar sus DApps al hardware de Ledger. Se puede integrar mediante el Cargador-kit-conectar Componente que permite que una DApp cargue el Connect-Kit en tiempo de ejecución desde una CDN. Esto permite a los desarrolladores de DApp tener siempre la versión más reciente de la Kit de conexión sin la necesidad de actualizar manualmente las versiones de los paquetes y lanzar nuevas compilaciones. La CDN utilizada por Ledger para la distribución es NPMJS. La mayoría de las DApps han integrado el Kit de conexión utilizando el cargador Connect-Kit-loader mencionado. 

En el exploit Ledger Connect Kit, el atacante no tuvo en ningún momento acceso a ninguna infraestructura de Ledger, al repositorio de código de Ledger ni a las propias DApps. El atacante pudo insertar un paquete de código malicioso dentro de la CDN en lugar del propio Connect-Kit. Este código malicioso de Connect-Kit fue cargado dinámicamente por DApps que ya integran el cargador Connect-Kit. 

El exploit Ledger Connect Kit resalta los riesgos que Ledger y la industria enfrentan colectivamente para proteger a los usuarios, y también es un recordatorio de que colectivamente debemos continuar elevando el nivel de seguridad en torno a las DApps donde los usuarios participarán en la firma basada en navegador. Esta vez fue el servicio de Ledger el que fue explotado, pero en el futuro esto podría pasarle a otro servicio o biblioteca.

Causa principal

Para poder enviar el paquete de código malicioso a NPMJS, el atacante suplantó a un ex empleado para aprovechar el acceso del individuo a NPMJS. El acceso del ex empleado a los sistemas de Ledger (incluidos Github, servicios basados ​​en SSO, todas las herramientas internas de Ledger y herramientas externas) se revocó adecuadamente, pero desafortunadamente el acceso de los ex empleados a NPMJS no se revocó adecuadamente. 

Podemos confirmar que se trata de un desafortunado incidente aislado. Los accesos a la infraestructura de Ledger por parte de los empleados de Ledger se revocan automáticamente durante la baja del empleado; sin embargo, debido a cómo operan actualmente globalmente los servicios y herramientas de tecnología actuales, no podemos revocar automáticamente el acceso a ciertas herramientas externas (incluido NPMJS), y estas deben manejarse manualmente con un Lista de verificación de baja de empleados para cada individuo. Ledger cuenta con un procedimiento de baja existente y actualizado periódicamente en el que eliminamos a los empleados que salen de todas las herramientas externas. En este caso individual, el acceso no fue revocado manualmente en el NPMJS, lo cual lamentamos y estamos auditando con un socio externo. 

Este fue un ataque sofisticado realizado por el atacante. A pesar de haber aplicado la autenticación de dos factores (2FA) en la cuenta objetivo de NPMJS, lo que normalmente disuadiría muchos intentos, el atacante eludió esta medida de seguridad explotando una clave API asociada con la cuenta del ex empleado. 

Este ataque específico permitió al atacante cargar una nueva versión maliciosa del Ledger Connect Kit que contenía lo que se conoce como malware Angel Drainer. Angel Drainer es un malware como servicio diseñado específicamente para crear transacciones maliciosas que agotan las billeteras cuando se firman. Es una infraestructura completa especializada en cadenas EVM que implementa contratos inteligentes bajo demanda y crea transacciones personalizadas para maximizar el daño.

Desafortunadamente, NPMJS.com no permite la autorización múltiple ni la verificación de firmas para fines automáticos. publicación. Estamos trabajando para agregar mecanismos ad hoc que apliquen controles adicionales en la etapa de implementación.

Hallazgos

Este fue un ataque bien preparado ejecutado por atacantes experimentados. La técnica de phishing implementada no se centró en las credenciales, que es lo que vemos en la mayoría de los ataques Front-End que afectan al ecosistema, sino que el atacante trabajó directamente sobre el token de sesión. 

El malware utilizado fue Angel Drainer, y el equipo de seguridad de Ledger ha observado en los últimos tres meses un aumento de actividades delictivas utilizando este malware (consulte este artículo publicado). Informe de bloqueo). También podemos ver en la cadena que los fondos robados se dividen: 85% para el explotador y 15% para Angel Drainer, lo que podría verse como un malware como servicio.

Este Angel Drainer engaña a los usuarios para que firmen diferentes tipos de transacciones según el tipo de activo al que se dirige actualmente. Para tokens ERC20 y NFT, solicita a los usuarios que firmen aprobación y permiso mensajes. Para los tokens nativos, el drenaje le pide al usuario que firme una transacción de "reclamo" falsa donde el reclamo El método simplemente barre los fondos, o simples transferencias de tokens que luego se pueden barrer implementando un contrato inteligente en la dirección correspondiente.

Es por eso que continuamos fomentando Clear Signing como industria, para que los usuarios puedan verificar lo que ven en una pantalla confiable en su dispositivo de hardware Ledger. 

Acciones correctivas

Los equipos de tecnología y seguridad de Ledger, incluido el equipo ejecutivo de Ledger, actualmente están revisando y auditando todos nuestros controles de acceso a las herramientas y sistemas internos y externos de Ledger que utilizamos. 

Ledger reforzará sus políticas en lo que respecta a la revisión de código, implementación, distribución y controles de acceso, incluida la adición de todas las herramientas externas a nuestros controles de mantenimiento y salida. Continuaremos generalizando la firma de código cuando sea relevante. Además, estamos realizando auditorías internas periódicas para asegurarnos de que esto se implemente correctamente. 

Ledger ya organiza sesiones de formación en seguridad, incluida formación sobre phishing. El programa de formación en seguridad interna también se reforzará a principios de 2024 para todos los empleados de sus respectivos departamentos. Ledger ya organiza evaluaciones periódicas de seguridad de terceros y seguirá priorizando estas evaluaciones.  

A principios de 2024, se llevará a cabo una auditoría específica de terceros centrada en el control de acceso, la promoción y distribución de códigos. 

Además, reforzaremos nuestros sistemas de alerta y monitorización de infraestructuras para poder detectar y reaccionar aún más rápido ante futuros incidentes.

Finalmente, redoblaremos nuestros esfuerzos para prevenir la firma ciega, eliminándola como una opción para que los usuarios de Ledger garanticen las máximas prácticas de seguridad y educaremos a los usuarios sobre el impacto potencial de firmar transacciones sin una visualización segura o sin comprender lo que están firmando al no usar Firma clara.

Agradecemos nuevamente a nuestros socios en el ecosistema por trabajar rápidamente con los equipos de Ledger para identificar y resolver el exploit.

punto_img

Información más reciente

punto_img