Esta platica tiene como finalidad dar a conocer los diferentes aspectos relacionados a la seguridad informática que se tienen que tomar en cuenta al momento de desarrollar e implementar tecnologías Web Api en un ambiente empresarial.
Se propondrán estrategias de infraestructura y detalles a tener en cuenta para garantizar la seguridad en diferentes aspectos como son, el control de acceso a la API y gestión de la misma, seguridad de la información durante el transporte y almacenamiento, y el acceso a los datos y validaciones necesarias.
9. Owasp Top 10-2017
• A1: 2017- Injection
• A2: 2017– Broken Authentication
• A3: 2017- Sensitive Data Exposure
• A5: 2017- Broken Access Control
• A6: 2017- Security Misconfiguration
• A7: 2017- Cross-Site Scripting (XSS)
• A10: 2017- Insufficient Logging and
Monitoring
•Control acceso
– Autenticación
– Autorización
– Limitar Acceso
•Validación
•Seguridad de la información
Vulnerabilidades en Web APIs
https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
10. Web API y Base de datos
Base de Datos
• Cifrado de datos
• Usuario de BD menos privilegiado
• Solo otorgar permisos necesarios
• Validación de datos
• Control de acceso por
recurso/acción.
• Verificar tipo de
contenido
• Uso de filtros
• Uso correcto de códigos
de estado HTTP
11. Uso de herramientas de mapeo objeto-relación (ORM)
Mapeo
Base de
datos
• Validación de datos
• Evitar Inyección SQL
13. Web Application Firewall (WAF)
• Análisis de trafico y peticiones
• Detección de Inyección de SQL, XSS
• Prevención de ataques de DoS
• Prevención de ataques de fuerza bruta
• Bitácora
14. API Gateway
• Autenticación y control de acceso
• Administración de múltiples APIs
• Rate limiting
• Control de versiones
• Monitoreo (trafico, rendimiento)
• Herramientas de explotación de
datos y generación de reportes
(Analitics)
• Bitácoras
15. Mejores practicas
Estrategia de implementación
Detección de:
Cross-Site Scripting (XSS)
Inyección
Denegación de servicios
Ataques de fuerza bruta
Servidor de
Base de Datos
Servidores de
Aplicaciones
API GatewayWeb Application
Firewall
Servidor de
Contenidos
Seguridad de transporte (HTTPS)
Certificados SSL/TLS
Cifrado de datos
Usuario de BD menos privilegiado
Validación de datos
Herramientas ORM
Autorización
Uso de filtros
Autenticación
Autorización
Monitoreo y Logging
Políticas de acceso
Control de versiones
Cabeceras de seguridad
Protección contra “Fingerprinting”
16. Control de acceso
Detección de:
Cross-Site Scripting (XSS)
Inyección
Denegación de servicios
Ataques de fuerza bruta
Servidor de
Base de Datos
Servidores de
Aplicaciones
API GatewayWeb Application
Firewall
Servidor de
Contenidos
Seguridad de transporte (HTTPS)
Certificados SSL/TLS
Cifrado de datos
Usuario de BD menos privilegiado
Validación de datos
Herramientas ORM
Autorización
Uso de filtros
Cabeceras de seguridad
Protección contra “Fingerprinting”
Autenticación
Autorización
Monitoreo y Logging
Políticas de acceso
Control de versiones
17. Validación
Detección de:
Cross-Site Scripting (XSS)
Inyección
Denegación de servicios
Ataques de fuerza bruta
Servidor de
Base de Datos
Servidores de
Aplicaciones
API GatewayWeb Application
Firewall
Servidor de
Contenidos
Seguridad de transporte (HTTPS)
Certificados SSL/TLS
Cifrado de datos
Usuario de BD menos privilegiado
Validación de datos
Herramientas ORM
Autorización
Uso de filtros
Cabeceras de seguridad
Protección contra “Fingerprinting”
Autenticación
Autorización
Monitoreo y Logging
Políticas de acceso
Control de versiones
18. Seguridad de la
información
Detección de:
Cross-Site Scripting (XSS)
Inyección
Denegación de servicios
Ataques de fuerza bruta
Servidor de
Base de Datos
Servidores de
Aplicaciones
API GatewayWeb Application
Firewall
Servidor de
Contenidos
Seguridad de transporte (HTTPS)
Certificados SSL/TLS
Cifrado de datos
Usuario de BD menos privilegiado
Validación de datos
Herramientas ORM
Autorización
Uso de filtros
Cabeceras de seguridad
Protección contra “Fingerprinting”
Autenticación
Autorización
Monitoreo y Logging
Políticas de acceso
Control de versiones
19. Comentarios adicionales
• Una buena implementación empieza desde el diseño
• Identificar a tus usuarios
• Establecer limites y permisos
• No reinventar la rueda
• Mantener componentes actualizados
• Monitoreo y uso de bitácoras