Establecer una disciplina de seguridad en el desarrollo

Este artículo ayuda a los equipos de seguridad y tecnología a establecer y modernizar una materia de seguridad de desarrollo. Esta materia ayuda a los equipos de seguridad, ingeniería y tecnología a garantizar que el software esté diseñado, creado, integrado e implementado de forma segura, sin ralentizar la innovación.

Las materias de seguridad son agrupaciones de trabajo de seguridad relacionados que ayudan a las organizaciones a ofrecer de forma coherente resultados de seguridad en todo el patrimonio tecnológico. Dentro del modelo de adopción de seguridad, las disciplinas ayudan a proporcionar un puente entre escenarios empresariales e implementación técnica, lo que garantiza que las inversiones de seguridad se traducen en resultados medibles reales como parte del modelo de adopción de seguridad.

¿Por qué esta disciplina?

El software está profundamente interconectado con identidades, datos, infraestructura y procesos empresariales. Cuando la seguridad de desarrollo es débil o incoherente, cada versión de software puede introducir nuevas vulnerabilidades que los atacantes aprovechan para obtener acceso a recursos organizativos más amplios.

Sin una disciplina eficaz de seguridad en el desarrollo, las organizaciones suelen experimentar:

  • Mayor riesgo de vulnerabilidades de software introducidas durante el desarrollo.
  • Riesgo de la aplicación que permite el movimiento lateral entre identidades y datos.
  • Interrupción de las operaciones empresariales y los ingresos.
  • Exposición o abuso de datos de clientes y datos regulados.
  • Acumulación de deuda técnica que aumenta el riesgo a largo plazo y el costo de corrección.

Una sólida disciplina de seguridad en el desarrollo garantiza que cada lanzamiento reduzca el riesgo, en lugar de aumentarlo.

Misión y resultados

La materia de seguridad de desarrollo reduce el riesgo organizativo asegurándose de que todo el software, ya sea desarrollado internamente o por asociados, esté diseñado, integrado e implementado en consonancia con los estándares de seguridad, sin ralentizar la entrega o la innovación.

Las organizaciones que maduran esta materia logran:

  • Seguridad integrada en los procesos de desarrollo en lugar de añadirse al final.
  • Identificación y corrección anteriores de errores de diseño e implementación.
  • Ciclos de versión más predecibles y seguros.
  • Reducción del retrabajo, las correcciones de emergencia y las interrupciones operativas.
  • Menor acumulación de deuda técnica y de seguridad a lo largo del tiempo.

La seguridad en el desarrollo garantiza que el nivel de seguridad mejore continuamente con cada versión, en lugar de restablecerse periódicamente.

Cambios en el trabajo en equipo

Es importante que una disciplina de seguridad en el desarrollo se adapte a la situación de los desarrolladores y los equipos de producto, centrándose en integrar la seguridad en los flujos de trabajo de desarrollo existentes, en lugar de introducir controles en fases avanzadas, procesos de revisión que generan mucha fricción o incluso omitir la seguridad en los procesos de desarrollo.

Este enfoque se describe a menudo como desplazamiento a la izquierda, la introducción del pensamiento de seguridad anteriormente en la ideación, el diseño y la implementación, cuando los problemas son más fáciles y menos costosos de corregir. Desplazarse hacia la izquierda no significa decir «no» en una fase más temprana del proceso. En su lugar, presenta una discusión informada sobre la seguridad al principio para mejorar las decisiones del producto y garantizar que las soluciones cumplan los requisitos empresariales y de seguridad.

Entre los principios clave se incluyen:

  • Integración temprana: tenga en cuenta la seguridad durante la ideación y el diseño, no solo las pruebas
  • Alineación del desarrollador: reunirse con los equipos de desarrollo y productos en los que ya trabajan
  • Cambio pequeño e incremental: se prefieren las mejoras de automatización y baja fricción
  • Mejora continua: tratar la seguridad como una materia continua, no como un hito

Con el tiempo, la integración coherente reduce los simulacros de incendio y acelera la entrega en lugar de ralentizarla.

Cómo aplicar esta materia

Para aplicar la materia de seguridad de desarrollo de forma eficaz, céntrese en establecer un enfoque coherente para crear y mantener aplicaciones y servicios seguros en toda la organización:

  1. Definir una estrategia de desarrollo segura alineada con el riesgo empresarial
    Establezca un enfoque claro sobre cómo se diseñan, compilan y mantienen las aplicaciones y los servicios para reducir el riesgo de poner en peligro y proteger la funcionalidad empresarial crítica.
  2. Inserción de seguridad en procesos de desarrollo e ingeniería
    Asegúrese de que las prácticas de seguridad se integran en las actividades de planeación, diseño, desarrollo e implementación en lugar de aplicarlas después del hecho.
  3. Establecimiento de prácticas de desarrollo seguras estandarizadas
    Proporcione instrucciones claras para asegurarse de que las prácticas de codificación, prueba y versión seguras se aplican de forma coherente entre equipos y proyectos.
  4. Alineación de la seguridad de desarrollo con recursos críticos y escenarios empresariales
    Priorice las protecciones para aplicaciones y servicios que admiten activos de alto valor y operaciones empresariales clave.
  5. Mejorar continuamente en función del riesgo, las vulnerabilidades y los comentarios
    Use información de vulnerabilidades, incidentes y resultados de pruebas para reforzar las prácticas de desarrollo y reducir el riesgo a lo largo del tiempo.

Administrar el cambio

La seguridad de desarrollo moderno se implementa normalmente a través de un enfoque de DevSecOps que combina la entrega ágil con prácticas esenciales de gobernanza y calidad antes de la versión.

En lugar de elegir entre velocidad y seguridad, DevSecOps se centra en proteger los aspectos clave del ciclo de vida de desarrollo para mitigar el riesgo urgente, sin impedir ciclos de versión rápidos:

Proteger el diseño : use patrones de diseño de seguridad probados y valide los diseños a través del modelado de amenazas. Proteger el código : siga los procedimientos de codificación seguros y valide el software y las dependencias. Protección de la canalización : valide el proceso de canalización y proteja los sistemas de CI/CD frente a riesgos y cambios no autorizados. Asegúrese de la rastreabilidad de los cambios en la canalización y el software que pasa por la canalización. Operaciones seguras : asegúrese de que las cargas de trabajo implementadas siguen los procedimientos recomendados de configuración, aplicación de revisiones y operaciones.

Los equipos pueden mejorar los resultados al refinar continuamente la colaboración entre el desarrollo, la seguridad y las operaciones, equilibrando los objetivos de entrega funcionales con confiabilidad y reducción de riesgos.

Estrategia de DevSecOps que combina prácticas de desarrollo tradicionales con técnicas ágiles.

Esta mejora incremental continua debe aplicarse tanto a la producción de trabajo (código de software generado en el ciclo de vida) como a la maduración del propio ciclo de vida de desarrollo.

Definición de un proceso de DevSecOps

La seguridad de desarrollo se implementa normalmente a través de un modelo operativo de DevSecOps que evoluciona con el tiempo en lugar de aparecer completamente formado. DevSecOps reúne el desarrollo, la seguridad y las operaciones para lograr mejores resultados mediante la mejora continua.

La mayoría de las organizaciones progresan en estas fases:

Desarrollo (Desarrollo): la primera versión de producción se centra en ofrecer un producto mínimamente viable (MVP) que cumpla los requisitos empresariales principales. DevOps: después de la versión inicial, los equipos se centran en la iteración rápida, la estabilidad operativa y la gobernanza a través de la entrega continua. DevSecOps: a medida que la colaboración madura, el desarrollo, la seguridad y las operaciones funcionan conjuntamente para refinar continuamente los procesos y equilibrar la velocidad, el riesgo y la confiabilidad.

Estrategia de DevSecOps que combina controles de calidad tradicionales y desarrollo ágil.

Esta progresión permite a las organizaciones mejorar los resultados de seguridad sin sacrificar la agilidad ni la innovación.

Establecimiento de una línea base de MVP segura

Un paso clave de este modelo es definir lo que constituye un producto mínimo viable (MVP) desde las perspectivas de desarrollo, seguridad y operaciones. Establecer esta línea de base compartida crea claridad en todos los equipos y permite una mejora coherente con el tiempo.

Componente Detalles
Dev(elopment) Asegúrese de que el software cumple los requisitos empresariales y funcionales mínimos.
Sec(urity) Asegúrese de que el software cumple los requisitos mínimos de seguridad y cumplimiento.
Op(eration)s Asegúrese de que el software cumple los requisitos mínimos de calidad, confiabilidad y preparación operativa.

Los requisitos de MVP varían según la organización y el sector y están influenciados por el apetito de riesgo, la exposición normativa y la importancia empresarial. Estos requisitos suelen evolucionar a medida que cambian la organización, el panorama de amenazas y los modelos de entrega.

Mejora continua del software

Después de la versión inicial de producción, las cargas de trabajo pasan a ciclos de mejora continua. En esta fase, el desarrollo, la seguridad y las operaciones refinan tanto el software como el proceso de entrega. Los esfuerzos de seguridad se centran en:

  • Integración de la seguridad de forma nativa en flujos de trabajo de desarrollo, con las mismas herramientas y modelos de priorización que otros trabajos de ingeniería
  • Identifique, priorice y corrija rápidamente los errores de seguridad como parte de los ciclos de versión estándar.

Este enfoque se alinea con los aprendizajes de Microsoft Secure Future Initiative (SFI), como prPaved Paths, donde las prácticas seguras están integradas en plataformas y procesos en lugar de aplicarse externamente.

Con el tiempo, este aprendizaje continuo ayuda a los equipos a refinar los requisitos, simplificar la colaboración y equilibrar mejor la velocidad de entrega, la seguridad y la confiabilidad.

Roles y colaboradores de disciplina

Normalmente, la disciplina de seguridad en el desarrollo suele estar a cargo de equipos que se dedican al desarrollo de aplicaciones y productos.

Los roles principales de esta materia suelen incluir:

  • Directores de productos y entrega de tecnología
  • Desarrolladores de software (incluido el desarrollo de IA)
  • Ingenieros de seguridad de software
  • DevOps e ingenieros de plataforma
  • Roles de ingeniería de pruebas y calidad
  • Roles de seguridad de la cadena de suministro y de dependencia

Entre los colaboradores clave se incluyen:

  • Liderazgo empresarial y técnico: proporcionar patrocinio y priorización
  • Roles de arquitectura: guía de decisiones de diseño e integración seguras
  • Roles de estrategia de seguridad, integración y disciplina de gobernanza: proporcionar directivas, educación y supervisión
  • Equipos de infraestructura y plataforma: habilitación de entornos de desarrollo seguros
  • Operaciones de seguridad (SecOps): supervisar y responder cuando se atacan las aplicaciones

Alineación con otras disciplinas

La seguridad de desarrollo está estrechamente integrada con otras materias de SAF:

  • Acceso e identidades: protege las identidades de desarrollador, carga de trabajo e servicio.
  • Seguridad de la infraestructura: protege las plataformas que ejecutan aplicaciones y canalizaciones.
  • Seguridad de datos: garantiza que los datos confidenciales están protegidos durante todo el ciclo de vida del software.
  • SecOps: detecta y responde a ataques de nivel de aplicación.
  • Estrategia de seguridad, integración y gobernanza: alinea las prácticas de desarrollo con las prioridades de riesgo empresarial.

En conjunto, estas disciplinas garantizan que la seguridad del software respalde objetivos empresariales y de seguridad más amplios.

Alineación con pilares tecnológicos

La ejecución de la estrategia para la materia de seguridad de desarrollo requiere controles de seguridad en varios pilares tecnológicos.

Seguridad en el desarrollo: correspondencia con los pilares tecnológicos.

La alineación con los pilares tecnológicos incluye:

  • Identidades: protege las identidades y las credenciales de desarrollador y carga de trabajo.
  • Puntos de conexión: protege las estaciones de trabajo de desarrollador y los sistemas de compilación.
  • Infraestructura: protege las plataformas que hospedan código, canalizaciones y cargas de trabajo.
  • Aplicaciones: proporciona un enfoque principal para las prácticas de seguridad de desarrollo.
  • Datos: protege los datos usados, generados y almacenados por las aplicaciones.
  • Red: diseña software para operar de forma segura en redes que no son de confianza.
  • IA: protege los componentes y modelos de inteligencia artificial que se usan en las aplicaciones modernas.

Esta amplitud garantiza que la materia aborde las rutas de ataque del mundo real.

¿Qué sigue?

La guía adicional de la estrategia de seguridad de desarrollo se encuentra en la estrategia de seguridad de desarrollo.

Tomar un taller

Microsoft Unified ofrece talleres dirigidos por expertos para ayudar a las organizaciones a modernizar su materia de seguridad de desarrollo. Estos talleres incluyen:

  • Talleres de arquitectura y estrategia - El Marco de adopción de seguridad (SAF) - Sesión de diseño de arquitectura: taller sobre seguridad de la infraestructura y del desarrollo se centra en acelerar la modernización de la seguridad del desarrollo y su integración con la seguridad de la infraestructura. Este taller está disponible como una discusión de menos de cuatro horas centrada en aprendizajes clave y procedimientos recomendados.
  • Talleres de adopción de tecnología: Microsoft Unified tiene talleres para ayudar a las organizaciones a aprender, planear, implementar y optimizar el uso de Microsoft Tecnología de seguridad de desarrollo, como se muestra en este diagrama.

Talleres de adopción de tecnología de desarrollo

Revisión del Ciclo de vida de desarrollo de seguridad de Microsoft

El Microsoft ciclo de vida de desarrollo de seguridad continua proporciona una metodología para desarrollar software de forma segura. El ciclo de vida de desarrollo de seguridad (SDL) es el enfoque que Microsoft usa para integrar la seguridad en los procesos de DevOps (a veces denominado enfoque de DevSecOps). La guía de seguridad de desarrollo de SAF le ayuda a adaptar el enfoque y las prácticas de SDL a su organización.

Puede aplicar las prácticas descritas en el enfoque de SDL a todos los tipos de desarrollo de software y a todas las plataformas, desde la cascada clásica hasta los enfoques modernos de DevOps. Este enfoque de seguridad de software aplicable generalmente funciona en cualquier tipo de software y plataforma.

Para obtener más información, consulte Ciclo de vida de desarrollo de seguridad de Microsoft (SDL).

La seguridad de desarrollo eficaz requiere seguir un ciclo de vida de desarrollo de seguridad (SDL) como el Ciclo de vida de desarrollo de seguridad de Microsoft (SDL)

Pasos siguientes

Obtenga información sobre el cambio de DevOps a DevSecOps.