Vulnerabilidades de seguridad en el código.
El software del sistema operativo, el software de aplicación o el firmware de un sistema integrado son componentes elementales de cualquier infraestructura digital. Sin embargo, la creciente aceleración y la presión de los plazos en los proyectos de digitalización a menudo conducen a que se descuiden aspectos imperativos de seguridad de la información. Los requisitos de desarrollo de software suelen centrarse en las funciones y enfatizan los aspectos constructivos, de modo que la visión destructiva de las posibles vulnerabilidades de seguridad es diametralmente opuesta a los objetivos reales del desarrollo: muchos programadores simplemente carecen de una visión estructurada y precisa de la ciberseguridad.
En estas condiciones, los equipos de desarrollo tienen dificultades para revisar continuamente y asegurar consistentemente la codificación de su software, como lo demuestran las numerosas vulnerabilidades que la organización sin fines de lucro MITRE Corporation publica cada año en su CVE (Vulnerabilidades y exposiciones comunes). Los parches de seguridad regulares, incluso de los fabricantes de software más conocidos, son un indicador de la difícil tarea de corregir errores relevantes para la seguridad, y mucho menos identificarlos incluso antes de su lanzamiento al mercado.
Código fuente abierto: un caso especial
Al codificar software de desarrollo propio, a los programadores les gusta recurrir a bibliotecas y módulos de código abierto. Las ventajas prácticas son obvias: si no tiene que reinventar la rueda una y otra vez, se beneficiará de este impulso tecnológico, un desarrollo rápido, menores costos de desarrollo, más transparencia a través del código fuente abierto y una mayor interoperabilidad a través de estándares e interfaces abiertos. .
También se suele decir que el código de código abierto ofrece un alto grado de seguridad porque el código ha sido validado por muchos usuarios y la inteligencia de enjambre de la comunidad de código abierto permite una corrección de errores rápida y eficiente.
En la práctica, esta confianza debe evaluarse ahora de manera diferenciada y crítica. El ejemplo más grave es la vulnerabilidad de seguridad de día cero Log4Shell en la biblioteca de registro ampliamente utilizada Log4J para aplicaciones Java, que se descubrió en noviembre de 2021. Es posible que haya oído hablar del nivel de alerta roja emitido por la Oficina Federal Alemana de Seguridad de la Información (BSI). ) para Log4Shell. La biblioteca Log4J, distribuida como cuasi estándar y que funciona de forma fiable a través de la Fundación Apache, se ha consolidado desde 2013 en muchos sistemas, incluidos servicios web conocidos como Amazon AWS.
La complejidad de estas bibliotecas bien desarrolladas y mantenidas proporciona implícitamente potentes funcionalidades que un desarrollador importador a menudo desconoce en su propio nuevo desarrollo combinado, pero que pueden ser explotadas por los atacantes.
Otro factor de inseguridad de los componentes de código abierto son los llamados ataques a la cadena de suministro, es decir, vulnerabilidades integradas intencionadas por parte de actores maliciosos que se hacen pasar por parte de la comunidad de código abierto y ayudan en el desarrollo de código. Esta vulnerabilidad es una forma extremadamente eficiente para que los piratas informáticos ataquen a una gran cantidad de organizaciones de usuarios intermedios. No es de extrañar, entonces, que este vector de ataque esté creciendo rápidamente: estudio sonatipo diagnosticó un aumento del 650% al comparar 2020 y 2021.