Software
Ciberseguridad

¿Qué es un SBOM? Así funcionan las listas de materiales de software

Un SBOM es una guía detallada de lo que hay dentro del software. Ayuda tanto a los proveedores como a los compradores a realizar un seguimiento de los componentes para mejorar la seguridad de la cadena de suministro.

genérico software

Un SBOM es un registro formal y estructurado que no solo detalla los componentes de un producto de software, sino que también describe su relación con la cadena de suministro: qué paquetes y bibliotecas entraron en la aplicación y su relación con otros proyectos, algo que es de particular importancia cuando hablamos de código reutilizado y abierto.

Pongamos el ejemplo de un automóvil con el documento de materiales, que desgrana cada componente que hace que funcione. La cadena de suministro de los vehículos es muy compleja y, aunque haya sido ensamblado por Toyota o General Motors, por ejemplo, muchos de sus componentes han sido fabricados por terceros de todo el mundo. Esta lista dice de dónde proviene cada parte, y ese conocimiento no solo es una curiosidad interesante. Si se ha retirado del mercado una determinada producción, los fabricantes necesitan una forma rápida de saber dónde encontrar un repuesto o dónde terminó ese componente en particular.

Escribir software no es exactamente como construir un coche, pero con el uso cada vez mayor de bibliotecas de código abierto de terceros para crear aplicaciones distribuidas en contenedores, los dos procesos tienen más en común de lo que se podría pensar. Es por eso que los SBOM se están volviendo cada vez más comunes.

Tanto los desarrolladores como los usuarios pueden usar un SBOM para comprender qué se incluye exactamente en el software que distribuyen y usan. Esto tiene una serie de implicaciones importantes, especialmente para la seguridad.

 

¿Por qué es necesario un SBOM?

Los días de la las bases de código monolíticas de software patentado han quedado atrás. Las aplicaciones modernas a menudo se crean sobre la base de una amplia reutilización de código, a menudo utilizando bibliotecas open source. Estas aplicaciones también se dividen cada vez más en componentes de funcionalidad autónomos más pequeños conocidos como contenedores, administrados por plataformas de orquestación como Kuberntes y que se ejecutan localmente o en la nube.

En general, estos cambios han sido una bendición para el desarrollo del software y han aumentado la productividad de los desarrolladores y reducido los costes. Pero en muchos sentidos han sido una pesadilla para la seguridad. Al depender en gran medida del código de terceros con cuyo funcionamiento interno pueden no estar completamente familiarizados, los desarrolladores han creado una cadena de suministro de componentes tan compleja como las que utilizan los fabricantes físicos. Y debido a que una aplicación es tan segura como su componente menos seguro, el software creado de esta manera tiene vulnerabilidades únicas con las que la industria está batallando.

Estos últimos años han estado marcados por una serie de ataques a la cadena de suministro de software que han sido muy populares. Por ejemplo, a finales de 2020 cibercriminales afiliados a la inteligencia rusa lograron colocar puertas traseras en una plataforma de monitorización de red de SolarWinds, una solución que a la vez es utilizada por otros productos de seguridad, todos los cuales terminaron comprometidos. Y, a finales de 2021, se descubrió una vulnerabilidad grave en Apache Log4j, una biblioteca de Java utilizada para registrar eventos del sistema.

Estas crisis de seguridad ilustran el papel que puede desempeñar un SOBOM en el panorama actual. Con uno adecuado se sabe exactamente qué paquetes se han implementado y, más concretamente, qué versión, lo que permite actualizar según sea necesario para mantenerse seguro.

 

Orden ejecutiva de la lista de materiales de software

En particular, el ataque a SolarWinds, despertó las alarmas en el gobierno de Estados Unidos ya que muchas de sus agencias federales habían implementado el componente comprometido. Es por eso que una importante orden ejecutiva de ciberseguridad emitida en mayo incluía directivas sobre SBOM. Efectivamente, se ordenó al Departamento de Comercio que publicara una base de elementos mínimos para los SBOM, que luego se convertiría en un requisito para cualquier proveedor que venda al gobierno federal.

Aunque la orden se aplica específicamente a aquellos que tienen relaciones directas con los federales, la naturaleza expansiva de los EE.UU y las muchas empresas que quieren trabajar con el sector público tendrán efectos colaterales también en el sector privado, por lo que SBOM se democratizará como un elemento de valor agregado.

 

¿Qué se debe incluir en un SBOM?

En respuesta a la orden ejecutiva, en julio de 2021, la Administración Nacional de Telecomunicaciones e Información (NTIA, en inglés) publicó los requisitos mínimos para una lista de materiales de software. Estos incluyen siete campos que cualquier SBOM debería tener como el nombre del proveedor, del componente, versión del componente, otros identificadores únicos, relación de dependencia, autor de datos SBOM y Timestamp; es decir, registro de la fecha y hora del ensamblaje de datos SBOM.

Además, el SBOM debe estar en uno de los tres formatos estandarizados (SPDX, CycloneDX o SWD), se debe generar uno nuevo con cada nueva versión de software y explicar dónde es probable que existan tales reacciones pero que la organización que elabora el SBOM desconozca.

 

Cómo generar un SBOM

En la mayoría de los casos, los SBOM se generan automáticamente mediante herramientas de análisis de composición de software (SCA; en inglés). Las herramientas SCA se usan con frecuencia dentro de las canalizaciones de DevSecOps y, a menudo, desempeñan funciones más allá de la creación de SBOM.

Las herramientas SCA escanean los directorios de código en busca de paquetes y los comparan con bases de datos en línea para compararlos con bibliotecas conocidas. También hay alternativas a esto, por ejemplo, hay algunas herramientas que simplemente crearán un SBOM como parte del proceso de creación del software.



TE PUEDE INTERESAR...

Accede a la cobertura de nuestros encuentros
 
Lee aquí nuestra revista digital de canal

DealerWorld Digital

 

Forma parte de nuestra comunidad
 
¿Interesado en nuestros foros? 

 

Whitepaper