Saltar a contenido

Malicious Package: com.outsystems.plugins.fileviewer

Paquete malicioso: com.outsystems.plugins.fileviewer

Descripción

Los paquetes maliciosos son componentes de software diseñados intencionalmente o comprometidos para realizar acciones dañinas en un sistema donde se instalan o ejecutan. A diferencia del software legítimo con vulnerabilidades no intencionales, estos paquetes albergan intenciones maliciosas.

Características clave de los paquetes maliciosos:

  • Intención: Diseñados para robar datos, obtener acceso no autorizado, interrumpir operaciones o causar otros daños.
  • Engaño: A menudo se hacen pasar por utilidades útiles, bibliotecas populares (a veces a través de typosquatting, usando nombres muy similares a los paquetes legítimos), o aparecen como paquetes benignos sin mantenimiento de los que un atacante toma el control.
  • Distribución: Comúnmente distribuidos a través de repositorios de software públicos (por ejemplo, npm, PyPI, Maven Central, RubyGems, NuGet), confiando en que los desarrolladores los incluyan involuntariamente en sus proyectos. También pueden inyectarse en paquetes legítimos si un atacante obtiene el control de la cuenta del propietario del paquete o de la infraestructura de compilación.
  • Cargas útiles (Payloads): Pueden incluir varios tipos de malware, como spyware, ransomware, ladrones de credenciales, mineros de criptomonedas, puertas traseras o código que facilita ataques adicionales.

Objetivos comunes:

  • Exfiltración de datos: Robo de información confidencial como credenciales de usuario, claves de API, datos financieros, información de identificación personal (PII) o propiedad intelectual.
  • Compromiso del sistema: Obtención de control no autorizado sobre máquinas de desarrolladores, servidores de compilación o dispositivos de usuarios finales.
  • Abuso de recursos: Uso de sistemas comprometidos para actividades como la minería de criptomonedas o la participación en botnets DDoS.
  • Movimiento lateral: Uso de un punto de apoyo inicial para moverse más profundamente en la red de una organización.
  • Robo financiero: Robo directo de fondos o facilitación de fraude financiero.

Identificar y mitigar la amenaza de los paquetes maliciosos es un aspecto crítico de la seguridad de la cadena de suministro de software (Software Supply Chain) moderna.

Recomendación

Pasos de remediación inmediatos:

  1. Aislar los sistemas afectados:

    • Desconecte de la red cualquier máquina (estaciones de trabajo de desarrolladores, servidores de compilación) donde este paquete se haya compilado, instalado o ejecutado para evitar una mayor propagación o exfiltración de datos.
    • Si se implementa en una aplicación, evalúe el alcance de los dispositivos de usuarios finales afectados si es posible.
  2. Eliminar el paquete malicioso:

    • Identifique todos los proyectos y aplicaciones que incluyen com.outsystems.plugins.fileviewer.
    • Para proyectos de Cordova, verifique package.json, config.xml, e inspeccione assets/www/cordova_plugins.js y los archivos de compilación de la plataforma relacionados (por ejemplo, en platforms/android o platforms/ios).
    • Elimine la dependencia de la configuración de su proyecto (package.json, config.xml, etc.).
    • Vuelva a compilar su aplicación desde un entorno limpio y conocido después de asegurarse de que el paquete ya no esté presente.
    • Limpie a fondo los cachés de compilación y los artefactos.
  3. Rotación de credenciales (Crítico):

    • Desde una computadora separada y confiable, rote TODAS las claves y secretos que estuvieran presentes o accesibles desde los sistemas comprometidos. Esto incluye:
      • Contraseñas (usuario, administrador, cuentas de servicio)
      • Claves y tokens de API
      • Claves SSH
      • Claves de cifrado
      • Credenciales de bases de datos
      • Credenciales de proveedores de la nube
      • Credenciales del sistema de control de versiones
  4. Investigación y limpieza del sistema:

    • Debido a que un atacante puede haber logrado un control total, simplemente eliminar el paquete a menudo es insuficiente.
    • Lleve a cabo una investigación forense exhaustiva en los sistemas afectados para identificar el alcance del compromiso, cualquier mecanismo de persistencia y otras herramientas maliciosas que puedan haberse instalado.
    • Considere volver a crear una imagen de las estaciones de trabajo de los desarrolladores y los servidores de compilación afectados a partir de un estado correcto conocido.
  5. Notificar a las partes afectadas:

    • Si los datos de los clientes o los dispositivos de los usuarios finales pudieran verse afectados, siga su plan de respuesta a incidentes para la notificación.

Medidas preventivas para el futuro:

  1. Análisis de dependencias:

    • Implemente herramientas automatizadas de análisis de composición de software (SCA) en su canalización CI/CD para escanear en busca de vulnerabilidades conocidas y paquetes maliciosos en sus dependencias.
    • Actualice periódicamente las bases de datos de estas herramientas.
  2. Verificar las dependencias:

    • Antes de agregar una nueva dependencia, investigue su reputación, mantenedores, estadísticas de descargas y busque cualquier problema de seguridad reportado.
    • Prefiera paquetes bien mantenidos de fuentes confiables.
  3. Fijar (Pin) dependencias:

    • Use archivos de bloqueo (por ejemplo, package-lock.json, yarn.lock) para fijar las dependencias a versiones específicas y en buen estado conocidas. Esto evita actualizaciones no intencionadas a versiones más nuevas potencialmente maliciosas.
  4. Utilizar paquetes con ámbito (Scoped Packages) y registros privados (si corresponde):

    • Para paquetes internos, use nombres con ámbito y registros privados para reducir el riesgo de ataques de sustitución (aunque este problema específico es un paquete malicioso, no una sustitución).
  5. Principio de mínimo privilegio:

    • Asegúrese de que los entornos de compilación y las estaciones de trabajo de los desarrolladores funcionen con los privilegios mínimos necesarios.
  6. Educación para desarrolladores:

    • Capacite a los desarrolladores sobre los riesgos de los ataques a la cadena de suministro de software y las mejores prácticas para la gestión de dependencias.

Al tomar estas medidas, las organizaciones pueden responder a la amenaza inmediata que representa MAL-2022-2047 y fortalecer sus defensas contra futuros incidentes de paquetes maliciosos.

Enlaces

Estándares

  • OWASP_MASVS_L1:
    • MSTG_CODE_5
    • MSTG_PLATFORM_2
  • OWASP_MASVS_L2:
    • MSTG_CODE_5
    • MSTG_PLATFORM_2
  • PCI_STANDARDS:
    • REQ_2_2
    • REQ_5_1
    • REQ_5_2
    • REQ_6_2
    • REQ_6_3
    • REQ_11_3
  • OWASP_MASVS_v2_1:
    • MASVS_CODE_3
    • MASVS_RESILIENCE_1
  • SOC2_CONTROLS:
    • CC_2_1
    • CC_4_1
    • CC_4_2
    • CC_7_1
    • CC_7_2
    • CC_7_4
    • CC_8_1