1. Introducción y conceptos generales de la arquitectura de la seguridad informática.
2. Requisitos funcionales
2.1. Se definen un conjunto de requisitos funcionales de seguridad que puede necesitar una aplicación:
2.1.1. 1.- Auditoría de Seguridad
2.1.2. 2.- No Rechazo (Non-repudiation)
2.1.3. 3.- Soporte Criptográfico
2.1.4. 4.- Protección de datos de usuario
2.1.5. 5.- Identificación y autenticación
2.1.6. 6.- Gestión de seguridad
2.1.7. 7.- Privacidad
2.1.8. 8.- Autodefensa
2.1.9. 9.- Utilización de recursos
2.1.10. 10.- Control de acceso
2.1.11. 11.- Rutas o canales fiables
3. La seguridad de un producto desarrollado se orienta a la búsqueda de que dicho producto continúe funcionando correctamente ante ataques maliciosos. La seguridad del Software en construcción se orienta a la resistencia proactiva de posibles ataques
4. Entorno y objetivos de seguridad
4.1. Se define un conjunto de objetivos de seguridad, demostrando que con ellos se combaten las amenazas y se cumplen las políticas.
4.1.1. Es identificar el entorno de seguridad: ¿En qué entorno vamos a trabajar? ¿Qué activos debemos proteger? ¿Para que se va a usar el producto?
4.2. fv
5. La importancia de contar con una estrategia de ciberseguridad al usar IoT
6. 4.- Llamadas a recursos externos: bibliotecas, scripts.
7. Identificación de requisitos de seguridad
7.1. Para identificar y definir requisitos de seguridad. Se suele emplear para redactar dos tipos de documentos :
7.1.1. Perfil de protección (Protección Profile o PP) : Es un documento que define las propiedades de seguridad que se desea que tenga un producto.
7.1.2. Objetivo de seguridad (Security Target o ST): Es un documento que describe lo que hace un producto que es relevante.
8. Desarrollo de aplicaciones seguras
8.1. Desarrollo de aplicaciones seguras, metodologías más comunes y confiables.
8.2. Para desarrollar una aplicación segura deberemos tener en cuenta los siguientes aspectos:
8.2.1. 1.-Control de la Entrada: Validar todas las entradas.
8.2.2. 2.- Gestión de Memoria: Desbordamiento de buffers.
8.2.3. 3.- Estructura interna y diseño del programa.
8.2.4. 5.- Control de la salida: formato, restricciones.
8.2.5. 6.- Problemas de los lenguajes de programación.
8.2.6. 7.-Otros: Algoritmos criptográficos, de autentificación.