Sección cuarta de la «Orden ejecutiva para mejorar la ciberseguridad del país» introdujo a mucha gente en tecnología el concepto de una «cadena de suministro de software» y su seguridad. Si crea software y alguna vez espera venderlo a una o más agencias federales, tener que preste atención a esto. Incluso si nunca planea venderle a un gobierno, comprender su cadena de suministro de software y aprender cómo asegurarla le reportará dividendos en una base de seguridad más sólida y los beneficios que brinda. Este artículo analizará tres formas de potenciar tu Seguridad de la cadena de suministro de software.
¿Cuál es su cadena de suministro de software? Es esencialmente todo lo que implica la creación de una pieza de software: desde el IDE en el que el desarrollador escribe el código, hasta las dependencias de terceros, los sistemas y scripts de compilación, el hardware y el sistema operativo en el que se ejecuta. Se pueden introducir inestabilidades y vulnerabilidades, de forma maliciosa o no, desde el inicio hasta la implementación e incluso más allá.
1: Mantén tus secretos en secreto
Algunos de los mayores incidentes de ciberseguridad de 2023 se produjeron porque los malos actores encontró secretos en texto plano. Los secretos, en este contexto, son cosas como combinaciones de nombre de usuario y contraseña, claves API, claves de firma y más. Estas llaves de los reinos corporativos se encontraron tiradas donde no deberían estar.
Sourcegraph fue engañado cuando publicaron código en una instancia pública que contenía un token de acceso codificado. El token se utilizó para crear otras cuentas y brindar a las personas acceso gratuito a la API de Sourcegraph. Un grupo de piratas informáticos obtuvo acceso a un entorno de depuración interno de Microsoft y encontré una clave de firma en un volcado de memoria que les permite crear credenciales de correo electrónico.
Herramientas como GitGuardian le permiten verificar su código, tanto heredado como de vanguardia, en busca de secretos publicados accidentalmente o intentos de publicarlos. Es importante saber qué secretos podrían haberse revelado y remediarlos, así como implementar medidas de seguridad en forma de herramientas automatizadas y revisiones de código para garantizar que otras claves no salgan a la luz.
2: Utilice SCA para ayudar a construir su lista de materiales
En la fabricación, una lista de materiales (BOM) es un inventario completo que incluye todas las materias primas, componentes y pautas necesarias para la construcción, fabricación o reparación de un producto o servicio. Tanto las regulaciones de ciberseguridad como las mejores prácticas están adoptando la idea de una lista de materiales de software que proporcione transparencia y procedencia de todas las piezas que intervienen en la creación de su software.
Pero simplemente no puedes crear una lista de materiales a partir de tu lista de dependencias declaradas.
Los repositorios de paquetes como NPM, PyPI y la incorporación de marcos y bibliotecas de código abierto fueron elogiados por hacer que el desarrollo de software sea más eficiente al no tener que reinventar las ruedas. En cambio, los desarrolladores podían encontrar paquetes gratuitos que implementaran la funcionalidad que necesitaban e incorporarlos fácilmente a su software.
También expusieron a los desarrolladores a una creciente red de dependencias. Es posible que sienta que se siente como «tortugas hasta el final» ya que sus dependencias tienen dependencias que tienen dependencias… Incluso podría tener subdependencias en cuatro versiones diferentes del mismo paquete, todas las cuales tienen diferentes vulnerabilidades.
Las herramientas de análisis de composición de software escanean automáticamente la base de código de su proyecto e identifican todos los componentes externos que está utilizando, incluidas todas las tortugas hasta donde llegan. Luego realizan comprobaciones para asegurarse de que estos componentes estén actualizados, sean seguros y cumplan con los requisitos de licencia.
Esto no solo ayuda a identificar qué dependencias tienen vulnerabilidades conocidas para que pueda actualizarlas o reemplazarlas, sino que también es de gran ayuda cuando necesita generar una lista de materiales limpia para que la inspeccionen clientes y reguladores potenciales.
3: Hackéate tú mismo
El hacking ético es más antiguo que el de la mayoría de los graduados recientes en informática. Como se indica en un seminario web reciente sobre piratería éticaes «identificar y explotar vulnerabilidades en sistemas o redes informáticas de una manera responsable y legal Tenga en cuenta el énfasis en «responsable» y «legal».
Básicamente, los hackers éticos utilizan mayoría de las mismas técnicas que los hackers de «sombrero negro» para encontrar y explotar vulnerabilidades en un sistema. La diferencia que no se puede enfatizar lo suficiente es que lo hacen con permiso. Se apegan a los sistemas que se les ha dado permiso para piratear y luego documentan todo para que sus descubrimientos puedan ser reproducidos y analizados por el equipo/cliente al que los informan.
Si bien esto a menudo puede ocurrir en una etapa posterior del proceso de desarrollo, es importante. Si pueden determinar sus dependencias y hacer su propio SCA que identifique las dependencias vulnerables, se acabó el juego. Si pueden encontrar un punto de entrada sin vigilancia, se acabó el juego. Si prueban una aplicación web y encuentran un código de depuración que genera resultados confidenciales en la consola, se acabó el juego. Algunas vulnerabilidades pueden ser un obstáculo, otras podrían simplemente necesitar eliminar una línea de código de depuración.
Hacer que la piratería ética forme parte del proceso de lanzamiento, unirse a programas de recompensas por errores y más puede garantizar que esté arreglando las cosas antes de tener que disculparse por ellas, informarlas a los reguladores y realizar una limpieza.
Resumen
Ya sea que esté tratando de complacer a los reguladores o a los clientes, reforzar la seguridad de su cadena de suministro de software le permitirá dedicar más tiempo a vender su software y menos tiempo a disculparse por ello. Y si bien estos tres consejos le brindan una buena base, puede encontrar mucho más en el marco de seguridad SLSA. Trabajar el marco y asegurar su cadena de suministro es la forma de obtener (en palabras del sitio SLSA) «de ‘lo suficientemente seguro’ a ser lo más resistente posible, en cualquier eslabón de la cadena».