PLT 02 Politica Desarrollo Seguro v10
PLT 02 Politica Desarrollo Seguro v10
PLT 02 Politica Desarrollo Seguro v10
CONTROL DE VERSIONES
Versión
Resumen de
Fecha de Autor Revisado Aprobado
Nº modificaciones
Aprobación
INGENIERÍA Y
1.0 05/06/2023 Creación del documento CISO CE
SOLUCIONES
Índice
ÍNDICE ............................................................................................................................................................... 3
1 INTRODUCCIÓN .......................................................................................................................................... 4
2 OBJETO Y ÁMBITO DE APLICACIÓN .......................................................................................................... 5
3 NORMATIVA APLICABLE ............................................................................................................................. 6
4 RESPONSABILIDADES .................................................................................................................................. 7
5 DEFINICIONES .............................................................................................................................................. 8
6 DESARROLLO ............................................................................................................................................... 9
6.1 Consideraciones generales (Principios para un desarrollo seguro).............................................. 9
6.1.1 Interés general: desarrollo seguro .......................................................................................... 9
6.1.2 un diseño limpio y sostenible .................................................................................................. 9
6.1.3 Entornos de desarrollo seguro .............................................................................................. 10
6.1.4 Repositorio de código securizado ....................................................................................... 10
6.1.5 Canalización segura de compilación e implementación................................................ 10
6.1.6 Pruebas de seguridad continuas ......................................................................................... 10
6.1.7 Informes continuos ................................................................................................................. 11
6.2 Definición de funciones .................................................................................................................... 11
6.3 Gestión de la seguridad del proyecto ........................................................................................... 13
6.3.1 Funciones involucradas ......................................................................................................... 13
6.3.2 Requisitos de seguridad del proyecto ................................................................................. 13
6.3.3 Riesgos del proyecto debido a requisitos de seguridad ................................................... 14
6.4 Desarrollo seguro para software ..................................................................................................... 14
6.4.1 Funciones involucradas ......................................................................................................... 14
6.4.2 Requisitos de código ............................................................................................................. 14
6.4.3 Calidad y sencillez del código ............................................................................................. 15
6.4.4 Repositorio de código seguro .............................................................................................. 17
6.4.5 Proteger la canalización de compilación e implementación ......................................... 17
6.5 Redes y sistemas operativos seguros .............................................................................................. 19
6.5.1 Funciones involucradas ......................................................................................................... 19
6.5.2 Requisitos de seguridad ........................................................................................................ 19
6.6 Desarrollo seguro para hardware ................................................................................................... 20
6.6.1 Funciones involucradas ......................................................................................................... 20
6.6.2 Requisitos de seguridad ........................................................................................................ 20
6.7 Herramientas y entornos de desarrollo seguros ............................................................................ 21
6.7.1 Funciones involucradas ......................................................................................................... 21
6.7.2 Entornos y herramientas de desarrollo ................................................................................ 21
6.8 Almacenamiento y manipulación seguros de datos ................................................................... 22
6.8.1 Funciones involucradas ......................................................................................................... 22
6.8.2 Almacenamiento y manipulación de datos ...................................................................... 22
7 REGISTROS Y ARCHIVO ............................................................................................................................ 24
1 Introducción
En el plan se describen las actividades y funciones que se deberán implantar durante el desarrollo
del proyecto para que se ajuste al ciclo de vida de desarrollo del sistema seguro (SSDLC, por sus
siglas en inglés). En este estándar del ciclo de vida de desarrollo del sistema seguro se establecen
los requisitos de seguridad que deben tenerse en cuenta y aplicarse en cada SSDLC.
Los requisitos seguros (y sus casos de prueba asociados) se refieren a los siguientes aspectos del
sistema:
• software;
• hardware;
• entornos y herramientas de desarrollo;
• información/Almacenamiento y manipulación de datos;
• acceso físico a la infraestructura.
Para trabajar de manera efectiva, los requisitos del sistema constituyen el elemento principal y se
identifican y tratan como parte del SSDLC.
La seguridad de la información es el segundo pilar y se tiene en cuenta e integra en cada fase del
SSDLC.
Este plan se aplica a Grupo Oesía, a sus filiales y a sus subcontratistas.
3 Normativa aplicable
Es aplicable toda la normativa establecida en el documento ORG-01-02_Marco Normativo, que se
actualizara de forma periódica
4 Responsabilidades
Las responsabilidades del Sistema de Gestión de Seguridad de la Información se recogen en:
• ORG-01-01_Política de Seguridad de la información del Grupo Oesía
5 Definiciones
Consultar MS-01 MANUAL DE TERMINOLOGÍA DEL SGSI
6 Desarrollo
6.1 Consideraciones generales (Principios para un desarrollo seguro)
El criterio general adoptado por el Grupo Oesía para el desarrollo de proyectos afectados por
restricciones de seguridad es incorporar los requisitos de seguridad (donde consideramos los
requisitos para todas las dimensiones del proyecto: diseño, desarrollo, pruebas,
construcción/fabricación, implementación, etc.) en el estándar regular del ciclo de vida de
desarrollo de sistema (DDESIGN) de Oesía, que se convierte en un ciclo de vida de desarrollo del
sistema seguro (SSDLC, por sus siglas en inglés).
Este enfoque consiste en incorporar en cada fase de desarrollo del proyecto, ya sea un proyecto
tradicional en cascada o un proyecto desarrollado con técnicas ágiles, los requisitos de seguridad,
que se consideran, prueban y validan como cualquier otro requisito del proyecto, de manera que
así se garantiza que la seguridad esté integrada en el desarrollo del proyecto desde el principio en
cualquier extensión o dimensión del proyecto.
A lo largo de todo el plan se han tenido en cuenta las siguientes consideraciones:
Todos los participantes en el proyecto reciben formación de forma periódica sobre los requisitos de
seguridad para mantener sus conocimientos sobre seguridad actualizados.
Producir
Con el fin de evitar la complejidad, se utilizarán siempre que sea posible diseños sencillos y
sostenibles (software y hardware), mediante arquitecturas conocidas y buenas prácticas (principio:
la complejidad es enemiga de la seguridad).
El código sigue la normativa de codificación del Grupo Oesía para así asegurar unas buenas
prácticas de codificación, sostenibilidad y futuras ampliaciones. Estos mismos principios deben
seguirlos todos los proveedores externos.
Tanto el hardware como el software deberán cumplir los requisitos de seguridad establecidos como
base para todos los productos desarrollados por Grupo Oesía con requisitos de desarrollo seguros;
véanse los Requisitos comunes para el desarrollo de software seguro, Requisitos comunes para el
desarrollo de hardware seguro y Requisitos comunes para la securización del sistema operativo
(estos documentos son accesibles solo para quienes cuenten con el nivel de clasificación
apropiado y una autorización específica otorgada por Grupo Oesía, debido a su contenido
sensible: contenido de clasificación militar y contenido de derechos de propiedad intelectual)
Los entornos de desarrollo, así como las herramientas empleadas para el desarrollo, han sido
homologados y revisados por el CISO de Grupo Oesía.
Si, por cualquier motivo, la seguridad se reduce temporalmente para simplificar un paso concreto
en el desarrollo, se crea una nueva tarea marcada como "deuda de seguridad". Una vez finalizado
el desarrollo en cuestión, se abordan, cierran y prueban las deudas de seguridad (los casos de
prueba aseguran que no se permite ningún fallo)
El repositorio de documentación y código fuente siempre está protegido por las credenciales de la
empresa para cada empleado y queda registrado quién ha realizado cada cambio y cuándo. La
política de credenciales de los empleados se establece en los documentos ORG-01-01_Política de
Seguridad de la Información y PRO-OP.EXP.2.1 Configuración y acceso a redes y sistemas
Las auditorías internas se realizan aleatoriamente (al menos una vez cada seis meses) y se examinan
los siguientes aspectos de la seguridad del proyecto:
• acceso a las instalaciones;
• acceso a los entornos y a la infraestructura de desarrollo;
En el Grupo Oesía se tendrán en cuenta las funciones que se indican a continuación para el
desarrollo de cualquier sistema. Según el alcance del sistema, no estarán involucradas todas las
funciones:
Función Descripción
Comité de seguridad de la Se encarga de proporcionar formación de forma periódica sobre
información del Grupo seguridad/protección a todos los miembros del personal, formación
Oesía especializada en seguridad/protección al personal seleccionado,
actualizar el manual de seguridad, supervisar el mantenimiento
adecuado de todo el equipo de seguridad/protección e implantar
todos los procedimientos de seguridad/protección que sean
necesarios.
CISO Se encarga de la seguridad general de los sistemas de información
de una organización, incluido el desarrollo y la implantación de
El primer requisito que hay que cumplir cuando se inicia un nuevo proyecto es identificar y evaluar
todas las vulnerabilidades del mismo. El gestor del proyecto y el especialista en ciclo de vida de
desarrollo seguro son los encargados de crear una matriz de vulnerabilidades para el proyecto, así
como de su priorización y asignación al personal correspondiente para su gestión.
A la hora de priorizar las vulnerabilidades detectadas, se tiene en cuenta el equilibrio entre riesgo y
beneficio. En caso de desacuerdo entre el gestor del proyecto y el especialista en ciclo de vida de
desarrollo seguro, el comité de seguridad de la información de Grupo Oesía tiene la última palabra.
Las vulnerabilidades identificadas sirven para determinar los requisitos de seguridad que se deben
incluir en el proyecto. Estos requisitos se tratan a lo largo del proyecto como cualquier otro requisito
del proyecto, incluidas sus pruebas y validación.
Una vez que se han establecido las vulnerabilidades del proyecto, el especialista en ciclo de vida
de desarrollo seguro realiza un estudio de riesgos como parte de la identificación de riesgos del
proyecto descrita en el documento “RGS-OP.PL.1.2 Plan de Tratamiento de Riesgos”.
• CiSO
• Especialista en ciclo de vida de desarrollo seguro
• Ingeniero de software seguro del proyecto
• Ingeniero de proyecto DevSecOps
Todos los proyectos parten por defecto de una base de datos común de desarrollo de código
seguro, tal como se especifica en el documento Requisitos comunes para el desarrollo de software
seguro, en el que los requisitos de seguridad se describen como una obligación que debe cumplir
el código fuente. En cada proyecto, estos requisitos se ajustan en función de su alcance. Ej.: si un
proyecto no está basado en la web, se eliminarán todos los requisitos de seguridad que afecten a
los formularios web.
Cada requisito aplicable tiene casos de prueba asociados para controlar que el proyecto cumple
correctamente el requisito.
Análisis estático. Análisis del código para identificar problemas o configuraciones incorrectas
(entradas no validadas, verificación de límites de memoria insuficientes, reglas de cortafuegos
configuradas incorrectamente, etc.).
En las fases de diseño de cada proyecto con requisitos de seguridad, siempre participa un experto
interno en seguridad y los diseños del proyecto debe aprobarlos oficialmente el experto en
seguridad antes de continuar con el desarrollo, tanto si se trata de un proyecto desarrollado con el
modelo en cascada como si se ha seguido el modelo iterativo.
Los requisitos de seguridad se establecen al comienzo del proyecto y, si para el desarrollo del
proyecto se ha elegido el modelo iterativo, los requisitos de seguridad se verifican en cada iteración
del proyecto. Según la clasificación de los requisitos, se deberá establecer un acuerdo con el cliente
para el empleo de datos reales durante las fases de prueba del sistema. Para cada proyecto se
deberá establecer en el documento de descripción del entorno la política acordada para el
proyecto.
Cada implementación, como parte de la política de integración continua del Grupo Oesía, se
somete a casos de prueba de seguridad aplicables a la iteración en curso, lo que garantiza la
seguridad de cada implementación. Si la iteración muestra algún problema de seguridad
(detectado durante el procedimiento de prueba de seguridad como parte del proceso de
integración continua). Según la gravedad de la violación (que analiza el experto en seguridad del
proyecto), se puede llegar a detener la implantación y a no implantar una nueva versión hasta que
se resuelva el problema de seguridad.
Al comienzo del proyecto, se identifican y establecen los KPI de calidad del software para su
verificación en cada iteración; de manera que así se asegura la calidad del código.
Cada diseño de arquitectura de software se documenta mediante diagramas UML simples antes
de escribir el código. Cada bloque de código habrá delineado sus responsabilidades. Se
garantizará la trazabilidad del diseño hasta el código al menos a nivel de función.
Por diseño, las credenciales secretas, como las contraseñas y las claves privadas, se aislarán
lógicamente de la base del código principal, para evitar así que se registren en repositorios de
códigos públicos. No se permiten credenciales de codificación fija en el código fuente.
Los principios SOLID (por sus siglas en inglés) son obligatorios durante las fases de diseño (si resultan
aplicables):
• S - Single Responsibility (Responsabilidad única) Una clase por comportamiento
• O - Open-Closed (Abierto-cerrado) Las clases estarán abiertas para ampliación, pero
cerradas para modificación
• L - Liskov Substitution (Sustitución de Liskov). Si S es un subtipo de T, entonces los objetos de
tipo T en un programa pueden reemplazarse con objetos de tipo S sin alterar ninguna de las
propiedades deseables de ese programa
Dependencias externas
Los marcos y bibliotecas de codificación de terceros también son probados y aprobados por el
experto en seguridad del proyecto antes de utilizarlos en el código desarrollado por cualquier
empresa del Grupo Oesía.
Al comienzo de cada proyecto, se identificarán y enumerarán los marcos, bibliotecas y
componentes de terceros para su análisis. Los desarrollos de terceros que ya se consideren de
confianza porque se han utilizado en desarrollos anteriores del Grupo Oesía tendrán preferencia
frente a proveedores terceros que no se hayan utilizado previamente en desarrollos del Grupo
Oesía; para nuevos desarrollos/proveedores externos, el conjunto completo de pruebas se realizará
en bibliotecas/componentes externos seleccionados para comprobar su idoneidad. Los informes
de prueba se almacenarán y configurarán para usarlos posteriormente si es necesario.
A los desarrollos de terceros se les aplicarán los estándares de calidad y sencillez definidos para el
proyecto (y así se indicará en sus respectivos SOW), donde se considera motivo de rechazo de los
colaboradores externos el incumplimiento de los requisitos de calidad y sencillez establecidos en el
El código es tan seguro como los sistemas que se utilizan para crearlo, por lo que es esencial que el
repositorio sea lo suficientemente seguro.
El acceso al repositorio de código está protegido con las credenciales proporcionadas por el Grupo
Oesía para acceder a cualquier infraestructura de la empresa, por lo que se aplica la misma política
de seguridad para las credenciales (seguridad de la contraseña, cambio de contraseña, registro
de actividad, etc.). Cualquier actividad que se realice en el repositorio de código fuente se registra
(usuario, fecha y recursos a los que se ha accedido) y se documenta obligatoriamente.
Los proyectos pueden seleccionar entre subversión o git (o ambos, según la naturaleza del
documento que se debe configurar) como herramienta de configuración.
Los repositorios para los proyectos reservados, en función de su clasificación, se almacenan en salas
aisladas cuyo acceso físico está permitido únicamente a quienes trabajan en el proyecto y tienen
necesidad de conocer (véanse los documentos MS-03. Manual de políticas de seguridad y PES-
09.02. Gestión del acceso de usuarios).
Las máquinas que no están en la misma red con el mismo nivel de clasificación asignado al proyecto
no tienen acceso al repositorio de código. Las máquinas externas no asignadas al proyecto no
pueden acceder a repositorios distintos a los asignados al proyecto, aunque tengan el mismo nivel
de clasificación.
Se realiza una copia de seguridad de forma automática de los repositorios de código de acuerdo
con la política del Grupo Oesía (véase el documento PRO-MP.INFO.6.1 Copias de Respaldo y
Recuperación de Información).
La integración, entrega e implementación continuas son los estándares del Grupo Oesía para la
compilación, prueba e implementación de sistemas.
Solo el proyecto DevOps (y aquellos en quienes DevOps delega) está autorizado para acceder a
los scripts de integración continua del proyecto. El acceso a los servidores y licencias de integración
continua se otorga a través de las credenciales corporativas de acuerdo con la política corporativa
de renovación y seguridad de credenciales.
La canalización para el proceso de integración continua cumple el estándar establecido para el
procedimiento de desarrollo del Grupo Oesía (véase el documento INS.DEV.TBT305.v01.
Configuración del proceso de integración continua para proyectos):
Cada commit inicia automáticamente la creación de código, las pruebas de sistema (incluidas las
pruebas de casos para los requisitos de seguridad) y las métricas de calidad y se asegura siempre
que cada lanzamiento cumpla con los requisitos de seguridad y calidad establecidos para el
proyecto.
Cualquier brecha detectada durante las pruebas automáticas se documenta y puede llegar a
detener el despliegue de la versión en función de la gravedad de la brecha detectada, según los
criterios establecidos para el proyecto y según los criterios del experto en seguridad del proyecto.
La herramienta de código abierto (Jenkins) se emplea para la integración continua de manera que
se asegura la capacidad de inspeccionar el código de la herramienta. El acceso a Jenkins está
regulado mediante el uso de credenciales corporativas; solo pueden acceder a la máquina Jenkins
quienes tienen necesidad de conocer y acceso a la canalización de integración continua.
Por defecto, como parte del proceso de implementación, cada software se firma digitalmente con
una firma digital en el ejecutable, programa o archivo de software que se está implementando. El
certificado digital garantiza que el software no se ha manipulado y se puede utilizar de forma
segura. Solo el responsable técnico del proyecto podrá autorizar la firma del código.
El CSO de la empresa mantiene un inventario con las claves de firma de código, donde indica las
firmas que se han generado y dónde se ha instalado/implementado el software.
• CISO
• Especialista en ciclo de vida de desarrollo seguro
• Ingeniero de proyecto DevSecOps
• Ingeniero de software seguro del proyecto
El responsable de seguridad supervisará los requisitos establecidos como criterio común para los
sistemas operativos involucrados en el desarrollo e implementaciones del proyecto desarrollado por
Grupo Oesía.
El repositorio de requisitos comunes para los sistemas operativos se describe en el documento
Requisitos comunes para la securización del sistema operativo.
Como mínimo, se deberán identificar, documentar y validar los siguientes aspectos para los sistemas
operativos incluidos en el proyecto
• supervisa que solo estén abiertos los puertos necesarios para las comunicaciones.
• El firmware se actualizará a su última versión. Si por algún motivo se debe congelar la versión
del firmware, se deberá elaborar al menos un documento de decisión en el que se indique
el motivo por el que no se ha actualizado el firmware a su última versión.
• Desactivación de usuarios predeterminados (y sus contraseñas asociadas)
• No se permitirán configuraciones de depuración en desarrollos implementados para el
cliente final.
• Configuración de cortafuegos, equipos IDS, segmentación de redes, etc.
Métodos de autenticación empleados: políticas de contraseñas establecidas
específicamente para el proyecto (fortaleza de las contraseñas, reutilización de
contraseñas, periodicidad de cambio de contraseñas, etc.). Las técnicas específicas para
garantizar la autenticación desde la perspectiva del código se recogen en el apartado 6.4.2
Requisitos de código. Por defecto, todas las contraseñas estarán cifradas.
Se elaborará para el proyecto un “mapa de autorización” en el que se indicará el acceso
previsto para las funciones establecidas para cada funcionalidad del sistema. Por defecto,
a los usuarios (entendidos como personas físicas y/o cualquier otro sistema/aplicación que
acceda a las capacidades del sistema) se les asignará el acceso mínimo necesario para
llevar a cabo sus responsabilidades. Los permisos se otorgarán por defecto a las funciones,
nunca directamente a los usuarios finales.
• CISO
• Especialista en ciclo de vida de desarrollo seguro
• Ingeniero de hardware seguro del proyecto
• CISO
• Ingeniero jefe
• Especialista en ciclo de vida de desarrollo seguro
• Gestor del proyecto
Los entornos de desarrollo se describen y diseñan durante las primeras fases del proyecto (durante
la fase SRR en el caso de proyectos en cascada o se incluyen en las primeras iteraciones en el caso
del desarrollo iterativo). Por regla general, se implementan tres entornos diferentes.
• Entorno de desarrollo. Este entorno incluye todas las herramientas de diseño y desarrollo
necesarias para el desarrollo del sistema.
• Entorno de preproducción. Este entorno incluye solo artefactos desplegables (SW y HW) y
herramientas de prueba. En este entorno no se permiten herramientas de diseño ni de
desarrollo. En este entorno se superan todas las pruebas establecidas durante las fases de
diseño y desarrollo (incluidas las pruebas de resistencia) que garantizan el correcto
funcionamiento del sistema.
• Entorno de producción. En este entorno solo se permiten artefactos de producción probados
previamente en el entorno de preproducción, junto con herramientas de supervisión.
Los lenguajes, los marcos (IDE, compiladores) y las pilas de tecnología utilizadas en el entorno de
desarrollo los ha aprobado previamente el CISO del Grupo Oesía. Siempre que es posible, se utilizan
componentes de seguridad establecidos y bien probados en el entorno de desarrollo en lugar de
utilizar otros no aprobados que podrían incorporar nuevas brechas. En caso de que el proyecto
Política de Desarrollo Seguro 21
PROCEDIMIENTO PLT-02 V1.0
• CISO
• Especialista en ciclo de vida de desarrollo seguro
• Gestor del proyecto
7 Registros y Archivo
Se consideran registros de seguridad los siguientes:
28251 – Madrid,
http://www.oesia.com