

Lista de materiales de software: Gestión de los riesgos de ciberseguridad del software
22 de septiembre, 2022
19 de setiembre, 2022
| Artículo
Por Tucker Bailey, Justin Greis, Matt
Watters, y Josh Welle
A medida que las vulnerabilidades relacionadas con el
software siguen aumentando, las empresas deben gestionar sus ciberriesgos de
software para innovar más rápidamente y crear productos digitales más seguros.
Hasta hace poco, la mayoría de las empresas
desconocían los "ingredientes" o el código que compone el software
que impulsa sus productos y el software empresarial. Esto es un problema porque
el uso de código de terceros está aumentando, y el consumo de software de
código abierto (OSS, siglas en inglés de Open Source Software) se
acelerará en los próximos años.
Las empresas recurren al OSS porque reduce los costes
y aumenta el ritmo de desarrollo del software. Al incorporar en capas el código
que ya ha construido otra persona, los desarrolladores pueden reducir su tiempo
de comercialización y acelerar los conjuntos de características más buscados
por sus socios comerciales. El problema es que el código del repositorio de OSS
puede llevar incrustado malware, errores u otras vulnerabilidades que el
desarrollador desconoce. Sin un sólido proceso de verificación del código en el
repositorio de OSS del que extraen sus desarrolladores, las empresas seguirán
sin ser conscientes de las amenazas que acechan a sus productos.
Para seguir el ritmo de la evolución de la dinámica de
la seguridad, las empresas necesitan nuevos programas y técnicas de gestión
para comprender el origen y la seguridad del código que sustenta sus productos
digitales y sus operaciones comerciales. Sin este sistema, las empresas
seguirán siendo vulnerables a la inserción involuntaria de programas maliciosos
que podrían causar incidentes de ciberseguridad o dañar aplicaciones críticas.
Aunque algunas ciberamenazas pueden evitarse mediante el desarrollo interno de
código personalizado, ese proceso requiere de muchos recursos y tiempo. Además,
el uso de OSS tiene ventajas, como poder desarrollar rápidamente en la nube o
aumentar la productividad de los desarrolladores. En realidad, la mayoría de
las aplicaciones se construyen utilizando una combinación de código
personalizado y componentes de código abierto. Es entonces cuando un delicado
acto de equilibrio recae en los directores de tecnología (CTO, chief
technology officers), directores de información (CIO, chief information
officers) y directores de seguridad de la información (CISO, chief
information security officers), que son sensibles a los riesgos inherentes
al OSS.
Un programa de lista de materiales de software (SBOM, software
bill of materials) puede ayudar a las empresas a protegerse a sí mismas y a
sus clientes mediante la creación de un sistema que examina todo el código
entrante antes de que pueda ser adoptado por los desarrolladores.
Qué es una SBOM y por qué es útil
Una SBOM es como la etiqueta nutricional de una caja de cereales: enumera los ingredientes del interior, destacando el contenido que puede ser perjudicial para algunos, como el gluten y el maní. En concreto, una SBOM es un inventario formal, legible por máquina, de los componentes de software y sus dependencias (que resultan de la combinación de varios componentes de OSS, código de terceros y código desarrollado internamente), la información técnica sobre esos componentes y las relaciones jerárquicas del código (Anexo 1).
Anexo 1
Una SBOM ayuda a los desarrolladores a conocer el
origen del "código detrás del código" para que puedan determinar si
es seguro. También les ayuda a entender y mitigar las vulnerabilidades
conocidas en el código, ahorrando tiempo y costes. Las SBOM también ayudan a
los departamentos legales y de cumplimiento a identificar el historial de
licencias y los casos de uso permitidos para una sección de código de terceros,
lo que reduce cualquier posible uso indebido. Además, las SBOM ayudan a los
equipos de seguridad y forenses a identificar el impacto en el software tras el
descubrimiento de vulnerabilidades y exposiciones comunes (CVE, common
vulnerabilities and exposures) recientemente identificadas, lo que mejora
la capacidad de respuesta y reparación de las organizaciones.
Por qué es necesario un programa
de SBOM
Durante los últimos cinco años, el desarrollo de OSS
aumentó de aproximadamente el 35 por ciento a cerca del 75 por ciento de la
base de código auditada de las organizaciones. Como ejemplo, en 2021, según
OpenUK, nueve de cada diez empresas con sede en el Reino Unido declararon
utilizar OSS. Las organizaciones utilizan OSS porque ayuda a ahorrar costes, a
la flexibilidad de los desarrolladores y a la velocidad de codificación.
El uso de OSS crea la oportunidad de una mayor
colaboración entre los desarrolladores y permite a los codificadores avanzar
rápidamente, ya que las bibliotecas de código contienen cantidades ilimitadas
de funcionalidades y recursos de herramientas preconstruidas. Disponer de componentes
de software bajo demanda permite a los desarrolladores aprovechar el trabajo de
otros desarrolladores. Los componentes son accesibles y están disponibles desde
cualquier lugar, y estos elementos son independientes de los fabricantes
individuales, lo que los hace atractivos para las empresas de nueva creación y
los actores tecnológicos emergentes, o esencialmente para cualquiera que quiera
construir software rápidamente.
Aunque el beneficio de incorporar código de terceros
es evidente, el OSS contribuye al riesgo organizativo. El OSS no está regulado
ni supervisado por una autoridad central y está disponible públicamente. Puede
contener posibles vulnerabilidades, código desactualizado y explotaciones
cibernéticas, que pueden exponer a las organizaciones a ciberataques. La
mayoría de las organizaciones buscan comprender mejor y reducir sus riesgos
cibernéticos y tecnológicos, pero las organizaciones reconocen que desarrollar
y mantener un código seguro es una piedra angular vital de cualquier estrategia
de ciberseguridad.
Las organizaciones ya no se preguntan si se verán
afectadas por un ciberataque, sino que se preguntan cuándo, cómo y cuál será el
impacto después de que se produzca el ciberataque. En 2014, el 62% de las
organizaciones declararon haber sufrido un ciberataque. En 2021, esa cifra
aumentó al 86%. El coste de los ciberataques también está creciendo
rápidamente. En 2015, el impacto mundial de la ciberdelincuencia se estimó en
$3 billones, según el Informe de Investigaciones de Violaciones de Datos de
Verizon. En 2021, esa cifra aumentó a aproximadamente $6 billones y se espera
que aumente a cerca de $10 billones en 2025. De los miles de ciberataques
diarios, las vulnerabilidades de la cadena de suministro son cada vez más la
causa.
Dadas las ventajas del OSS, así como sus riesgos
inherentes, las empresas encuentran cada vez más difícil gestionar sus cadenas
de suministro de software. Por ejemplo, en diciembre de 2020, la explotación
del malware Sunburst demostró tener orígenes en la cadena de suministro. El
incidente afectó a unos 33.000 usuarios, de los cuales 18.000 tenían el
producto infectado con el código malicioso.
Las SBOM permiten a las empresas conservar las
ventajas del OSS al tiempo que gestionan los riesgos. Ayudan a las empresas a
evitar problemas, como en el caso de Sunburst, donde una empresa que tenía
capacidad de SBOM pudo determinar que era vulnerable al código contaminado en
dos horas. Otros afectados fueron menos afortunados, como una empresa de
energía que determinó que tenía el software defectuoso dos meses y medio
después. Durante esos dos meses y medio, la empresa fue vulnerable a más
ataques y a riesgos empresarial.
Los ciberdelincuentes y otros agentes malintencionados
suelen emplear varios métodos para lanzar ataques a la cadena de suministro de
software, a menudo dirigidos al código abierto o al código común de terceros.
Para ello, en 2018, los investigadores descubrieron 12 bibliotecas maliciosas
de Python subidas al índice oficial de paquetes de Python (PyPI). En conjunto,
incidentes como el caso del malware Sunburst y el compromiso del Índice de
Paquetes Python han impulsado a las empresas a considerar el desarrollo rápido
de SBOM (véase la barra lateral, "El gobierno federal quiere proteger a la
nación del código malicioso").
Cómo mitigan los riesgos los
programas de SBOM con una mayor transparencia del código
La mayoría de las organizaciones tienen aplicaciones
formadas por diferentes subcomponentes y piezas, algunas tomadas de bibliotecas
de OSS, otras compradas a terceros y otras creadas y personalizadas por los
desarrolladores. Cada fuente tiene diferentes limitaciones asociadas. Por
ejemplo, el OSS y el software de terceros tienen licencias que cambian con el
tiempo o pueden tener limitaciones de uso. Un sistema típico de SBOM estudia,
identifica y caracteriza estos elementos de codificación (Anexo 2).
Anexo 2
Las organizaciones que se esfuerzan por comprender las
vulnerabilidades de su código se exponen a riesgos financieros o de seguridad.
A continuación se presentan varios beneficios que una organización puede
experimentar al crear un programa SBOM:
·
Identificación y
mitigación de vulnerabilidades. Los sistemas SBOM hacen un inventario de los
subcomponentes del código y permiten a los analistas identificar el código con
vulnerabilidades conocidas. Cuando se anuncia una vulnerabilidad crítica, los
analistas de seguridad hacen referencia a los artefactos de la SBOM y
determinan si hay un impacto en el código. Esto ayuda al personal de respuesta
a incidentes a identificar dónde existen vulnerabilidades y a priorizar las
mitigaciones. También proporciona a los líderes la capacidad de responder con
rapidez y confianza cuando tratan con miembros del consejo de administración,
clientes, inversores y reguladores.
·
Gestión de licencias
de software. Los programas SBOM ayudan a las organizaciones a gestionar sus
licencias de software y OSS de terceros, que pueden ser bastante complejas y
cambiar con el tiempo. Esto garantiza que los desarrolladores puedan determinar
de forma coherente los casos de uso permitidos para el OSS y el software de
terceros, protegiendo en última instancia a las organizaciones del riesgo
financiero derivado del uso inapropiado o no autorizado del software de
terceros. También ayuda a los equipos de cumplimiento a responder a las
reclamaciones o auditorías de licencias.
·
Mejora del ciclo de
vida del desarrollo de software (SDLC, software development life cycle).
Los programas SBOM pueden ayudar a las organizaciones a mejorar su SDLC. La
generación de una SBOM en momentos preestablecidos durante el SDLC puede
identificar problemas como vulnerabilidades conocidas o problemas de licencia.
Los equipos mitigan estos problemas con antelación, reduciendo los costes y
evitando los retrasos. Los programas SBOM permiten a las organizaciones ser más
eficientes y acelerar la forma de construir, implantar y ejecutar el software.
Por ejemplo, a medida que se construye el código, los
desarrolladores crean una SBOM inicial, que enumera las dependencias inherentes
al software. Durante las pruebas y el empaquetado, se identifican las
vulnerabilidades y las dependencias adicionales y se actualiza la SBOM a medida
que se implanta el código. A medida que surgen vulnerabilidades durante las
operaciones, el programa SBOM alertará a los desarrolladores cuando sea
necesario aplicar un parche. Tras la aplicación del parche, el SBOM se
actualiza de nuevo.
Cómo desarrollar un programa
SBOM: Invertir, crear, integrar y diseñar
Teniendo en cuenta los beneficios y los retos asociados
al desarrollo de OSS, está claro que los programas de SBOM son parte integral
de una codificación más segura y de una empresa resistente. Para ello, las
organizaciones pueden centrarse en cuatro prácticas clave a la hora de
establecer programas de SBOM:
1. Invertir en las capacidades de SBOM aprovechando
las herramientas de análisis de la composición del software (SCA, software
composition analysis) existentes. Muchas organizaciones cuentan con
capacidades de SCA. Dependiendo de la solidez de las capacidades, los equipos
pueden utilizarlas como base para construir un programa de SBOM. La administración
puede utilizar los recursos de forma eficiente determinando qué herramientas
del SBOM pueden comprarse o desarrollarse internamente. Los responsables de los
productos deben encontrar un proveedor de confianza y crear un programa que
utilice herramientas que se ajusten a los procesos del SDLC, incluida la
integración fluida y automatizada con una canalización de integración continua e
implantación continua (CI/CD, continuous integration/continuous deployment).
Las capacidades automatizadas de la SBOM pueden desarrollarse internamente o
comprarse a un proveedor externo.
2. Crear un programa de SBOM con un equipo
interfuncional. Los programas SBOM implican a múltiples partes de la
organización, cada una con una función diferente. Es importante poner en marcha
un programa de SBOM con un equipo interfuncional. Este equipo debe incluir
personal de diversos ámbitos -desarrolladores, seguridad de la información, adquisiciones,
legal, riesgos, privacidad y cumplimiento, porque los programas de SBOM tocan
múltiples partes de la organización. Cada equipo participante debe tener
representación en los niveles de toma de decisiones, y sus necesidades deben
tomarse en cuenta a lo largo del proceso (Anexo 3).
3. Integrar la SBOM en el Los beneficios de la
seguridad y la eficiencia del SDLC ayudan a generar una mayor aceptación por
parte de los desarrolladores. Los programas SBOM proporcionan beneficios a los
desarrolladores al identificar las vulnerabilidades y los problemas de licencia
en las primeras etapas del proceso. Las organizaciones pueden beneficiarse más
cuando examinan sus procesos de desarrollo e integran la generación y revisión
de SBOM en múltiples puntos del ciclo de vida del desarrollo. La creación de
capacidades automatizadas de generación y revisión de la SBOM reduce la carga
de trabajo y alienta a los desarrolladores a adoptar nuevas formas de trabajo.
4. Diseño de la gobernanza de la SBOM. Los
programas de SBOM requieren una colaboración y comunicación interfuncional y
pueden requerir una estructura adicional para incentivar la adopción, el
cumplimiento y la cooperación. Las organizaciones que tienen una cultura
descentralizada o no jerárquica pueden tener dificultades para que los
desarrolladores cumplan con los requisitos de la SBOM. Los beneficios de la
seguridad y la eficiencia del SDLC ayudan a generar una mayor participación de
los desarrolladores. Además, las organizaciones pueden considerar una
estructura de gobierno que asigne funciones y responsabilidades para las tareas
relacionadas con la SBOM.
Anexo 3
Lanzamiento de un programa SBOM
Las empresas corren a utilizar código de terceros,
incluido el OSS, lo que significa que la creación de un programa de SBOM debe
seguir el mismo camino para evitar los retos que se plantean a muchos en el
mundo empresarial actual. Además de este artículo, en los foros de desarrolladores
de la Agencia de Ciberseguridad y Seguridad de las Infraestructuras (CISA, Cybersecurity
and Infrastructure Security Agency) y del Instituto Nacional de Normas y
Tecnología (NIST, National Institute of Standards and Technology) se
puede encontrar orientación sobre la creación de un programa. La normativa SBOM
afecta principalmente a las empresas que prestan servicios al gobierno, como
las del sector aeroespacial y de defensa, pero puede ser una guía útil para
todas las empresas que quieran mitigar los mismos problemas. Los sectores
altamente regulados, como los servicios públicos y financieros, suelen tener la
misma obligación de supervisar el uso del software de OSS.
De cara al futuro, las organizaciones que examinen y
evalúen de forma proactiva el código que entra en su ecosistema a través de un
sólido programa SBOM estarán mejor preparadas para las inminentes normativas
gubernamentales sobre la cadena de suministro de software y mantendrán su
infraestructura de TI y a sus clientes más seguros. Programas robustos de SBOM
permiten a las organizaciones construir un código seguro de manera rentable y
eficiente frente a las crecientes ciberamenazas. El momento de actuar es ahora.
SOBRE EL/LOS AUTOR/ES
Tucker Bailey es socio de la oficina de McKinsey en
Washington, DC; Justin Greis es socio de la oficina de Chicago; y Matt Watters
es miembro asociado de la oficina de Nueva Jersey, donde Josh Welle es
consultor.
Los autores desean agradecer a Jim Boehm, Dennis Dias,
Michael Glynn, Alex Keegan, Charlie Lewis, Lucy Shenton y Daniel Wallance sus
aportaciones a este artículo.
