| Nota de contenido con formato |
Capítulo 1. Introducción al desarrollo seguro:<br/>1.1. Propiedades del software seguro,<br/>1.2. Principios de diseño seguro de aplicaciones,<br/>1.2.1. Minimizar el área de la superficie de ataque,<br/>1.2.2. Seguridad por defecto,<br/>1.2.3. Privilegios mínimos,<br/>1.2.4. Validación de datos de entrada,<br/>1.2.5. Defensa en profundidad,<br/>1.2.6. Control seguro de errores,<br/>1.2.7. Separación de funciones,<br/>1.2.8. Evitar la seguridad por oscuridad,<br/>1.3. Análisis de requisitos de seguridad.<br/>- Capítulo 2. Aspectos fundamentales de desarrollo seguro:<br/>2.1. Controles proactivos,<br/>2.2. OWASP (Open Web Application Security Project),<br/>2.3. OWASP Mobile Security Project,<br/>2.4. Controles proactivos OWASP,<br/>2.4.1. Verificación de la seguridad desde las primeras etapas de desarrollo,<br/>2.4.2. Validación de las entradas del cliente,<br/>2.4.3. Desbordamientos del búfer,<br/>2.4.4. Gestión de sesiones,<br/>2.4.5. Implementación de controles de acceso,<br/>2.4.6. Implementación de controles de identidad y autenticación,<br/>2.4.7. Autenticación por múltiples factores,<br/>2.4.8. Manejo de errores y excepciones,<br/>2.5. Ataques en aplicaciones web,<br/>2.5.1. Vectores de ataque,<br/>2.5.2. Cross-site scripting (XSS),<br/>2.5.3. Cross-site request forgery (CSRF),<br/>2.5.4. Seguridad en las redirecciones,<br/>2.6. SQL Injection: parametrización de las consultas en bases de datos,<br/>2.6.1. Introducción a SQL Injection,<br/>2.6.2. Problemas que pueden causar este tipo de ataques,<br/>2.6.3. Ejemplo de inyección de SQL,<br/>2.6.4. Escapar caracteres especiales utilizados en las consultas SQL,<br/>2.6.5. Delimitación de los valores de las consultas,<br/>2.6.6. Uso de sentencias preparadas parametrizadas,<br/>2.6.7. Uso de procedimientos almacenados,<br/>2.7. Seguridad en AJAX.<br/>- Capítulo 3. Herramientas OWASP:<br/>3.1. DefectDojo,<br/>3.2. SonarQube,<br/>3.2.1. El cuadro de mando de SonarQube,<br/>3.2.2. Issues por nivel de criticidad,<br/>3.2.3. Perfiles de calidad,<br/>3.2.4. Reglas SonarQube,<br/>3.2.5. Informes de seguridad en SonarQube,<br/>3.2.6. SonarQube Plugins,<br/>3.2.7. Vulnerabilidades más comunes y explotadas,<br/>3.3. Find Security Bugs,<br/>3.3.1. Inyección potencial de Android SQL,<br/>3.3.2. Abrir un socket sin cifrar,<br/>3.4. LGTM,<br/>3.5. OSS Index,<br/>3.6. Snyk,<br/>3.7. Otras herramientas de análisis estático,<br/>3.8. Checklist de seguridad.<br/>- Capítulo 4. Seguridad en aplicaciones Android:<br/>4.1. Introducción al protocolo HTTPS,<br/>4.1.1. Conceptos básicos sobre certificados,<br/>4.1.2. Despliegues en producción,<br/>4.1.3. Certificado de servidor autofirmado,<br/>4.1.4. CA no encontrada dentro de la cadena de certificados,<br/>4.1.5. Configuración de seguridad,<br/>4.1.6. Actualización de proveedores criptográficos,<br/>4.1.7. Android Certificate Pinning,<br/>4.1.8. Cifrado extremo a extremo,<br/>4.1.9. Firmando una aplicación Android,<br/>4.2. Principios fundamentales de desarrollo en Android,<br/>4.2.1. Componentes en Android,<br/>4.2.2. Android Lint,<br/>4.3. Ingeniería inversa en Android,<br/>4.3.1. ADB (Android Debug Bridge),<br/>4.3.2. Dex2jar,<br/>4.3.3. JD-GUI,<br/>4.3.4. jadx - Dex to Java decompiler,<br/>4.3.5. Apktool,<br/>4.3.6. Código smali y Mobylizer,<br/>4.3.7. Androwarn,<br/>4.3.8. Mobile Security Framework (MobSF),<br/>4.3.9. ClassyShark,<br/>4.3.10. Drozer,<br/>4.3.11. QARK,<br/>4.3.12. SanDroid,<br/>4.3.13. Yaazhini,<br/>4.4. Buenas prácticas de desarrollo seguro en Android,<br/>4.4.1. Seguridad en AndroidManifest.xml,<br/>4.4.2. Modelo de permisos en Android,<br/>4.4.3. Asegurando la capa de aplicación,<br/>4.4.4. Evitar almacenar datos confidenciales en el dispositivo,<br/>4.4.5. Uso adecuado del componente WebView,<br/>4.4.6. Usar método POST para el envío de datos confidenciales,<br/>4.4.7. Validar los certificados SSL/TLS,<br/>4.4.8. Restricción de uso de la aplicación a determinados dispositivos,<br/>4.4.9. Gestión de logs,<br/>4.4.10. Comprobar la conexión de red,<br/>4.4.11. Realizar operaciones de red en un hilo separado,<br/>4.4.12. Permisos de localización,<br/>4.4.13. Optimizar el código en Android y memoria caché,<br/>4.4.14. Implementación segura de proveedores de contenido,<br/>4.4.15. Almacenamiento de preferencias compratidas (SharedPreferences),<br/>4.4.16. Almacenamiento seguro de preferencias,<br/>4.4.17. Almacenamiento en ficheros,<br/>4.4.18. Almacenamiento externo,<br/>4.4.19. Almacenamiento segura de Intents,<br/>4.4.20. Almacenamiento segura de servicios,<br/>4.4.21. Almacenamiento segura de broadcast receivers,<br/>4.4.22. Almacenamiento segura de content providers,<br/>4.4.23. Invocar actividades de forma segura,<br/>4.4.24. Implementar almacenamiento de datos seguro,<br/>4.4.25. Algoritmos criptográficos,<br/>4.4.26. Uso de java.util.String para almacenar información sensible,<br/>4.4.27. Proteger la configuración de la aplicación,<br/>4.4.28. Cifrado en base de datos SQLite,<br/>4.4.29. Optimización y ofuscación del código con ProGuard,<br/>4.5. Metodologías OASAM.<br/><br/>- Capítulo 5. Seguridad en proyectos NodeJS:<br/>5.1. Introducción a NodeJS,<br/>5.2. Modelo Event-Loop,<br/>5.3. Gestión de paquetes,<br/>5.4. Programación asíncrona,<br/>5.5. Problema del código piramidal,<br/>5.6. Módulo para administrar el sistema de archivos,<br/>5.7. Módulo http,<br/>5.8. Utilización del Middleware Express,<br/>5.8.1. Middleware de nivel de aplicación,<br/>5.8.2. Middleware de nivel de direccionamiento,<br/>5.8.3. Middleware de terceros,<br/>5.9. Autenticación de NodeJS,<br/>5.9.1. Auth0,<br/>5.9.2. PassportJS,<br/>5.10. OWASP top en NodeJS,<br/>5.10.1. OWASP NodeGOAT,<br/>5.10.2. Inyección de código,<br/>5.10.3. Función eval,<br/>5.10.4. Ataque de denegación de servicio,<br/>5.10.5. Uso de patrones y expresiones regulares,<br/>5.10.6. Acceso al sistema de ficheros,<br/>5.10.7. Inyección de SQL,<br/>5.10.8. Inyección de NoSQL,<br/>5.10.9. Inyección de logs,<br/>5.10.10. Gestión de la sesión y autenticación,<br/>5.10.11. Protegiendo credenciales de usuarios,<br/>5.10.12. Tiempos de espera de sesión y protección de cookies,<br/>5.10.13. Secuestro de sesión (Session hijacking)<br/>5.10.14. Módulo helmet,<br/>5.10.15. Cross-site scripting (XSS),<br/>5.10.16. Referencias de objetos directos inseguros,<br/>5.10.17. Mala configuración de seguridad,<br/>5.10.18. Deshabilitar fingerprinting,<br/>5.10.19. Exposición de datos sensibles,<br/>5.10.20. Configuración SSL/TLS,<br/>5.10.21. Forzar peticiones HTTPS,<br/>5.10.22. Falta de control de acceso,<br/>5.10.23. Redirecciones no validadas,<br/>5.10.24. Denegación de servicio mediante expresiones regulares,<br/>5.10.25. Validar datos de entrada con validator,<br/>5.10.26. Validar datos de entrada con express-validator,<br/>5.10.27. Configuración de cabeceras HTTP,<br/>5.10.28. Política de seguridad de contenido (CSP),<br/>5.10.29. Cross-site request forgery (CSRF),<br/>5.10.30 Ejecutar código JavaScript de forma aislada,<br/>5.10.31. Eso de componentes con vulnerabilidades conocidas,<br/>5.10.32. NodeJsScan.<br/><br/>- Capítulo 6. Seguridad en proyecto Python,<br/>6.1. Componentes inseguros en Python,<br/>6.2. Validación incorrecta de entrada/salida,<br/>6.3. Función eval0,<br/>6.4. Serialización y deserialización de datos con pickle,<br/>6.5. Ataques de inyección de entrada,<br/>6.5.1. Inyección de comandos,<br/>6.5.2. Inyección de SQL,<br/>6.6. Acceso seguro al sistema de archivos y ficheros temporales,<br/>6.7. Inyección de XSS,<br/>6.8. Inyección de SSTI,<br/>6.9. Servicios para comprobar la seguridad de proyectos Python,<br/>6.9.1. Pyunp,<br/>6.9.2. LGTM en proyectos Python,<br/>6.9.3. Sanitización de las URL,<br/>6.9.4. Uso de un algoritmo criptográfico roto o débil,<br/>6.9.5. Peticiones con resquest sin validación de certificado,<br/>6.9.6. Uso de la versión insegura SSL/TLS,<br/>6.9.7. Deserialización de entrada no confiable,<br/>6.9.8. Vulnerabilidades de XSS,<br/>6.9.9. Exposición de información a través de una excepción,<br/>6.9.10. Conexión con hots remotos mediante SSH utilizando Paramiko,<br/>6.10. Análisis estático de código Python,<br/>6.10.1. Python Taint,<br/>6.10.2. Bandit,<br/>6.10.3. Hawkeye,<br/>6.10.4. DLint,<br/>6.11. Gestión de dependencias,<br/>6.11.1. Instalación de dependencias,<br/>6.11.2. Requires.io,<br/>6.11.3. Safety,<br/>6.11.4. Paquetes maliciosos en PyPI,<br/>6.12. Python code checkers,<br/>6.12.1. Pyflakes,<br/>6.12.2. PyLint,<br/>6.13. Escáner de seguridad de aplicaciones web,<br/>6.13.1. WAScan,<br/>6.13.2. SQLmap,<br/>6.13.3. XSScrapy,<br/>6.14. Seguridad en Django,<br/>6.14.1. Protección ante ataques XSS,<br/>6.14.2. Protección ante ataques CSRF,<br/>6.14.3. Protección ante inyección de SQL,<br/>6.14.4. Protección de clickjacking,<br/>6.14.5. SSL/HTTPS,<br/>6.15. Otras herramientas de seguridad,<br/>6.15.1. Yosai,<br/>6.15.2. Flask-Security,<br/>6.15.3. OWASP Python Security Project.<br/><br/>- Capítulo 7. Análisis estático y dinámico en aplicaciones c/c++:<br/>7.1. Análisis estático,<br/>7.1.1. Code Analyzer,<br/>7.2. Análisis estático de código C/C++,<br/>7.2.1. Flawfinder,<br/>7.2.2. Clang,<br/>7.2.3. Uso de variables sin inicializar,<br/>7.2.4. Uso inseguro de funciones,<br/>7.2.5. RATS,<br/>7.2.6. Vulnerabilidad cadena de formato (format string)<br/>7.2.7. Pscan para detectar vulnerabilidades format string,<br/>7.2.8. Buffer overflow,<br/>7.2.9. Tipos de heap overflow,<br/>7.2.10. Vulnerabilidad use after free,<br/>7.2.11. Dereference after free,<br/>7.2.12. Vulnerabilidad double free,<br/>7.2.13. Vulnerabilidad off by one,<br/>7.2.14. Vulnerabilidades race condition,<br/>7.2.15. Vulnerabilidad integer overflow,<br/>7.2.16. Uso de StackOverflow,<br/>7.3. Análisis dinámico,<br/>7.3.1. Análisis dinámico en C/C++ con Valgrind,<br/>7.4. Herramientas de análisis.<br/>- Capítulo 8. Metodologías de desarrollo,<br/>8.1. Metodologías de desarrollo de software seguro,<br/>8.1.1. Correctness by Construction (CbyC),<br/>8.1.2. Security Development Lifecycle (SDLC)<br/>8.1.3. Fases de la metodología SDLC,<br/>8.1.4. Vulnerabilidades en SDLC,<br/>8.1.5. Tipos de SDLC,<br/>8.1.5.1. Microsoft Trustworthy Computing SDL,<br/>8.1.5.2. CLASP,<br/>8.1.5.3. TSP-Secure,<br/>8.1.5.4. Oracle Software Security Assurance,<br/>8.1.5.5. Propuesta híbrida,<br/>8.1.6. Tipos de pruebas de seguridad SDLC,<br/>8.1.7. Conclusiones de ciclo de vida de desarrollo de software (SDLC),<br/>8.2. Modelado de amenazas ,<br/>8.2.1. Modelado de amenazas con STRIDE,<br/>8.3. Perspectiva del atacante,<br/>8.4. Patrones de ataque,<br/>8.5. OWASP Testing Framework y perfiles para pruebas de seguridad,<br/>8.6. OWASP Security Knowledge Framework (SKF),<br/>8.7. Seguridad en ingeniería del software,<br/>8.8. Bibliografía y fuentes de información,<br/>8.9. Conclusiones.<br/>- Capítulo 9. Glosario de términos.<br/> <br/> |