Explicación de la jerga de TI

¿Qué es Secure by Design?

En el mundo de la ciberseguridad, «Secure by Design» se ha consolidado como una filosofía esencial para garantizar que una seguridad sólida sea una prioridad en cada etapa del desarrollo de software. Los productos incorporan la seguridad como un elemento fundamental, no como una consideración posterior, con estrategias de seguridad y buenas prácticas integradas y probadas en cada paso para garantizar que los sistemas minimicen las vulnerabilidades y resistan los ataques.

Qué significa ser Secure by Design

Secure by Design va mucho más allá de los estándares sectoriales propuestos anteriormente, con un objetivo claro: proteger a los clientes y al público minimizando los fallos explotables antes de que los productos lleguen al mercado. Las empresas que adoptan estos principios se centran en las pruebas, las medidas de protección de la autenticación y el cumplimiento de las mejores prácticas de programación, creando soluciones de software y hardware sólidas y resilientes.

Los líderes del sector, encabezados por las organizaciones que han firmado el compromiso Secure by Design de la Agencia de Ciberseguridad y Seguridad de las Infraestructuras de EE. UU. (CISA), están dando prioridad a los principios de Secure by Design para hacer que la ciberseguridad sea más proactiva y eficaz, lo que se traduce en infraestructuras y aplicaciones más seguras. Esto no solo permite cumplir los requisitos normativos, sino que también genera confianza entre los usuarios, fomentando un entorno digital más seguro para todos.

Relacionado: El compromiso Secure by Design: un compromiso para crear un futuro digital más seguro

Diversos organismos sectoriales y agencias gubernamentales han publicado directrices y buenas prácticas que promueven metodologías de desarrollo de software seguro. Estas suelen destacar principios alineados con los conceptos de Secure by Design.

El ejemplo reciente más relevante es la publicación, en abril de 2023, por parte del Instituto Nacional de Estándares y Tecnología (NIST) y otras agencias de EE. UU. de un documento de orientación conjunto titulado «Shifting the Balance of Cybersecurity Risk: Principles and Approaches for Secure by Design Software», que puso de relieve la creciente importancia de los principios de Secure by Design en el desarrollo de software.

Aunque Secure by Design es voluntario para la mayoría de las empresas estadounidenses, los contratistas federales o las empresas de otros países suelen estar obligados a cumplir directrices de ciberseguridad, garantizando que los productos respalden la seguridad de las infraestructuras críticas. Estas normativas y orientaciones también facilitan esfuerzos coordinados entre socios internacionales para crear un ciberentorno global más seguro.

El compromiso Secure by Design

El compromiso es una iniciativa voluntaria impulsada por la CISA que anima a los fabricantes de software a hacer hincapié en la seguridad durante todo el ciclo de vida de desarrollo de sus productos y servicios de software. Sus aspectos clave incluyen:

Público objetivo

El compromiso se dirige a empresas que crean software empresarial, incluidas soluciones locales, servicios en la nube y ofertas SaaS. Aunque no se menciona directamente, también se anima a las empresas que fabrican productos físicos, como dispositivos IoT, a mostrar su compromiso con los principios de diseño seguro.

Enfoque en acciones medibles

El compromiso anima a los firmantes a asumir acciones específicas y medibles alineadas con los principios de Secure by Design, que deben implementarse en el plazo de un año desde la firma.

Objetivos principales

El compromiso define siete áreas principales en las que los fabricantes de software pueden demostrar su compromiso con Secure by Design:

  • Aumentar el uso de la autenticación multifactor (MFA) en todos sus productos.
  • Reducir la dependencia de las contraseñas predeterminadas y promover prácticas sólidas de gestión de contraseñas.
  • Implementar estrategias para minimizar categorías completas de vulnerabilidades en su software.
  • Fomentar la instalación oportuna de parches de seguridad por parte de los clientes.
  • Establecer una política clara y completa de divulgación de vulnerabilidades.
  • Proporcionar información detallada sobre las vulnerabilidades identificadas (CVE) para facilitar su corrección.
  • Implementar mecanismos para detectar y responder a posibles incidentes de seguridad en su software.

Transparencia e informes de progreso

Se espera que los firmantes compartan públicamente sus avances respecto a los objetivos, mejorando la transparencia y la rendición de cuentas en el sector.

Principios de Secure by Design

Los principios de Secure by Design tienen como objetivo ofrecer una orientación clara a los proveedores de software que desean mejorar la seguridad.

Privilegio mínimo

Este principio garantiza que los usuarios y los sistemas tengan únicamente el acceso necesario para sus funciones, lo que limita los daños derivados de amenazas o errores al reducir la superficie de ataque y minimizar los riesgos de acceso no autorizado a los datos. Su implementación implica un control de acceso estricto y actualizaciones periódicas basadas en roles, reforzando la seguridad frente a las ciberamenazas.

Separación de funciones

Las responsabilidades se distribuyen entre varias partes o sistemas, reduciendo la probabilidad de fraude, errores y uso indebido de privilegios al impedir que una sola entidad controle un proceso crucial.

En un ciclo de vida de desarrollo seguro, funciones como desarrollo, pruebas e implementación se reparten entre distintos equipos, garantizando que ninguna persona pueda alterar el sistema sin ser detectada. Además, se incluyen salvaguardas automatizadas para mantener este principio.

Defensa en profundidad

Este enfoque utiliza varias capas de seguridad para proteger los activos, reconociendo que ninguna defensa por sí sola es completamente infalible. Incorpora diversas salvaguardas, como cortafuegos, sistemas de detección de intrusiones y auditorías de seguridad periódicas en hardware, software y procedimientos.

Al abordar distintos tipos de amenazas y añadir múltiples obstáculos para los intrusos, este método reduce significativamente las vulnerabilidades y fortalece el marco de seguridad de las organizaciones.

Ventajas de participar en Secure by Design

Existen ventajas para los proveedores de software que deciden participar en el compromiso Secure by Design:

  • Demuestra compromiso con la seguridad: Firmar públicamente el compromiso muestra la dedicación de una empresa a las prácticas de desarrollo de software seguro. Esto puede mejorar la reputación de marca y generar confianza entre los clientes potenciales.
  • Enfoque en una seguridad medible: El compromiso fomenta un enfoque de la seguridad orientado a resultados, impulsando acciones concretas que mejoran de forma demostrable la postura de seguridad de los productos de software.
  • Colaboración e intercambio de conocimientos: El compromiso puede fomentar la colaboración y el intercambio de conocimientos entre los actores del sector, lo que conduce a una mejora colectiva de las prácticas de desarrollo de software seguro.

Los clientes y usuarios también se benefician. Cuando un proveedor de software ofrece soluciones y plataformas que siguen los principios de Secure by Design, las ventajas más importantes son las que experimenta el cliente:

  • Mejor protección: Incorporar funciones de seguridad en el software desde el principio lo hace más sólido y menos vulnerable, garantizando que la red en la que se ejecuta también sea segura y reforzándola al mismo tiempo.
  • DEX mejorada: Un mayor énfasis en la seguridad y las pruebas durante el desarrollo puede dar lugar a un producto más optimizado, estable y resistente a las interrupciones, mejorando la experiencia del empleado.
  • Mejor ROI: Un producto más seguro puede reducir el tiempo de inactividad y la necesidad de aplicar parches, permitiendo que los usuarios sigan siendo productivos.
  • Cumplimiento simplificado: Cumplir normativas estrictas de privacidad y seguridad de los datos resulta más sencillo con software Secure by Design, lo que reduce el tiempo y los recursos necesarios para las comprobaciones de cumplimiento y evita sanciones.
  • Reputación mejorada: Las empresas que priorizan la seguridad se consideran más fiables, lo que aumenta la confianza y la fidelidad de los clientes.

Implementación de Secure by Design en productos de software

Desarrollar software con la seguridad incorporada desde el inicio representa un cambio fundamental en la forma de crear software. Históricamente, el software se ha diseñado con «seguridad añadida», incorporada después de desarrollar los productos.

Pero esto significa que la seguridad no es una parte integral de la solución. Allí donde existe una conexión entre el producto principal y un complemento, hay un posible punto de vulnerabilidad para los atacantes.

Secure by Design subraya que las medidas de seguridad deben estar presentes durante todo el ciclo de vida del desarrollo de software (SDLC).

Integrar los principios de Secure by Design a lo largo de todo el proceso, en lugar de esperar a que el código ya esté escrito, garantiza que la seguridad sea una prioridad desde las fases de planificación y diseño. Este enfoque implica identificar posibles amenazas desde el principio e incorporar las defensas directamente en la arquitectura del software.

Las prácticas de codificación segura son esenciales para desarrollar software que aborde de forma preventiva las vulnerabilidades de seguridad. Seguir directrices como las del Open Worldwide Application Security Project y realizar revisiones de código y análisis estáticos ayuda a detectar problemas de seguridad en fases tempranas. Entre las prácticas clave se incluyen la validación de entradas, evitar secretos codificados de forma rígida y optar por bibliotecas seguras. El uso de herramientas de análisis continuo de vulnerabilidades y modelado de amenazas ayuda además a garantizar la seguridad del software frente a las ciberamenazas.

Las pruebas de seguridad exhaustivas en cada etapa del desarrollo garantizan que las vulnerabilidades se descubran y resuelvan pronto, antes de convertirse en problemas para el usuario final. Esto evita los costes y complejidades asociados a abordar estos problemas más adelante en el SDLC o, de forma más problemática, después del lanzamiento del producto.

Un proveedor debe realizar SAS (pruebas estáticas de seguridad de aplicaciones) y DAS (pruebas dinámicas de seguridad de aplicaciones) en su conjunto de código, así como llevar a cabo pruebas unitarias y pruebas de integración durante todo el SDLC, en lugar de posponer el modelado de amenazas o las pruebas hasta el final del proceso.

Entre las funcionalidades clave que deben incorporarse de forma nativa en el software para que siga los principios de Secure by Design se incluyen:

  • Autenticación y una combinación de algo conocido (contraseña), poseído (smartphone) o inherente (biometría). La autorización, mediante control de acceso basado en roles (RBAC) y control de acceso basado en políticas (PBAC), garantiza que los usuarios solo obtengan el acceso necesario, reduciendo los riesgos.
  • Cifrado y protección de datos. El cifrado protege los datos sensibles en reposo y en tránsito mediante algoritmos como AES (Advanced Encryption Standard) y RSA (denominado así por los científicos del MIT Rivest, Shamir y Adleman). Un cifrado adecuado implica una gestión segura de claves, con claves almacenadas por separado de los datos y el uso de módulos de seguridad de hardware (HSM). Las actualizaciones periódicas de protocolos y las auditorías refuerzan la seguridad.

Desafíos de Secure by Design

Hacer realidad Secure by Design implica desafíos que las organizaciones deben planificar cómo abordar:

  • Cambio en la cultura de desarrollo: Pasar de un proceso de desarrollo centrado en características y funcionalidades a uno que integra la seguridad desde el principio exige un cambio cultural significativo dentro de los equipos de desarrollo. La seguridad debe verse como un aspecto crucial del producto, no como algo que simplemente se añade.
  • Equilibrio entre seguridad y usabilidad: Las medidas de seguridad sólidas no pueden comprometer una experiencia fácil de usar. Encontrar el equilibrio adecuado entre seguridad y usabilidad es fundamental para garantizar la adopción por parte de los usuarios y una experiencia general positiva con el software.
  • Infraestructura y código heredados: Muchas organizaciones cuentan con productos de software existentes creados sobre bases de código antiguas que quizá no se diseñaron teniendo en cuenta la seguridad. Incorporar principios de diseño seguro a estos sistemas heredados puede ser complejo y llevar mucho tiempo.
  • Panorama de amenazas en evolución continua: El panorama de la ciberseguridad evoluciona constantemente, con nuevas amenazas que surgen de forma continua. Secure by Design no es una solución puntual; requiere un compromiso continuo para mantenerse al día sobre las amenazas más recientes y adaptar las prácticas de seguridad en consecuencia.
  • Escasez de profesionales cualificados: Implementar Secure by Design de forma eficaz exige un equipo con conocimientos especializados en seguridad. Sin embargo, existe una escasez global de profesionales de ciberseguridad, lo que puede dificultar que las organizaciones encuentren el personal cualificado necesario para adoptar plenamente los principios de Secure by Design.
  • Implicación de los usuarios: Los proveedores deben implicar a los usuarios finales en el proceso de diseño, recopilando comentarios para crear funciones de seguridad fáciles de usar. La formación continua en buenas prácticas de seguridad también es fundamental para reducir el error humano sin sobrecargar al usuario.

Terminología de Secure by Design

Así se relacionan los principios de Secure by Design con términos de ciberseguridad ya conocidos:

  • Superficie de ataque: La suma de todos los posibles puntos de entrada que un ciberatacante puede explotar para acceder a un sistema o a datos. Secure by Design busca minimizar la superficie de ataque reduciendo las vulnerabilidades.
  • Pruebas de caja negra: Metodología de pruebas de seguridad en la que el evaluador desconoce el funcionamiento interno del sistema. Secure by Design fomenta prácticas de codificación segura que minimizan las vulnerabilidades detectables mediante pruebas de caja negra.
  • Seguridad de componentes: El principio de garantizar que todos los componentes de software individuales, desde bibliotecas hasta frameworks, se construyan teniendo en cuenta la seguridad. Secure by Design enfatiza la selección e integración seguras de componentes de terceros.
  • Minimización de datos: La práctica de recopilar, almacenar y procesar únicamente la cantidad mínima de datos necesaria para un fin específico. Secure by Design fomenta la minimización de datos para reducir el posible impacto de una filtración de datos.
  • Cifrado: El proceso de transformar datos en un formato codificado al que solo se puede acceder con una clave de descifrado. Secure by Design promueve el uso de algoritmos de cifrado sólidos para proteger datos sensibles.
  • Seguridad del firmware: La práctica de proteger el código de bajo nivel que controla los dispositivos de hardware. Secure by Design fomenta el uso de prácticas de codificación segura y actualizaciones periódicas del firmware.
  • Pruebas de caja gris: Metodología de pruebas de seguridad en la que el evaluador tiene conocimiento parcial del funcionamiento interno del sistema. Secure by Design fomenta código que funcione bien tanto en escenarios de pruebas de caja gris como de caja negra.
  • Plan de respuesta a incidentes: Plan documentado que describe cómo responderá una organización a un incidente de seguridad. Secure by Design fomenta la planificación proactiva ante posibles brechas de seguridad.
  • Validación de entradas: El proceso de verificar y sanear las entradas de usuario para evitar ataques de inyección de código malicioso. Secure by Design destaca la importancia de prácticas sólidas de validación de entradas.
  • Acceso just-in-time: Conceder acceso a recursos solo cuando y durante el tiempo que sea absolutamente necesario. Secure by Design fomenta la minimización de privilegios y el uso de controles de acceso JIT.
  • Vulnerabilidades conocidas: Debilidades documentadas en el software que los atacantes pueden explotar. Secure by Design subraya la importancia de mantenerse al día sobre las vulnerabilidades conocidas y aplicar parches a los sistemas con rapidez.
  • Privilegio mínimo: El principio de conceder a los usuarios solo el nivel mínimo de permisos de acceso necesario para realizar su trabajo. Secure by Design promueve el concepto de privilegio mínimo para minimizar los posibles daños causados por cuentas comprometidas.
  • Autenticación multifactor: Una capa adicional de seguridad que requiere un factor de verificación secundario, además de una contraseña, para acceder a un sistema. Secure by Design destaca la MFA como un control de seguridad crucial.
  • Pruebas de penetración: Metodología de pruebas de seguridad en la que hackers éticos intentan explotar vulnerabilidades en un sistema. Secure by Design fomenta la realización periódica de pruebas de penetración para identificar y abordar debilidades de seguridad.
  • Seguridad de código abierto: La práctica de garantizar la seguridad del software creado sobre componentes de código abierto. Secure by Design fomenta una selección y gestión cuidadosas de las bibliotecas de código abierto, con foco en las vulnerabilidades conocidas.
  • Gestión de parches: El proceso de identificar, adquirir e implementar parches de seguridad para corregir vulnerabilidades en el software. Secure by Design subraya un enfoque proactivo de la gestión de parches.
  • Garantía de calidad: El proceso de garantizar que el software cumpla los requisitos y estándares especificados, incluidos los requisitos de seguridad. Secure by Design integra las consideraciones de seguridad en todas las fases del proceso de QA.
  • Gestión de riesgos: Identificación, evaluación y mitigación de riesgos de seguridad. Secure by Design fomenta un enfoque de seguridad basado en el riesgo, centrado en las amenazas más críticas.
  • Prácticas de codificación segura: Técnicas de codificación que minimizan la introducción de vulnerabilidades durante el desarrollo de software. Secure by Design destaca la formación de los desarrolladores en prácticas de codificación segura.
  • Modelado de amenazas: El proceso de identificar y analizar posibles amenazas para un sistema. Secure by Design fomenta el modelado de amenazas en fases tempranas del proceso de desarrollo para abordar de forma proactiva las preocupaciones de seguridad.

Relacionado: El progreso de Ivanti hacia los objetivos de Secure by Design