
FIASSE v1.1
Un marco para integrar la seguridad de aplicaciones en la ingeniería de software (FIASSE) mediante el modelo de ingeniería de software asegurable (SSEM).
Un marco para integrar la seguridad de aplicaciones en la ingeniería de software (FIASSE)
Nota: Este repositorio es un trabajo en curso. ¡Las contribuciones son bienvenidas!
Descripción general
TL;DR: por favor, lea el DOC. Explore el sitio web de FIASSE. Visite GitHub Discussions para contribuir.
Este repositorio contiene recursos y materiales para el Marco de OWASP para Integrar la Seguridad de Aplicaciones en la Ingeniería de Software (FIASSE). FIASSE (pronunciado /feiz/ como 'phase') es un marco independiente de proveedores que promueve un enfoque basado en principios y centrado en el desarrollador para construir software asegurable. Reconoce que la seguridad es un proceso dinámico y continuo, al igual que el desarrollo. Introduce el Modelo de Ingeniería de Software Asegurable (SSEM) como un lenguaje de diseño común que utiliza términos consolidados de la ingeniería de software para integrar la seguridad en la arquitectura, el diseño y la ingeniería del software, incorporando la seguridad en los principios que dan forma al propio código. El marco permite a los equipos de desarrollo añadir valor computacional de forma resiliente mientras reducen la probabilidad de impacto material por eventos cibernéticos a lo largo de la vida útil del código.
FIASSE es un marco de creación. Aborda cómo se implementa la seguridad en el software, conectando las decisiones de ingeniería directamente con resultados asegurables. No es un marco de aseguramiento, un modelo de madurez ni un reemplazo de catálogos de controles o métricas de vulnerabilidades. Complementa esos enfoques y alivia la presión posterior sobre el aseguramiento y el cumplimiento.
Propósito
Proporcionar directrices prácticas que capaciten a los desarrolladores para crear software asegurable sin requerir una profunda experiencia en seguridad, y guiar a los profesionales de la seguridad para integrar eficazmente su experiencia en seguridad dentro de la ingeniería de software. FIASSE lo logra a través de una perspectiva de ingeniería de software, reduciendo la carga cognitiva y fomentando la colaboración entre los equipos de desarrollo y de seguridad.
¿En qué se diferencia?
Mientras que los proyectos centrados en el aseguramiento, como el OWASP Top 10, destacan qué evitar (una lista de bloqueo), OWASP FIASSE proporciona un conjunto de atributos y prácticas positivas a seguir (una lista de permitidos). Este enfoque aprovecha las habilidades existentes de ingeniería de software para construir software asegurable, en lugar de exigir a los desarrolladores que aprendan técnicas de explotación o adopten una mentalidad centrada en las vulnerabilidades. El énfasis está en habilitar una codificación segura y práctica mediante principios de ingeniería familiares.
Al definir claramente el rol práctico de la seguridad dentro del proceso de desarrollo, este marco garantiza que el valor de negocio se capture de manera efectiva. Establecer expectativas de seguridad explícitas antes de escribir el código reduce la probabilidad de que se descubran fallos de seguridad y necesiten remediación posteriormente. Una adopción efectiva debería mejorar las métricas de aseguramiento existentes, reducir la rotación de hallazgos, producir correcciones más duraderas y acortar el tiempo de remediación.
Valores fundamentales
FIASSE se orienta por cuatro valores fundamentales. Cada uno expresa una preferencia relativa: ambos lados tienen valor, pero cuando hay que tomar decisiones, FIASSE favorece el de la izquierda.
- Atributos asegurables sobre controles de seguridad: preferir las cualidades de ingeniería que permiten construir y mantener defendible un sistema, por encima de los controles de seguridad añadidos a posteriori para compensar debilidades.
- Participación sobre evaluación: preferir la interacción estructurada entre seguridad y desarrollo a lo largo del ciclo de vida, por encima de la evaluación realizada una vez terminado el trabajo.
- Primeros principios de ingeniería sobre jerga de seguridad: preferir fundamentarse en los primeros principios consolidados de la ingeniería de software, por encima de la jerga específica de seguridad o las heurísticas adversariales.
- Valor de negocio sobre actividad de seguridad: preferir una seguridad que sostenga la creación de valor de la organización, por encima de una seguridad perseguida como un fin en sí misma.
Principios clave
- El paradigma asegurable: No existe un estado estático de "seguro". Un sistema declarado seguro hoy puede ser vulnerable mañana. FIASSE redirige el objetivo de la ingeniería de "¿es seguro?" a "¿está construido de modo que la seguridad pueda mantenerse?" mediante la resiliencia adaptativa, la seguridad evolutiva y la mejora continua.
- Añadir valor computacional de forma resiliente: La directiva principal de la ingeniería de software en un contexto empresarial. El software debe cumplir los requisitos funcionales mientras sostiene las cualidades asegurables que le permiten resistir el cambio, la tensión y los ataques que siguen a cada cambio.
- Misión de seguridad: reducir el impacto material: La misión de la seguridad es reducir la probabilidad de impacto material de un ciberevento. La eliminación completa de las brechas no es un objetivo empresarial práctico, por lo que las estrategias de seguridad deben alinearse con los objetivos empresariales y el apetito de riesgo.
- La relación calidad-seguridad: La seguridad no puede superar la calidad del software. Las cualidades que hacen que el software sea fácil de entender, cambiar, probar y observar son las mismas cualidades que hacen posible asegurarlo. La inversión en calidad de ingeniería es una inversión en seguridad.
- Seguridad centrada en el desarrollador: Capacitar a los ingenieros de software para construir sistemas asegurables utilizando principios de ingeniería de software familiares, en lugar de exigirles que adopten la mentalidad de un pentester.
- SSEM como lenguaje de diseño común: Utilizar términos consolidados de la ingeniería de software (p. ej., Analizabilidad, Modificabilidad, Testabilidad) para definir y discutir los atributos de seguridad. Esto hace que la seguridad sea accesible para los desarrolladores y proporciona a los profesionales de la seguridad una base compartida para la evaluación.
- Alinear la seguridad con los objetivos de desarrollo y de negocio: La seguridad y el desarrollo son complementarios, no antagónicos. AppSec participa tempranamente en el SDLC, particularmente durante la recopilación de requisitos y la planificación de funcionalidades, de modo que las expectativas sean explícitas antes de escribir el código.
- El principio de transparencia: Los sistemas se diseñan de modo que las partes autorizadas puedan comprender el estado interno y el comportamiento. El registro estructurado, la instrumentación y las pistas de auditoría se incorporan en el código en lugar de ser proporcionados únicamente por herramientas externas.
- El principio de la mínima sorpresa: Los sistemas se comportan de maneras intuitivas y predecibles para los usuarios, desarrolladores y administradores. La previsibilidad facilita el análisis, reduce la carga cognitiva y hace claros los límites de confianza.
- Los requisitos como ciudadano de primera clase en AppSec: Las Características de Seguridad, los Escenarios de Amenaza y los Criterios de Aceptación de Seguridad se entregan a través del proceso de requisitos. Las vulnerabilidades suelen remontarse a una expectativa que nunca se especificó, por lo que esa brecha pertenece al proceso de requisitos.