{"id":15200,"date":"2025-09-09T21:13:40","date_gmt":"2025-09-09T19:13:40","guid":{"rendered":"https:\/\/www.palentino.es\/blog\/?p=15200"},"modified":"2025-09-09T21:17:06","modified_gmt":"2025-09-09T19:17:06","slug":"sbom-la-lista-de-ingredientes-del-software-que-todos-deberiamos-conocer","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/sbom-la-lista-de-ingredientes-del-software-que-todos-deberiamos-conocer\/","title":{"rendered":"SBOM: La lista de ingredientes del software que todos deber\u00edamos conocer"},"content":{"rendered":"<p>Cuando compras un alimento en el supermercado, lo primero que miras en la etiqueta es la lista de ingredientes. Esa informaci\u00f3n te permite saber si contiene az\u00facar, gluten, aditivos o cualquier elemento que pueda ser relevante para ti.<\/p>\n<p>Ahora imagina trasladar ese mismo concepto al mundo del software. Eso es exactamente lo que significa un <strong>SBOM (Software Bill of Materials)<\/strong>: un inventario detallado de todas las piezas que componen una aplicaci\u00f3n.<\/p>\n<hr \/>\n<h3>\u00bfQu\u00e9 contiene un SBOM?<\/h3>\n<p>Un SBOM suele incluir informaci\u00f3n como:<\/p>\n<ul>\n<li><strong>Librer\u00edas<\/strong>: paquetes externos usados en el desarrollo.<\/li>\n<li><strong>Frameworks<\/strong>: entornos como Angular, .NET o Spring.<\/li>\n<li><strong>M\u00f3dulos<\/strong>: partes internas reutilizables del propio software.<\/li>\n<li><strong>Versiones<\/strong>: n\u00famero exacto de cada componente.<\/li>\n<li><strong>Origen<\/strong>: de d\u00f3nde proviene el componente (repositorio, proveedor, etc.).<\/li>\n<\/ul>\n<p>Es decir, no solo te dice <em>qu\u00e9 ingredientes hay<\/em>, sino tambi\u00e9n <em>cu\u00e1l es su procedencia<\/em>.<\/p>\n<p><a href=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/09\/SBOM-palentino.gif\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-15202 size-full\" src=\"https:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2025\/09\/SBOM-palentino.gif\" alt=\"\" width=\"1394\" height=\"929\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<hr \/>\n<h3>\u00bfPor qu\u00e9 es tan importante?<\/h3>\n<ol>\n<li><strong>Seguridad proactiva<\/strong><br \/>\nCuando surge una vulnerabilidad en una librer\u00eda (como el famoso caso de <em>Log4j<\/em>), el SBOM permite identificar de inmediato en qu\u00e9 aplicaciones est\u00e1 presente, evitando semanas de incertidumbre.<\/li>\n<li><strong>Cumplimiento legal<\/strong><br \/>\nMuchas empresas usan componentes open source con licencias que deben gestionarse adecuadamente. El SBOM ayuda a cumplir estas obligaciones.<\/li>\n<li><strong>Gesti\u00f3n del riesgo en la cadena de suministro<\/strong><br \/>\nLas organizaciones ya no solo desarrollan software, tambi\u00e9n lo integran. El SBOM aporta transparencia en proveedores y dependencias externas.<\/li>\n<li><strong>Confianza y transparencia<\/strong><br \/>\nCompartir un SBOM con clientes o auditores genera un nivel de confianza adicional sobre la calidad del software entregado.<\/li>\n<\/ol>\n<hr \/>\n<h3>Ejemplo cotidiano<\/h3>\n<p>Supongamos que desarrollas una aplicaci\u00f3n de facturaci\u00f3n en <strong>Java<\/strong>. Esta app utiliza:<\/p>\n<ul>\n<li><em>Spring Boot<\/em> (framework)<\/li>\n<li><em>Hibernate<\/em> (ORM para base de datos)<\/li>\n<li><em>Jackson<\/em> (para manejar JSON)<\/li>\n<li>Una librer\u00eda externa para PDF<\/li>\n<\/ul>\n<p>Si ma\u00f1ana se detecta que la librer\u00eda de PDF tiene una vulnerabilidad cr\u00edtica, con un SBOM podr\u00edas buscar r\u00e1pidamente si tu aplicaci\u00f3n la incluye, en qu\u00e9 versi\u00f3n, y tomar acci\u00f3n inmediata (parchear, actualizar, reemplazar).<\/p>\n<hr \/>\n<h3>Est\u00e1ndares y herramientas<\/h3>\n<p>Para que un SBOM sea \u00fatil, debe estar en un formato legible por m\u00e1quinas y personas. Los m\u00e1s comunes son:<\/p>\n<ul>\n<li><strong>SPDX (Software Package Data Exchange)<\/strong><\/li>\n<li><strong>CycloneDX<\/strong><\/li>\n<\/ul>\n<p>Existen herramientas como <strong>Syft<\/strong>, <strong>Trivy<\/strong> o <strong>Grype<\/strong> que generan SBOMs autom\u00e1ticamente y los integran en procesos DevOps.<\/p>\n<p>Un ejemplo sencillo en <strong>JSON<\/strong> podr\u00eda verse as\u00ed:<\/p>\n<pre>\n\n<div class=\"codecolorer-container text mac-classic language-json\" style=\"overflow:auto;white-space:nowrap;width:635px;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/><\/div><\/td><td><div class=\"text codecolorer\">{<br \/>\n&nbsp; &quot;name&quot;: &quot;MiApp&quot;,<br \/>\n&nbsp; &quot;version&quot;: &quot;1.0.0&quot;,<br \/>\n&nbsp; &quot;components&quot;: [<br \/>\n&nbsp; &nbsp; {<br \/>\n&nbsp; &nbsp; &nbsp; &quot;name&quot;: &quot;Spring Boot&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;version&quot;: &quot;2.7.5&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;origin&quot;: &quot;Maven Central&quot;<br \/>\n&nbsp; &nbsp; },<br \/>\n&nbsp; &nbsp; {<br \/>\n&nbsp; &nbsp; &nbsp; &quot;name&quot;: &quot;Jackson&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;version&quot;: &quot;2.13.4&quot;,<br \/>\n&nbsp; &nbsp; &nbsp; &quot;origin&quot;: &quot;GitHub&quot;<br \/>\n&nbsp; &nbsp; }<br \/>\n&nbsp; ]<br \/>\n}<\/div><\/td><\/tr><\/tbody><\/table><\/div>\n\n<\/pre>\n<hr \/>\n<h3>El futuro del SBOM<\/h3>\n<p>No es solo una recomendaci\u00f3n t\u00e9cnica: en sectores como el <strong>gubernamental, sanitario o cr\u00edtico<\/strong>, ya es un requisito obligatorio. Incluso organismos como el <strong>Departamento de Comercio de EE. UU.<\/strong> han impulsado normativas que obligan a los proveedores a entregar un SBOM junto con el software.<\/p>\n<hr \/>\n<h3>Conclusi\u00f3n<\/h3>\n<p>El SBOM no es un simple documento t\u00e9cnico: es una <strong>herramienta estrat\u00e9gica<\/strong> para aumentar la seguridad, cumplir normativas y generar confianza en el software.<\/p>\n<p>Al igual que las etiquetas nutricionales nos ayudan a cuidar nuestra salud, el SBOM nos ayuda a cuidar la <strong>salud digital<\/strong> de nuestras aplicaciones.<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando compras un alimento en el supermercado, lo primero que miras en la etiqueta es la lista de ingredientes. Esa informaci\u00f3n te permite saber si contiene az\u00facar, gluten, aditivos o cualquier elemento que pueda ser relevante para ti. Ahora imagina trasladar ese mismo concepto al mundo del software. Eso es exactamente lo que significa un SBOM (Software Bill of Materials): un inventario detallado de todas las piezas que componen una aplicaci\u00f3n. \u00bfQu\u00e9 contiene un SBOM? Un SBOM suele incluir informaci\u00f3n como: Librer\u00edas: paquetes externos usados en el desarrollo. Frameworks: entornos como Angular, .NET o Spring. M\u00f3dulos: partes internas reutilizables del propio software. Versiones: n\u00famero exacto de cada componente. Origen: de d\u00f3nde proviene el componente (repositorio, proveedor, etc.). Es decir, no solo te dice qu\u00e9 ingredientes hay, sino tambi\u00e9n cu\u00e1l es su procedencia.<\/p>\n","protected":false},"author":1,"featured_media":12506,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1415],"tags":[],"class_list":["post-15200","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria-es"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=15200"}],"version-history":[{"count":2,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15200\/revisions"}],"predecessor-version":[{"id":15203,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/15200\/revisions\/15203"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/12506"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=15200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=15200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=15200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}