Uno de los ataques cibernéticos más grandes y publicitados de los últimos 12 meses fue contra SolarWinds, donde los piratas informáticos colocaron una puerta trasera en una actualización de software de su producto Orion.
Los ataques a la cadena de suministro a los proveedores de software a menudo tienen como objetivo explotar a las empresas que se encuentran más arriba en la cadena de suministro y no son nada nuevo; uno de los primeros que recuerdo fue un ataque a una empresa que desarrollaba software de diseño de sitios web.
En ese caso, los atacantes colocaron malware en el código de diseño del sitio web para que creara una puerta trasera en cada sitio web creado con ese código. Esos sitios web podrían convertirse en armas para descargar malware a los usuarios que navegan por los sitios.
Este enfoque aprovecha el ataque original a una organización para comprometer con éxito a sus clientes, así como a los clientes de sus clientes, a su vez.
Los aspectos del ataque SolarWinds dan lugar a varias lecciones sobre cómo debemos proteger los entornos de desarrollo de software, cómo evaluamos a nuestros proveedores y cómo administramos y monitoreamos algunos de los productos de software que utilizamos, particularmente como proveedor de servicios.
SolarWinds Orion fue un objetivo particularmente bueno, ya que es un producto de administración de red y, por lo tanto, tiene acceso a todo lo que se pueda administrar a través de una red.
Orion es ampliamente utilizado por gobiernos y empresas, incluidos aquellos que brindan servicios de administración de redes a otras organizaciones. Fue esta influencia la que les dio a los atacantes acceso a al menos 18.000 empresas, así como posiblemente a muchas más que aún desconocen el compromiso. Sin embargo, cabe señalar que en realidad se explotó un número mucho menor de empresas. SolarWinds anunció que el número real de clientes que fueron pirateados a través de Sunburst era menos de 100.
Estos involucran a grandes empresas de tecnología, seguridad y departamentos gubernamentales, incluido el Pentágono. Sin embargo, este ataque a SolarWinds no tuvo ningún impacto en sus sistemas y, por lo tanto, pasó desapercibido durante mucho tiempo.
El ataque original al entorno de desarrollo de SolarWinds fue uno de los más sofisticados hasta la fecha. Los atacantes no solo modificaron el software sellado, sino que también utilizaron nombres de dominio para seleccionar objetivos específicos y replicar las comunicaciones de Orion para pasar desapercibidos. Una vez hecho el trabajo, también eliminaron todos los rastros del ataque para dificultar la atribución.
El entorno de desarrollo de SolarWinds no era inseguro y se realizaron varios controles de seguridad para garantizar que las alteraciones en el código fuente pudieran detectarse antes de la compilación. El código final se firmó digitalmente como parte del proceso de compilación, lo que garantiza que se puedan detectar los cambios en el código compilado. Por lo tanto, el enfoque utilizado por los atacantes interfirió con el proceso de compilación en sí para cambiar el código malicioso durante el proceso de compilación. No se modificó el código fuente ni se falsificaron firmas.
Es muy importante que el código ejecutable final sea exactamente lo que se probó, no solo por razones de seguridad, sino también desde el punto de vista de la calidad. Sin embargo, el ataque SolarWinds muestra que los controles existentes no son suficientes.
Si bien es una buena práctica tener un entorno de compilación separado del entorno de desarrollo, el primero ahora claramente debe bloquearse con un acceso externo mínimo, y la integridad de todo el entorno (software y scripts de compilación utilizados en la compilación, etc.) debe ser monitoreado y verificado antes de que se compile el código final.
También podría considerar ejecutar el código compilado final en una caja de arena para intentar detectar cualquier comportamiento inesperado antes de publicarlo. En circunstancias extremas, el entorno de construcción podría incluso reconstruirse a partir de una “imagen dorada” cada vez que se utilice, aunque esto puede resultar poco práctico en algunos casos.
Desde el punto de vista del usuario, en el pasado hemos tendido a confiar en el software de proveedores acreditados y le hemos dado acceso completo a todo lo que necesita para hacer su trabajo, lo que podría significar dispositivos en las redes de los clientes.
Por lo tanto, ahora debemos partir de la suposición de que las aplicaciones pueden verse comprometidas. Esto significa mejorar la seguridad de la cadena de suministro para garantizar que los proveedores de software tengan la protección cibernética adecuada a la luz de este ataque, junto con la revisión y actualización de la protección y el monitoreo de los sistemas para aumentar la protección contra el software comprometido a través de ataques a la cadena de suministro, así como una detección más temprana. de cualquier compromiso.
Aunque el ataque SolarWinds fue muy sofisticado, demuestra a otros actores maliciosos lo que es posible y, en consecuencia, podemos esperar ver más de lo mismo. Por lo tanto, debemos aprender de esto y actualizar nuestra protección de los entornos de desarrollo y construcción de software, alentar a nuestros proveedores a proteger sus entornos de desarrollo y no asumir que las aplicaciones de software que usamos todos los días están libres de malware.