Cuidado con el paquete Typosquatting Source Chain Assault



Los atacantes están imitando los nombres de los paquetes existentes en los registros públicos con la esperanza de que los usuarios o desarrolladores descarguen accidentalmente estos paquetes maliciosos en lugar de los legítimos.

Cuando se menciona la typosquatting, la mayoría de la gente piensa en typosquatting de dominio, que de acuerdo con la Ley de protección al consumidor contra la ciberocupación (ACPA) de 1999 significa registrar, traficar o usar un nombre de dominio de Net con la mala fe de obtener ganancias de la buena voluntad de una marca comercial perteneciente a otra persona. La ciberocupación de dominios (o URL) era algo común antes de la aprobación de la ACPA, ya que las personas buscaban obtener ganancias registrando dominios asociados con empresas conocidas y marcas comerciales registradas. Después de la aprobación de la ACPA y la creación de otras regulaciones para resolver disputas sobre el command de nombres de dominio, existen políticas y procesos claros para abordar este tipo de typosquatting.

Este artículo se centra en un tipo diferente de typosquatting, llamado typosquatting de paquetes, donde hay menos supervisión y más oportunidades para que los malos actores causen daño. Así es como funciona. El desarrollo y uso de software moderno se basa en el uso de administradores de paquetes que admiten la reutilización de código, incluido el código de los registros donde los desarrolladores cargan sus paquetes de computer software creados para que otros los descarguen de Net y los usen. Typosquatting de paquetes es un tipo de ataque a la cadena de suministro de software en el que el atacante intenta imitar el nombre de un paquete existente en un registro público con la esperanza de que los usuarios o desarrolladores descarguen accidentalmente el paquete malicioso en lugar del legítimo.

Debido a que no existe un organismo central para administrar o validar los paquetes de program, es fácil para los atacantes cargar un paquete malicioso que es muy related al serious, y no hay repercusiones reales si son atrapados. Por ejemplo, un desarrollador puede intentar instalar un editor de imágenes con el nombre de archivo «Going_pictures», mientras que un atacante malintencionado ha subido un paquete titulado «Transferring-pictures». En ese caso, un guión bajo se reemplaza por un guión. Los atacantes también pueden probar leves errores ortográficos o cambiar el nombre (por ejemplo, nmap-python en lugar de python-nmap) con la esperanza de confundir al desarrollador para que elija el paquete malicioso.

Si bien el mistake tipográfico de paquetes es un problema relativamente oscuro en comparación con otras técnicas de ataque, está creciendo a un ritmo alarmante. Solo en 2018, investigación indicada más de 100 paquetes maliciosos tuvieron más de 600 millones de descargas acumuladas. En abril de 2020, Se encontraron más de 700 bibliotecas de typosquatting maliciosas solo en el repositorio de RubyGems. Uno de los eventos de typosquatting de paquetes más conocidos ocurrió en diciembre de 2019, cuando se informó que dos bibliotecas de Python troyanizadas de PyPI (índice de paquetes de Python) en realidad estaban imitando otras bibliotecas más populares y, si se usaban, el código malicioso robaría las claves SSH y GPG de los proyectos de desarrolladores infectados.

Mantente protegido
Una contramedida very simple es que los desarrolladores, al considerar qué paquete agregar, hagan la debida diligencia antes de agregar un paquete: verifique cuidadosamente el nombre del paquete, busque nombres similares y asegúrese de que el paquete «fecha de agregado» y «número de descargas «es lo que esperaban. Esto puede contrarrestar muchos ataques, pero los desarrolladores pueden cometer errores y, a veces, los paquetes maliciosos ya están en uso, por lo que es necesario hacer más. Por el lado de la investigación, una técnica de seguridad en la que se está trabajando para minimizar la amenaza es el uso de algoritmos de detección de cadenas que identifican qué tan cerca están dos palabras entre sí con la esperanza de capturar y marcar errores ortográficos (una técnica común de ortografía en paquetes), mientras que otras son mirando la actividad relativa de confirmación y la popularidad de paquetes con nombres similares. Si bien hay ejemplos de este trabajo realizado en la naturaleza (como la comunidad PyPI para Python), no todos los registros de paquetes han priorizado la prevención de ataques de typosquatting.

Una forma de ayudar a mitigar los ataques de typosquatting de paquetes es mediante el uso de su propio registro interno que solo hace referencia a los paquetes que se ha determinado que son los esperados, como Sonatype Nexus, JFrog Artifactory y Google Artifact Registry. Con productos como estos, no es demasiado difícil crear su propio registro de software package internamente. De esa manera, si comete un mistake tipográfico, no tiene que preocuparse por lo que alguien haya subido para aprovechar su mistake. Sin embargo, no se garantiza que incluso los registros privados mitiguen algunos ataques, como hemos visto con esto. publicación reciente por Alex Birsan sobre el secuestro de dependencias.

Otra solución potencial para luchar contra el typosquatting de paquetes sería que los registros y administradores de paquetes adicionales admitieran el espacio de nombres, una técnica empleada para evitar colisiones con otros objetos o variables en el espacio de nombres world-wide. Los editores confiables y los mecanismos de verificación de identidad también ayudarían a mitigar los ataques al vincular los repositorios de código fuente y los registros de paquetes y hacer que sea mucho más difícil para los atacantes actuar, pero existen numerosos problemas con la implementación de este tipo de sistema que no se limitan a la administración de paquetes. También podría ayudar tener una mayor participación de las fuerzas del orden (como con la ACPA) cuando se detecte el typosquatting typosquatting es a menudo una violación de marca registrada (incluso si la marca no está registrada), y crear un paquete para acceder intencionalmente a una computadora sin autorización es ilegal en muchos países.

Sabemos que la lista de todo lo que debe preocupar a un desarrollador es abrumadora, el paquete de errores tipográficos está incluido y cualquier distracción que impida el progreso no es bienvenida. Los desarrolladores quieren codificar y construir aplicaciones, no pasar todo el tiempo vadeando entre dependencias en busca de vulnerabilidades y puertas traseras. Dado que la biblioteca promedio de Python o JavaScript tiene más de 100 dependencias, ¡eso es un trabajo de tiempo completo! Es por eso que se necesitan salvaguardas automatizadas. Afortunadamente, existe un gran interés en la industria para ayudar a mitigar los ataques de typosquatting de paquetes. Es un problema de toda la industria que afecta a todos y, por lo tanto, la discusión y la colaboración deben ser parte de la solución. Las discusiones están comenzando a suceder ahora en el Grupo de Trabajo de Aseguramiento de Proyectos Críticos reuniones en el OpenSSF.

Kim Lewandowski (ella) es gerente de productos del equipo de seguridad de código abierto de Google. Representa a Google en la Junta de Gobierno de la Open Supply Protection Basis (OpenSSF.org). En Google, ha enviado una serie de productos en la nube y ahora se está enfocando en mejorar … Ver biografía completa

Lectura recomendada:

Más información





Enlace a la noticia original