Ataques a la cadena de suministro, ¿Qué son y qué hacer para mitigarlos?

La explotación de una vulnerabilidad que comprometió el código fuente del sistema Orión de Solar Winds, un software de uso extendido por diferentes actores de gobierno y de la industria mundial para la administración y monitorización de redes; puso en primer plano un tipo de ataque sigiloso que ha venido cobrando fuerza: Los ataques a la cadena de suministro (Supply Chain Attack).

El principal problema en la violación a la cadena de suministro de software radica en que, del 85% al 97% del código empleado actualmente en la industria del desarrollo de software proviene de la reutilización de frameworks de código de fuente abierta, repositorios de software y API de terceros, lo que genera potenciales vulnerabilidades en el ciclo de desarrollo de un producto de software

Un ataque a la cadena de suministro (Supply Chain Attack) de software ocurre entonces cuando los piratas informáticos manipulan el código en componentes de software de terceros para comprometer las aplicaciones ‘posteriores’ que los utilizan; esto significa que los atacantes logran comprometer la integridad del código fuente de un software de uso extendido en la industria, para insertar puertas traseras “backdoor” o código malicioso “malware” que les permiten alcanzar a las corporaciones y  usuarios  que adquieren dichas tecnologías a través del proveedor comprometido. 

De allí que se denominen ataques a la cadena de suministro: no van directo contra la organización finalmente comprometida, sino que se llega a ella a través de los proveedores de software como vectores de ataque.

Los ataques a la cadena de suministro de software se han vuelto cada vez más recurrentes en los últimos años, siendo considerados el renacer de los ataques a gran escala.

Por lo anterior, en este artículo se analiza el caso  SolarWinds, un ataque a la cadena de suministro que causó estragos informáticos en una multitud de industrias y gobiernos y que provocó fugas de información a grandes niveles.

El caso SolarWinds

En el ataque a la cadena de suministro de software en la empresa SolarWinds ocurrido en 2020, los atacantes suplantaron la identidad y los mecanismos de autenticación de cuentas de acceso y lograron insertar funciones en el código fuente de un archivo de biblioteca dinámica particular (.dll) en el software de la plataforma de administración y monitoreo de redes conocido como Orión. Posteriormente, SolarWinds firmó y distribuyó el .dll como parte de sus procesos de actualización, infectando con el malware a más de 18.000 clientes y 40 entidades públicas de diferentes sectores entre los que se encuentran entidades gubernamentales, empresas de tecnologías, empresas de seguros, entidades financieras, empresas de retail y diferentes organizaciones ubicadas en todos los continentes

Los atacantes lograron ejecutar código de forma remota con privilegios de administrador e insertar el malware SUNSPOT en el entorno de desarrollo de la plataforma Orión, lo que les permitió sembrar una puerta trasera en el código de esta importante herramienta de monitorización y administración de redes. Con el control del código fuente del software, los atacantes le insertaron el backdoor SUNBURST antes de su compilación, creando una versión “dropper” que sería distribuida como una actualización del software entre todos los clientes. SolarWinds firmó las actualizaciones y las distribuyó, y los clientes no tenían motivos para sospechar que la actualización estaba infectada, comprometiendo su infraestructura de servicios y aplicaciones.

De acuerdo con Taxonomy of The Attack on SolarWinds and Its Supply Chain El ataque se ejecutó en cinco etapas alineadas con el Cyber Kill Chain

El ataque comenzó con una explotación de una vulnerabilidad del servicio de autenticación. Esto permitió a los atacantes acceder a la empresa víctima y pasar a examinar el correo electrónico, luego desarrollaron un perfil de los programadores a los que debían apuntar con una campaña de spear phishing que les permitiera sembrar un backdoor en las víctimas.

Los atacantes provocan la ejecución de una shell reversa para obtener una comunicación con la víctima.

Se logra manipular el equipo de un desarrollador del sistema para hacer un despliegue malicioso e insertar una puerta trasera

Se ejecutan acciones en la víctima para iniciar procesos maliciosos, realizar lectura sigilosa de correos electrónicos y deshabilitar servicios de doble factor de autenticación.

Obtener información privilegiada de las víctimas para abusar de las relaciones de confianza del proveedor de software con sus clientes y así penetrar en la infraestructura del usuario final a través de una actualización supuestamente legítima proveniente de los repositorios y controladores de versiones oficiales de la organización, pero que en realidad contiene malware en forma de una puerta trasera “Backdoor” y que abre las puertas del cliente hacia el atacante.

Modus operandi de los ataques a la cadena de suministro

Según el informe de Cybersecurity and Infrastructure Security Agency (2021), el ciclo de vida de la cadena de suministro de las TIC tiene seis fases. En cada fase del ciclo de vida, el software corre el riesgo de que se introduzcan vulnerabilidades malintencionadas o involuntarias.

Por ejemplo, en la fase de diseño se incorporan funciones ocultas en el código fuente para realizar acciones en el background sin el consentimiento del usuario; en la fase de desarrollo y producción se pueden producir infiltraciones persistentes para lograr intrusiones a los servicios de actualización; en la fase de distribución se logra infiltrar malware preinstalado en dispositivos antes de ser enviados al cliente; en la fase de adquisición y despliegue se pueden introducir herramientas de “spyware” en el software de determinados proveedores; en la fase de mantenimiento se introducen puertas traseras a través de los servicios de actualización; y en la fase de disposición final, se pueden recuperar datos de dispositivos desechados que no han tenido un correcto proceso de limpieza y erradicación de datos.

Los ataques a la cadena de suministro, se pueden considerar ataques de Zero Day, ya que al materializarse una infección, no se contará con parches o actualizaciones inmediatas. Entonces, se recomienda explorar modelos seguridad basados en técnicas de detección temprana por medio de algoritmos que utilizan Machine learning o incluso Blockchain, y que permitan analizar las actividades dentro de la aplicación y bloquear acciones no deseadas. Otro elemento importante es que las empresas de desarrollo de soluciones tecnológicas que incorporen software, puedan contar con equipos interdisciplinarios que hagan parte de toda la gestión de cadena de suministro de software y que apliquen las mejores prácticas basadas en agilismo como Devsecops.

¿Qué hacer para mitigar los ataques a la cadena de suministro?

Si bien es retador evitar este tipo de ataques debido a que el software moderno se construye en gran parte a partir de la reutilización de código prefabricado y de software creado por terceros, se propone tener

Deben trabajar conjuntamente en una serie de requerimientos estandarizados para la construcción y la gestión de aplicaciones a partir de iniciativas como la de controlar los ingredientes del software como SBOM (Software Bill of Materials), y además estar alineadas a buenas prácticas con un enfoque de defensa en capas como Zero trust para proteger sus activos.

Que evidencien que se incorporan en sus procesos buenas prácticas de seguridad en el ciclo de vida del desarrollo y administración del software, y donde también se cuente con procedimiento para divulgar de manera oportuna los potenciales riesgos y se pueda trabajar en planes de mitigación.

Esto de manera permanente a lo largo de todo el ciclo de vida del producto para encontrar cualquier vulnerabilidad que pudiera comprometer la infraestructura o el código de los productos de software de la organización.

Tales como NIST SP 800-161 (Supply Chain -Risk Management Practices for Federal Information Systems and Organizations).

Una de las estrategias es implementar inicio de sesiones único (SSO) con MFA MultiFactor Authentication en donde sea seguro administrar el acceso y mantener el control sobre quién puede acceder a las aplicaciones, así como qué dispositivos y ubicaciones se pueden usar. Otra estrategia sería fortalecer los mecanismos de autenticación a través de reglas y políticas basadas en IAM de AWS y/o Azure AD o las que ofrezca el operador de nube que tenga contratado la organización.

Compartir