Confía, pero verifica (la ortografía): una letra de más en el nombre del paquete dejó a los desarrolladores sin sus ahorros.

Confía, pero verifica (la ortografía): una letra de más en el nombre del paquete dejó a los desarrolladores sin sus ahorros.

Detectar la trampa a simple vista resultó muy difícil, incluso durante una inspección manual.

image

En el ecosistema .NET se detectó una amenaza oculta relacionada con la suplantación de una biblioteca de trazado popular. En el repositorio NuGet se distribuyó durante más de cinco años un paquete malicioso que se hacía pasar por un componente legítimo y que estaba orientado al robo de datos de monederos de criptomonedas.

Se trata del paquete Tracer.Fody.NLog, que imita a la conocida biblioteca Tracer.Fody y a su autor. Fue identificado por el equipo Socket Threat Research Team. En la página de NuGet parecía una extensión habitual para integrar el trazado con NLog, pero en su interior contenía código para sustraer datos de monederos Stratis. La biblioteca incorporada escaneaba el directorio estándar de Stratis, localizaba archivos .wallet.json, extraía su contenido y, junto con la contraseña, los enviaba al servidor del atacante.

Para camuflarse se utilizaron varias técnicas simultáneamente. El nombre del paquete difería del original mínimamente, y la cuenta del publicador csnemess difería del nombre real del mantenedor csnemes en solo una letra. Además, en el código se emplearon glifos homogéneos — caracteres cirílicos visualmente indistinguibles de los latinos. Por ello, los nombres de tipos y atributos parecían correctos, pero a nivel de Unicode eran distintos, lo que dificultaba la verificación manual.

Tras añadir el paquete malicioso al proyecto se integraba discretamente en un método auxiliar universal de comprobación de argumentos. En cuanto en la aplicación aparecía un objeto con la propiedad WalletPassword, se iniciaba un proceso en segundo plano que, sin notificaciones ni registro, enviaba los datos del monedero y la contraseña a un servidor remoto. Todos los errores se suprimían, por lo que el funcionamiento de la aplicación aparentemente no se veía afectado.

Tracer.Fody.NLog se publicó en 2020 y desde entonces acumuló alrededor de dos mil descargas. Según los autores del informe, debido a su larga presencia y su convincente camuflaje podría haber llegado a herramientas privadas, estaciones de trabajo de desarrolladores y procesos de integración continua relacionados con proyectos basados en Stratis. En el momento de su detección, el paquete todavía permanecía disponible en NuGet, hecho que se comunicó al equipo de seguridad de la plataforma.

Este caso no fue aislado. En 2023 la misma infraestructura se utilizó para difundir el paquete Cleary.AsyncExtensions, que se hacía pasar por trabajos de Steven Cleary y capturaba frases mnemónicas y contraseñas, enviándolas a la misma dirección IP. Esto indica una campaña sistemática orientada a la cadena de suministro de .NET y al uso de bibliotecas de servicio confiables.

Los especialistas señalan que representan un peligro particular las herramientas de trazado, registro y reescritura de código en tiempo de compilación, ya que se usan ampliamente y tienen acceso a datos sensibles. El caso de Tracer.Fody.NLog demuestra que incluso dependencias publicadas hace tiempo y aparentemente inofensivas pueden ser fuente de amenaza durante años.

Tu privacidad está muriendo lentamente, pero nosotros podemos salvarla

¡Únete a nosotros!