La importancia de comprender la cadena de suministro del software para protegerlo
Cuando instalas software, ¿estás seguro de que es un código en el que puedes confiar? Hay muchas preguntas que debemos hacer: ¿sabes cómo llegó esa aplicación a ti, cómo se construyó y qué software de terceros se ejecuta en su interior?
Las aplicaciones de hoy forman parte de una cadena de suministro de software que se extiende hasta la comunidad de código abierto y las plataformas de desarrollo e integración continua a gran escala. Es un problema que ha cobrado gran relevancia debido a eventos recientes: el uso de un proceso de construcción comprometido para introducir una puerta trasera en la plataforma de gestión SolarWinds antes de atacar los sistemas de sus clientes y el secuestro de varias bibliotecas de código abierto para, entre otros ataques, incluir mineros de criptomonedas para robar energía y CPU.
Los usuarios finales no tenían idea de que estaban utilizando software comprometido. Según ellos, se trataba de un código legítimo proveniente de fuentes confiables. Era un código en el que confiaban que era seguro. Pero sin tener visibilidad sobre cómo se construyó ese software, no había forma de saber que ese software no debía confiarse. El software que utilizamos se construye a partir de muchos componentes diferentes, utilizando desde imágenes base de contenedores hasta scripts de construcción.
Entendiendo la cadena de suministro de software para protegerla
Conocemos las cadenas de suministro que nos entregan bienes materiales y tomamos medidas para protegerlas. Existen leyes y normas internacionales que controlan cómo fluyen los bienes entre fábricas y a través de las fronteras, con certificaciones y documentos aduaneros para rastrear cómo se mueven y si cumplen con los estándares. Pero no hacemos esto para el software, simplemente lo instalamos y lo utilizamos en nuestros negocios.
Hace un año, el Gobierno de los Estados Unidos emitió una orden ejecutiva que buscaba que la industria trabajara para proteger la cadena de suministro de software, requiriendo un "Software Bill of Materials" (SBOM) para todas las aplicaciones proporcionadas al gobierno federal de los Estados Unidos. Es una orden exhaustiva, destinada a brindar pautas sobre cómo mejorar y asegurar la cadena de suministro de software. El objetivo es establecer procesos que sitúen la ingeniería de software al mismo nivel que otras disciplinas de ingeniería.
Microsoft ha estado utilizando manifiestos de software internamente durante mucho tiempo, lo que le permite realizar un seguimiento de los diversos componentes y módulos utilizados para construir su software. Ese trabajo lo llevó a liderar el grupo de trabajo de "Tool-to-Tool SBOM" del Consorcio de Calidad de Información y Software para desarrollar un estándar interindustrial para compartir esta información con clientes y socios. Si bien el trabajo estaba bastante avanzado, no era la única plataforma SBOM en desarrollo.
Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivelComo resultado de la orden del gobierno de Estados Unidos, Microsoft y el resto del consorcio están fusionando su trabajo con el proyecto similar de la Fundación Linux. Esto forma parte de la norma ISO para el cumplimiento de licencias de código abierto, que ha sido diseñada para compartir todas las licencias incluidas en una aplicación con los usuarios finales. Adjuntar información de licencia a un SBOM tiene mucho sentido, ya que te permite ver qué licencia se aplica a qué componente utilizando un manifiesto legible por máquina construido con el "Software Package Data Exchange" (SPDX).
Trabajando con SPDX para construir un SBOM
Aunque SPDX no es exactamente la herramienta imaginada por la Administración Nacional de Telecomunicaciones e Información del gobierno de Estados Unidos, se acerca bastante a ella y se puede utilizar para manejar la mayoría de los requisitos iniciales y se adapta fácilmente para cubrir el resto. Además de eso, es la herramienta SBOM más comúnmente utilizada y se puede integrar fácilmente en la mayoría de los entornos de desarrollo de software, con una serie de herramientas de código abierto aplicables. El cumplimiento de licencias puede haber impulsado el desarrollo de SPDX, pero como requiere comprender qué software se está utilizando y de dónde proviene, debe ser fácilmente ampliable para agregar otras verificaciones, como firmas digitales y hashes, lo que te permite construir un SBOM que cubra binarios y otros artefactos de software, además del código fuente.
Microsoft ha estado migrando sus herramientas de manifiesto interno de sus propios formatos a SPDX para cumplir con los requisitos del NTIA y la orden ejecutiva. El resultado es un conjunto de herramientas que genera un archivo JSON SBOM para cada construcción. No lo está haciendo solo para clientes gubernamentales, lo está haciendo para todo su software. En el centro de su implementación de SPDX hay una asignación de los campos clave del NTIA a SPDX, por lo que, por ejemplo, donde el NTIA solicita un nombre de componente, la implementación de Microsoft SPDX utiliza el campo de nombre de paquete SPDX. También significa que campos como nombre del proveedor, versión del paquete, suma de comprobación del paquete y relación se hacen obligatorios, donde SPDX los trata como opcionales, lo que permite a Microsoft entregar un SBOM lo más detallado posible.
Implementar esto es un gran trabajo para Microsoft. Produce alrededor de medio millón de construcciones al día, en Windows, Mac, Linux, Android, iOS y más. Por lo tanto, generar un SBOM debe ser automático, para todas las construcciones oficiales (las construcciones de prueba y desarrollo que no salen del laboratorio de desarrollo no necesitarán un SBOM). Debe formar parte de cualquier canalización de construcción de CI/CD, entregando el SBOM junto con el resto de los artefactos de construcción.
El resultado es una herramienta multiplataforma que no solo identifica componentes de software comerciales, sino que también detecta e identifica componentes de código abierto de los repositorios de software más comunes, como su propio NuGet o el popular repositorio de JavaScript NPM, e incluso funciona con lenguajes como Go y Rust, así como aplicaciones que tienen sus propios repositorios de Git.
El SBOM resultante tiene tanto hashes SHA256 como SHA1 para el código, superando las especificaciones del NTIA, y los archivos resultantes tienen sus propias firmas digitales para una seguridad adicional. Incluso realiza un seguimiento del sistema de construcción utilizado, con una firma que codifica la ejecución de la construcción. Por último, la salida de una construcción se verifica con el SBOM y, si hay alguna discrepancia, el software resultante no se lanzará, lo que evita que se ejecute código comprometido en servicios como Azure.
Cómo proteger tu computadora de los virus: métodos y consejosConstruye tus propios SBOM para algo más que software seguro
Hay mucho valor en comprender la cadena de suministro de software, y no se trata únicamente de un problema de seguridad, también puede resolver problemas en la construcción y mantenimiento de relaciones comerciales. Tener un SBOM público para algo tan ubicuo como Word ayudará a mejorar las relaciones entre proveedores y sus clientes. Pronto, pedir pruebas de origen del software será parte de todas las negociaciones contractuales, lo que ayudará a las empresas a gestionar el riesgo de manera más efectiva. Con un SBOM instalado junto con tu software, podrás entregarlo junto con el resto de la documentación necesaria.
Deberías poder generar tu propio SBOM para tu propio software personalizado, utilizando la misma herramienta que Microsoft en Visual Studio. Microsoft ha anunciado que va a ofrecer su herramienta de SPDX como código abierto, lo que te permitirá utilizarla en cualquier herramienta de CI/CD y en cualquier IDE. La misma herramienta que se encuentra en Visual Studio para .NET estará en Android Studio para Android, o en XCode para iOS. Eso es una gran victoria para toda la industria, ya que las organizaciones extienden la plataforma SPDX y nos brindan una forma de comprender el cada vez más complejo mundo de la cadena de suministro de software de manera estandarizada y multiplataforma.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a La importancia de comprender la cadena de suministro del software para protegerlo , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados