Ortega Candel, José Manuel

Desarrollo Seguro en Ingenieria del Software. Aplicaciones Seguras con Android, Nodejs, Python y C++ - 1A. ed - ESPAÑA MARCOMBO 2020 - 386 24.0

Capítulo 1. Introducción al Desarrollo Seguro
. -- 1.1 Propiedades del Software Seguro
. -- 1.2 Principios de Diseño Seguro de Aplicaciones
. -- 1.2.1 Minimizar el Área de la Superficie de Ataque
. -- 1.2.2 Seguridad por Defecto
. -- 1.2.3 Privilegios Mínimos
. -- 1.2.4 Validación de Datos de Entrada
. -- 1.2.5 Defensa en Profundidad
. -- 1.2.6 Control Seguro de Errores
. -- 1.2.7 Separación de Funciones
. -- 1.2.8 Evitar la Seguridad por Oscuridad
. -- 1.3 Análisis de Requisitos de Seguridad
. -- Capítulo 2. Aspectos Fundamentales de Desarrollo Seguro
. -- 2.1 Controles Proactivos
. -- 2.2 Owasp (Open Web Application Security Project)
. -- 2.3. Owasp Mobile Security Project
. -- 2.4 Controles Proactivos Owasp
. -- 2.4.1 Verificación de la Seguridad Desde las Primeras Etapas de Desarrollo
. -- 2.4.2 Validación de las Entradas del Cliente
. -- 2.4.3 Desbordamientos del Búfer
. -- 2.4.4 Gestión de Sesiones
. -- 2.4.5 Implementación de Controles de Acceso
. -- 2.4.6 Implementación de Controles de Identidad y Autenticación
. -- 2.4.7 Autenticación por Múltiples Factores
. -- 2.4.8 Manejo de Errores y Excepciones
. -- 2.5 Ataques en Aplicaciones Web
. -- 2.5.1 Vectores de Ataque
. -- 2.5.2 Cross-Site Scripting (Xss)
. -- 2.5.3 Cross-Site Request Forgery (Csrf)
. -- 2.5.4 Seguridad en las Redirecciones
. -- 2.6 Sql Injection: Parametrización de las Consultas en Bases de Datos
. -- 2.6.1 Introducción a Sql Injection
. -- 2.6.2 Problemas que Pueden Causar Este Tipo de Ataques
. -- 2.6.3 Ejemplo de Inyección de Sql
. -- 2.6.4 Escapar Caracteres Especiales Utilizados en las Consultas Sql
. -- 2.6.5 delimitación de los Valores de las Consultas
. -- 2.6.6 Uso de Sentencias Preparadas Parametrizadas
. -- 2.6.7 Uso de Procedimientos Almacenados
. -- 2.7 Seguridad en Ajax
. -- Capítulo 3. Herramientas Owasp
. -- 3.1 Defectdojo
. -- 3.2 Sonarqube
. -- 3.2.1 el Cuadro de Mando de Sonarqube
. -- 3.2.2 Issues por Nivel de Criticidad
. -- 3.2.3 Perfiles de Calidad
. -- 3.2.4 Reglas Sonarqube
. -- 3.2.5 Informes de Seguridad en Sonarqube
. -- 3.2.6 Sonarqube Plugins
. -- 3.2.7 Vulnerabilidades Más Comunes y Explotadas
. -- 3.3 Find Security Bugs
. -- 3.3.1 Inyección Potencial de Android Sql
. -- 3.3.2 Abrir un Socket Sin Cifrar
. -- 3.4 Lgtm
. -- 3.5 Oss Index
. -- 3.6 Snyk
. -- 3.7 Otras Herramientas de Análisis Estático
. -- 3.8 Checklist de Seguridad
. -- Capítulo 4. Seguridad en Aplicaciones Android
. -- 4.1 Introducción al Protocolo Https
. -- 4.1.1 Conceptos Básicos Sobre Certificados
. -- 4.1.2 Despliegues en Producción
. -- 4.1.3 Certificado de Servidor Autofirmado
. -- 4.1.4 Ca no Encontrada Dentro de la Cadena de Certificados
. -- 4.1.5 Configuración de Seguridad
. -- 4.1.6 Actualización de Proveedores Criptográficos
. -- 4.1.7 Android Certificate Pinning
. -- 4.1.8 Cifrado Extremo a Extremo
. -- 4.1.9 Firmando una Aplicación Android
. -- 4.2 Principios Fundamentales de Desarrollo en Android
. -- 4.2.1 Componentes en Android
. -- 4.2.2 Android Lint
. -- 4.3 Ingeniería Inversa en Android
. -- 4.3.1 Adb (Android Debug Bridge)
. -- 4.3.2 Dex2jar
. -- 4.3.3 Jd-Gui
. -- 4.3.4 Jadx - Dex To Java Decompiler
. -- 4.3.5 Apktool
. -- 4.3.6 Código Smali y Mobylizer
. -- 4.3.7 Androwarn
. -- 4.3.8 Mobile Security Framework (Mobsf)
. -- 4.3.9 Classyshark
. -- 4.3.10 Drozer
. -- 4.3.11 Qark
. -- 4.3.12 Sandroid
. -- 4.3.13 Yaazhini
. -- 4.4 Buenas Prácticas de Desarrollo Seguro en Android
. -- 4.4.1 Seguridad en Androidmanifest.Xml
. -- 4.4.2 Modelo de Permisos en Android
. -- 4.4.3 Asegurando la Capa de Aplicación
. -- 4.4.4 Evitar Almacenar Datos Confidenciales en el Dispositivo
. -- 4.4.5 Uso Adecuado del Componente Webview
. -- 4.4.6 Usar Método Post para el Envío de Datos Confidenciales
. -- 4.4.7 Validar los Certificados Ssl/Tls
. -- 4.4.8 Restricción de Uso de la Aplicación a Determinados Dispositivos
. -- 4.4.9 Gestión de Logs
. -- 4.4.10 Comprobar la Conexión de Red
. -- 4.4.11 Realizar Operaciones de Red en un Hilo Separado
. -- 4.4.12 Permisos de Localización
. -- 4.4.13 Optimizar el Código en Android y Memoria Caché
. -- 4.4.14 Implementación Segura de Proveedores de Contenido
. -- 4.4.15 Almacenamiento de Preferencias Compartidas (Sharedpreferences)
. -- 4.4.16 Almacenamiento Seguro de Preferencias
. -- 4.4.17 Almacenamiento en Ficheros
. -- 4.4.18 Almacenamiento Externo
. -- 4.4.19 Implementación Segura de Intents
. -- 4.4.20 Implementación Segura de Servicios
. -- 4.4.21 Implementación Segura de Broadcast Receivers
. -- 4.4.22 Implementación Segura de Content Providers
. -- 4.4.23 Invocar Actividades de Forma Segura
. -- 4.4.24 Implementar Almacenamiento de Datos Seguro
. -- 4.4.25 Algoritmos Criptográficos
. -- 4.4.26 Uso de Java.Util.String para Almacenar Información Sensible
. -- 4.4.27 Proteger la Configuración de la Aplicación
. -- 4.4.28 Cifrado en Base de Datos Sqlite
. -- 4.4.29 Optimización y Ofuscación del Código con Proguard
. -- 4.5 Metodología Oasam
. -- Capítulo 5. Seguridad en Proyectos Nodejs
. -- 5.1 Introducción a Nodejs
. -- 5.2 Modelo Event-Loop
. -- 5.3 Gestión de Paquetes
. -- 5.4 Programación Asíncrona
. -- 5.5 Problema del Código Piramidal
. -- 5.6 Módulo para Administrar el Sistema de Archivos
. -- 5.7 Módulo Http
. -- 5.8 Utilización del Middleware Express
. -- 5.8.1 Middleware de Nivel de Aplicación
. -- 5.8.2 Middleware de Nivel de Direccionamiento
. -- 5.8.3 Middleware de Terceros
. -- 5.9 Autenticación en Nodejs
. -- 5.9.1 Auth0
. -- 5.9.2 Passportjs
. -- 5.10 Owasp Top 10 en Nodejs
. -- 5.10.1 Owasp Nodegoat
. -- 5.10.2 Inyección de Código
. -- 5.10.3 Función Eval
. -- 5.10.4 Ataque de Denegación de Servicio
. -- 5.10.5 Uso de Patrones y Expresiones Regulares
. -- 5.10.6 Acceso al Sistema de Ficheros
. -- 5.10.7 Inyección de Sql
. -- 5.10.8 Inyección de Nosql
. -- 5.10.9 Inyección de Logs
. -- 5.10.10 Gestión de la Sesión y Autenticación
. -- 5.10.11 Protegiendo Credenciales de Usuario
. -- 5.10.12 Tiempo de Espera de Sesión y Protección de Cookies
. -- 5.10.13 Secuestro de Sesión (Session Hijacking)
. -- 5.10.14 Módulo Helmet
. -- 5.10.15 Cross-Site Scripting (Xss)
. -- 5.10.16 Referencias de Objetos Directos Inseguros
. -- 5.10.17 Mala Configuración de Seguridad
. -- 5.10.18 Deshabilitar Fingerprinting
. -- 5.10.19 Exposición de Datos Sensibles
. -- 5.10.20 Configurando Ssl/Tls
. -- 5.10.21 Forzar Peticiones Https
. -- 5.10.22 Falta de Control de Acceso
. -- 5.10.23 Redirecciones no Validadas
. -- 5.10.24 Denegación de Servicio Mediante Expresiones Regulares
. -- 5.10.25 Validar Datos de Entrada con Validator
. -- 5.10.26 Validar Datos de Entrada con Express-Validator
. -- 5.10.27 Configuración de Cabeceras Http
. -- 5.10.28 Política de Seguridad de Contenido (Csp)
. -- 5.10.29 Cross-Site Request Forgery (Csrf)
. -- 5.10.30 Ejecutar Código Javascript de Forma Aislada
. -- 5.10.31 Uso de Componentes con Vulnerabilidades Conocidas
. -- 5.10.32 Nodejsscan
. -- Capítulo 6. Seguridad en Proyectos Python
. -- 6.1 Componentes Inseguros en Python
. -- 6.2 Validación Incorrecta de Entrada/Salida
. -- 6.3 Función Eval
. -- 6.4 Serialización y Deserialización de Datos con Pickle
. -- 6.5 Ataques de Inyección de Entrada
. -- 6.5.1 Inyección de Comandos
. -- 6.5.2 Inyección de Sql
. -- 6.6 Acceso Seguro al Sistema de Archivos y Ficheros Temporales
. -- 6.7 Inyección de Xss
. -- 6.8 Inyección de Ssti
. -- 6.9 Servicios para Comprobar la Seguridad de Proyectos Python
. -- 6.9.1 Pyup
. -- 6.9.2 Lgtm en Proyectos Python Desarrollo Seguro en Ingeniería del Software
. -- 6.9.3 Sanitización de las Url
. -- 6.9.4 Uso de un Algoritmo Criptográfico Roto o Débil
. -- 6.9.5 Peticiones con Requests Sin Validación de Certificado
. -- 6.9.6 Uso de la Versión Insegura Ssl/Tls
. -- 6.9.7 Deserialización de Entrada no Confiable
. -- 6.9.8 Vulnerabilidades de Xss
. -- 6.9.9 Exposición de Información a Través de una Excepción
. -- 6.9.10 Conexión con Hosts Remotos Mediante Ssh Utilizando Paramiko
. -- 6.10 Análisis Estático de Código Python
. -- 6.10.1 Python Taint
. -- 6.10.2 Bandit
. -- 6.10.3 Hawkeye
. -- 6.10.4 Dlint
. -- 6.11 Gestión de Dependencias
. -- 6.11.1 Instalación de Dependencias
. -- 6.11.2 Requires.Io
. -- 6.11.3 Safety
. -- 6.11.4 Paquetes Maliciosos en Pypi
. -- 6.12 Python Code Checkers
. -- 6.12.1 Pyflakes
. -- 6.12.2 Pylint
. -- 6.13 Escáner de Seguridad de Aplicaciones Web
. -- 6.13.1 Wascan
. -- 6.13.2 Sqlmap
. -- 6.13.3 Xsscrapy
. -- 6.14 Seguridad en Django
. -- 6.14.1 Protección Ante Ataques Xss
. -- 6.14.2 Protección Ante Ataques Csrf
. -- 6.14.3 Protección de Inyección de Sql
. -- 6.14.4 Protección de Clickjacking
. -- 6.14.5 Ssl/Https
. -- 6.15 Otras Herramientas de Seguridad
. -- 6.15.1 Yosai
. -- 6.15.2 Flask-Security
. -- 6.15.3 Owasp Python Security Project
. -- Capítulo 7. Análisis Estático y Dinámico en Aplicaciones C/C++
. -- 7.1 Análisis Estático
. -- 7.1.1 Code Analyzer
. -- 7.2 Análisis Estático de Código C/C++
. -- 7.2.1 Flawfinder
. -- 7.2.2 Clang
. -- 7.2.3 Uso de Variables Sin Inicializar
. -- 7.2.4 Uso Inseguro de Funciones
. -- 7.2.5 Rats
. -- 7.2.6 Vulnerabilidad Cadena de Formato (Format String)
. -- 7.2.7 Pscan para Detectar Vulnerabilidades Format String
. -- 7.2.8 Buffer Overflow
. -- 7.2.9 Tipos de Heap Overflow
. -- 7.2.10 Vulnerabilidad Use After Free
. -- 7.2.11 Dereference After Free
. -- 7.2.12 Vulnerabilidad Double Free
. -- 7.2.13 Vulnerabilidad Off By One
. -- 7.2.14 Vulnerabilidades Race Condition
. -- 7.2.15 Vulnerabilidad Integer Overflow
. -- 7.2.16 Uso de Stackoverflow
. -- 7.3. Análisis Dinámico
. -- 7.3.1. Análisis Dinámico en C/C++ con Valgrind
. -- 7.4 Herramientas de Análisis
. -- Capítulo 8. Metodologías de Desarrollo
. -- 8.1. Metodologías de Desarrollo de Software Seguro
. -- 8.1.1 Correctness By Construction (Cbyc)
. -- 8.1.2 Security Development Lifecycle (Sdlc)
. -- 8.1.3 Fases de la Metodología Sdlc
. -- 8.1.4 Vulnerabilidades en Sdlc
. -- 8.1.5 Tipos de Sdlc
. -- 8.1.5.1 Microsoft Trustworthy Computing Sdl
. -- 8.1.5.2 Clasp
. -- 8.1.5.3 Tsp-Secure
. -- 8.1.5.4 Oracle Software Security Assurance
. -- 8.1.5.5 Propuesta Híbrida
. -- 8.1.6 Tipos de Pruebas de Seguridad Sdlc
. -- 8.1.7 Conclusiones de Ciclo de Vida de Desarrollo de Software (Sdlc)
. -- 8.2 Modelado de Amenazas
. -- 8.2.1 Modelado de Amenazas con Stride
. -- 8.3 Perspectiva del Atacante
. -- 8.4 Patrones de Ataque
. -- 8.5 Owasp Testing Framework y Perfiles para Pruebas de Seguridad
. -- 8.6 Owasp Security Knowledge Framework (Skf)
. -- 8.7 Seguridad en Ingeniería del Software
. -- 8.8 Bibliografía y Fuentes de Información
. -- 8.9 Conclusiones
. -- Capítulo 9. Glosario de Términos


INGENIERIA DE SISTEMAS

005.1.ORTE.00