Ir al contenido

Webinar: Regístrese para nuestro próximo seminario web

Regístrate Ahora

Prevenir ataques a la cadena de suministro utilizando Build Verifier de Encryption Consulting

Prevenir ataques a la cadena de suministro utilizando Build Verifier de Encryption Consulting

Firma de código Es un mecanismo crucial para establecer la autenticidad y la confianza, garantizando que el software no se vea comprometido durante su distribución. En el mundo interconectado actual, donde el software es la base, la seguridad de la cadena de suministro de software nunca ha sido tan crítica. Eventos recientes, como el ataque a SolarWinds, han puesto de relieve las vulnerabilidades que pueden explotarse en esta cadena de suministro y sirven como un claro recordatorio de la importancia de la protección. prácticas de firma de códigoEste blog profundiza en las complejidades de dichos ataques, arrojando luz sobre su ejecución y explora enfoques de seguridad proactivos para fortalecer la cadena de suministro de software.

¿Qué es el ataque SolarWinds?

El ataque a SolarWinds fue masivo ataque a la cadena de suministro Que tuvo como objetivo la plataforma SolarWinds Orion, un software ampliamente utilizado por grandes empresas y organismos gubernamentales para la gestión de infraestructura. Al comprometer SolarWinds durante la fase de desarrollo del software, los atacantes obtuvieron acceso a las redes de los clientes de la plataforma, que eran sus objetivos finales.

En un ataque a la cadena de suministro, el código malicioso se inyecta en el producto durante su creación o fabricación, lo que permite a los hackers explotar a los usuarios finales una vez que reciben el producto infectado. En este caso, los atacantes infiltraron código malicioso en las actualizaciones de software antes de que se distribuyeran a los clientes como parte del mantenimiento rutinario.

La ventaja de esta estrategia de ataque es que crea una puerta trasera oculta en la red de cada usuario final que utiliza el producto comprometido. Con la plataforma SolarWinds Orion, los atacantes contaban con un punto de entrada aún más potente, ya que abarcaba todas las redes de los usuarios, lo que les otorgaba un control significativo.

Una vez dentro, los hackers pudieron implementar malware adicional para ampliar sus capacidades, intensificar el ataque y mantener su presencia sin ser detectados. Este ataque tuvo un impacto de gran alcance, afectando a numerosas organizaciones que dependían de SolarWinds Orion para sus operaciones y poniendo en riesgo datos confidenciales.

¿Cómo se llevó a cabo el ataque a SolarWinds?

El ataque a SolarWinds comenzó con la inserción de código malicioso en las actualizaciones de software el 20 de febrero de 2020. Para el 26 de marzo de 2020, se distribuyeron actualizaciones comprometidas a los clientes de SolarWinds, instalando la puerta trasera Sunburst en sus redes. Los atacantes obtuvieron acceso directo a través de esta puerta trasera. SolarWinds utilizó la firma de código, pero los atacantes insertaron el código malicioso durante el desarrollo, eludiendo la seguridad. firma de códigoSunburst se comunicó con los servidores de los atacantes camuflándose como tráfico legítimo. Los atacantes luego implementaron el malware Teardrop y Raindrop para escalar el ataque a víctimas seleccionadas. El ataque tuvo un impacto significativo en las organizaciones que dependen de SolarWinds Orion.

Analicemos cada uno de estos componentes paso a paso:

  1. Malware de manchas solares

    Sunspot, implementado en septiembre de 2019, fue el malware inicial utilizado en el ataque a SolarWinds. Su único propósito era insertar de forma encubierta una puerta trasera maliciosa en el código fuente de Orion de SolarWinds, operando sigilosamente en el servidor de compilación. Al detectar los comandos de compilación de Orion, Sunspot sustituyó silenciosamente el código legítimo por la versión comprometida.

  2. Malware de puerta trasera Sunburst

    Sunburst, el principal malware de puerta trasera, residía en el archivo DLL "SolarWinds.Orion.Core.BusinessLayer.dll". Su función era establecer comunicación con los servidores de los atacantes mediante HTTP. Se ocultaba en una versión troyanizada de un archivo de parche de Windows Installer, coexistiendo con archivos de actualización legítimos. Sunburst permaneció en estado de hibernación durante dos semanas tras la instalación para evitar ser detectado y luego se activó para comunicarse con el dominio de los atacantes. Camuflaba su comunicación como tráfico de la API de SolarWinds, registrando datos confidenciales de la red de la víctima.

  3. El archivo DLL de Solorigate

    Los atacantes incrustaron el código de Sunburst en un archivo DLL, llamándolo "OrionImprovementBusinessLayer" para integrarse. Esta clase contenía la funcionalidad completa de la puerta trasera, diseñada para ser ligera y discreta. Se ubicó dentro del método "RefreshInternal" para garantizar una invocación regular sin interrumpir las operaciones normales.

  4. Lágrima y gota de lluvia

    Tras el reconocimiento inicial con Sunburst, los atacantes implementaron malware adicional, Teardrop y Raindrop, dirigidos a víctimas específicas consideradas adecuadas para la escalada.

Los atacantes de SolarWinds ejecutaron un plan meticuloso para comprometer el servidor de compilación antes de la fase de firma de código e inyectar el código malicioso. Su infiltración en el servidor de compilación les proporcionó una posición estratégica para manipular el proceso de actualización del software, garantizando la introducción de código malicioso antes del paso crítico de la firma de código. Esto les permitió pasar desapercibidos, ya que el código comprometido llevaba la firma de un certificado válido de SolarWinds, creando una fachada engañosa de autenticidad.

¿Cuáles son los métodos para ejecutar con éxito un ataque de este tipo?

Comprendamos varias estrategias que se pueden emplear para realizar ataques similares y comprometer la cadena de suministro de software.

  1. Obtener acceso no autorizado a claves de firma de código

    Esta táctica implica adquirir la claves criptográficas Se utilizan para firmar código de software. Estas claves garantizan a los usuarios que el software descargado no ha sido manipulado. Robar estas claves permite a los atacantes firmar su código malicioso, haciéndolo parecer genuino y confiable ante los usuarios y las comprobaciones de seguridad.

  2. Violación del servidor de compilación, como se observó en el incidente de SolarWinds

    El servidor de compilación fue un objetivo crítico en el ataque a SolarWinds. Los atacantes se infiltraron en este servidor, responsable de compilar y empaquetar actualizaciones de software. Al comprometer el servidor de compilación, obtuvieron el control del proceso de actualización de software, lo que les permitió inyectar código malicioso antes de la fase de firma del código. Esta manipulación les permitió distribuir actualizaciones maliciosas a usuarios desprevenidos.

  3. Inyectar malware directamente en el repositorio de código fuente (difícil porque deja marcas permanentes)

    Inyectar malware directamente en un repositorio de código fuente es complicado, ya que suele dejar rastros detectables. Este repositorio es donde los desarrolladores almacenan y gestionan el código fuente de sus proyectos de software. Cualquier cambio no autorizado, incluida la inserción de malware, puede identificarse y rastrearse hasta el atacante. Por lo tanto, este método es más arriesgado y tiene más probabilidades de ser detectado.

  4. Apuntar a la estación de trabajo del desarrollador para comprometerla

    Otro enfoque consiste en comprometer la estación de trabajo de un desarrollador. Los desarrolladores utilizan estas máquinas para escribir, probar y desarrollar código. Si un atacante accede a la estación de trabajo de un desarrollador, puede manipular el código antes de que se publique en el repositorio. Esta táctica puede ser difícil de detectar a menos que existan medidas robustas de seguridad en los endpoints.

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Estrategias para protegerse contra tales ataques

Se pueden seguir los siguientes enfoques para prevenir ataques similares:

  1. Validación de hash

    El método de validación de hash es una defensa fundamental contra ataques a la cadena de suministro, como la brecha de seguridad de SolarWinds. Actúa como un estricto guardián en el proceso de desarrollo de software, garantizando que el código a firmar coincida con el almacenado de forma segura en el repositorio de código fuente. Esta medida de seguridad implica que el servidor de compilación genere un hash de código, que posteriormente es analizado por el servidor de firma.

    El servidor de firma verifica de forma independiente la integridad del código iniciando una compilación determinista dentro del repositorio de código fuente y comparando hashes. Solo cuando estos hashes coinciden, el servidor de firma autoriza la firma de código, lo que proporciona una sólida capa de seguridad que protege contra alteraciones no autorizadas del código.

  2. Verificador de compilación

    Una medida preventiva adicional contra estos ataques implica un riguroso sistema de validación de hashes integrado a la perfección en el proceso de desarrollo de software. El proceso comienza con el cálculo de hashes de archivos cada vez que se incorpora código a una rama de lanzamiento específica. Estos hashes se almacenan de forma segura en un archivo cifrado mediante CodeSign Secure de Encryption ConsultingPosteriormente, cuando el servidor de compilación inicia una compilación desde la rama designada, recupera el código y calcula los valores hash de todos los archivos, almacenándolos en un archivo de texto. Un módulo Verificador de Compilación compara estos valores hash con los cifrados de forma segura dentro del repositorio.

    La compilación se ejecuta correctamente si se encuentra una coincidencia para todos los valores hash. Sin embargo, cualquier discrepancia en los valores hash hace que el Verificador de Compilación marque la compilación como fallida, deteniendo inmediatamente el proceso y enviando notificaciones a través de la canalización de CI/CD. Este sólido enfoque garantiza una rigurosa verificación de la integridad del código en múltiples etapas, lo que refuerza significativamente la seguridad de la cadena de suministro de software.

¿Cómo puede el Verificador de compilación de Encryption Consulting evitar esto?

El Verificador de Compilación de Encryption Consulting desempeña un papel fundamental para garantizar la integridad del proceso de compilación. Identifica rápidamente cualquier alteración y clasifica la compilación en cuestión como un FALLO. Posteriormente, se generan notificaciones que se envían a las partes pertinentes para que implementen medidas correctivas inmediatas. Esta capacidad subraya la eficacia del Verificador de Compilación de Encryption Consulting para garantizar la seguridad y la fiabilidad del proceso de desarrollo de software.

Si bien el método convencional de validación de hashes es sin duda un valioso mecanismo de defensa contra ataques a la cadena de suministro, el Verificador de Compilación de Encryption Consulting lleva la seguridad del software a un nivel más integral. Ambos enfoques comparten el principio fundamental de garantizar la integridad del código mediante la comparación de hashes. Sin embargo, la principal diferencia radica en el alcance de su vigilancia. El enfoque convencional se centra principalmente en el código, verificando que coincida con la versión del repositorio.

El Verificador de Compilación de Encryption Consulting ofrece una estrategia de defensa más integral. Examina el código y vigila cuidadosamente los archivos de configuración y dependencias cruciales. Este alcance más amplio le permite detectar cambios sutiles que podrían pasar desapercibidos con el enfoque tradicional de validación de hash.

Conclusión

Tras el ataque a SolarWinds, que expuso vulnerabilidades en la cadena de suministro de software, es crucial explorar medidas de seguridad proactivas. Los atacantes llevan a cabo estas infracciones comprometiendo meticulosamente los servidores de compilación antes del proceso de firma de código, introduciendo código malicioso en las actualizaciones de software y evadiendo la detección mediante firmas válidas.

En resumen, proteger la cadena de suministro de software requiere enfoques innovadores como Build Verifier de Encryption Consulting, que garantiza la confianza en el mundo digital. A medida que evolucionan las ciberamenazas, mantenerse a la vanguardia sigue siendo fundamental, y Build Verifier es un ejemplo de seguridad proactiva en un panorama complejo de ciberseguridad.