0WASP
T0P 10
Pablo López García
Bi-Geekies – 25/10/2017 – Telefónica I+D Granada
“If you think technology can solve your security problems,
then you don’t understand the problems and you don’t
understand the technology.”
– Bruce Schneier
OWASP
• Open Web Application Security Project
• OWASP es un proyecto de código abierto dedicado a
determinar y combatir las causas que hacen que el
software sea inseguro.
• La Fundación OWASP es un organismo sin ánimo de lucro
que apoya y gestiona los proyectos e infraestructura de
OWASP.
• www.owasp.org
OWASP TOP 10
• Documento con los diez riesgos de seguridad más
importantes en aplicaciones web
• Se publica y actualiza cada tres años
• Objetivo: crear conciencia acerca de la seguridad en
aplicaciones mediante la identificación de algunos de los
riesgos más críticos que enfrentan las organizaciones.
• Actualmente versión 2017 RC.1 rechazada. RC.2 esperando
comentarios
• https://www.owasp.org/index.php/Top_10_2017-Top_10
A1. Injection
String consulta = "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';"
Input: Alicia
SELECT * FROM usuarios WHERE nombre = 'Alicia';
Input: Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%
SELECT * FROM usuarios WHERE nombre = 'Alicia';
DROP TABLE usuarios;
SELECT * FROM datos WHERE nombre LIKE '%';
• Método de infiltración de código intruso que se vale de una
vulnerabilidad informática presente en una aplicación en el
nivel de validación de las entradas para acceder a datos sin
autorización
A1. Injection
SOLUCIÓN:
• Escapar y validar las entradas
A1. Injection
XKCD Strip
A2.Broken Authentication and Session
Management
• Gestión de la autenticación y sesiones mal implementada
1. Sesión en URL: Compartir la URL da acceso a cualquier
http://example.com/sale/saleitems;sessionid=268544541&dest=Hawaii
2. Time out incorrecto: Equipo compartido sin cerrar sesión
3. Password en BD no codificados o salteados: Acceso a BD
implica exposición de credenciales
A2.Broken Authentication and Session
Management
A3. Cross-Site Scripting (XSS)
• Web incluye nuevos datos sin haberlos validado adecuadamente
A3. Cross-Site Scripting (XSS)
A3. Cross-Site Scripting (XSS)
A4. Broken Access Control
• Un usuario puede acceder a datos o acciones para las que no tiene
permisos.
• La web me filtra y muestra las opciones que puedo realizar pero si
invoco al API del servidor podría mandar cualquier argumento o
acción que quisiese
A4. Broken Access Control
SOLUCIONES:
• Filtrar en backend las operaciones y los datos invocados por el
usuario
• No exponer nunca IDs internos en el frontend
A4. Broken Access Control
A5. Security Misconfiguration
• Consola de administración no protegida o eliminada
• Passwords por defecto
• Listado de directorios no deshabilitado
• Devolver errores con trazas internas: Desvelamos detalles como
software y versiones instalados
• No borrar los ejemplos que trae el servidor de aplicaciones:
Contienen fallos muy conocidos
A5. Security Misconfiguration
A6. Sensitive Data Exposure
• Ante manejo de datos sensibles como los médicos, financieros, …
debemos asegurarnos de que no son accesibles:
• Almacenamiento en texto plano (incluso backups)
• Trasmisión sin securizar (incluso interna: Envenenamiento
ARP)
• Algoritmo criptográfico antiguo o inseguro
• Passwords no salteados
A6. Sensitive Data Exposure
A6. Sensitive Data Exposure
A7. Insufficient Attack Protection
• Los sistemas está protegidos ante vulnerabilidades pero no ante
ataques complejos:
• Detección de herramientas de escaneo de puertos y testeo
automático de vulnerabilidades. Diferenciación frente a tráfico
manual
• Detectar invocaciones fuera de lo normal: argumentos
extraños y caracteres no comunes
• En caso de intrusión: ¿Cómo de rápido podemos detectarla,
bloquearla y parchear? TELEFÓNICA WANNA CRY
A7. Insufficient Attack Protection
A8. Cross-Site Request Forgery (CSRF)
• Exploit malicioso de un sitio web en el que comandos no
autorizados son transmitidos por un usuario en el cual el sitio web
confía.
A8. Cross-Site Request Forgery (CSRF)
• Usuario utiliza banca online que realiza transferencias con URL:
http://example.com/app/transferFunds?amount=1500&destinationAccount=467
3243243
• Atacante construye una petición para transferir dinero a su
cuenta y la embebe en una URL de imagen o en un iframe oculto
en varias webs maliciosas
<img src="<b>http://example.com/app/transferFunds?amount=1500
&destinationAccount=attackersAcct#</b>" width="0" height="0" />
• El usuario visita la web maliciosa mientras está autenticado en su
banco
A8. Cross-Site Request Forgery (CSRF)
SOLUCIÓN:
• Usar frameworks protección contra CSRF
• Evitar exposición en URL de tokens de seguridad (campo hidden)
• Flag “SameSite=strict” en las cookies
A8. Cross-Site Request Forgery (CSRF)
A9. Using Components with Known
Vulnerabilities
A9. Using Components with Known
Vulnerabilities
A9. Using Components with Known
Vulnerabilities
A9. Using Components with Known
Vulnerabilities
A9. Using Components with Known
Vulnerabilities
A10. Underprotected APIs
• APIs usadas por webs Ajax y apps móviles no se protegen
adecuadamente.
• Proteger la comunicación entre cliente y API:
• Ingeniería inversa de una APP para obtener información
privilegiada de acceso al API
• Protegerse contra inyección
• Relación con A4
LexNET
PREGUNTAS?????????
DEMO
ABRIR CONSOLA
MUCHAS GRACIAS
“Passwords are like underwear: you don’t let
people see it, you should change it very often, and
you shouldn’t share it with strangers.”
– Chris Pirillo

Owasp top 10 2017

  • 1.
    0WASP T0P 10 Pablo LópezGarcía Bi-Geekies – 25/10/2017 – Telefónica I+D Granada
  • 2.
    “If you thinktechnology can solve your security problems, then you don’t understand the problems and you don’t understand the technology.” – Bruce Schneier
  • 3.
    OWASP • Open WebApplication Security Project • OWASP es un proyecto de código abierto dedicado a determinar y combatir las causas que hacen que el software sea inseguro. • La Fundación OWASP es un organismo sin ánimo de lucro que apoya y gestiona los proyectos e infraestructura de OWASP. • www.owasp.org
  • 4.
    OWASP TOP 10 •Documento con los diez riesgos de seguridad más importantes en aplicaciones web • Se publica y actualiza cada tres años • Objetivo: crear conciencia acerca de la seguridad en aplicaciones mediante la identificación de algunos de los riesgos más críticos que enfrentan las organizaciones. • Actualmente versión 2017 RC.1 rechazada. RC.2 esperando comentarios • https://www.owasp.org/index.php/Top_10_2017-Top_10
  • 5.
    A1. Injection String consulta= "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';" Input: Alicia SELECT * FROM usuarios WHERE nombre = 'Alicia'; Input: Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '% SELECT * FROM usuarios WHERE nombre = 'Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%'; • Método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para acceder a datos sin autorización
  • 6.
  • 7.
  • 8.
    A2.Broken Authentication andSession Management • Gestión de la autenticación y sesiones mal implementada 1. Sesión en URL: Compartir la URL da acceso a cualquier http://example.com/sale/saleitems;sessionid=268544541&dest=Hawaii 2. Time out incorrecto: Equipo compartido sin cerrar sesión 3. Password en BD no codificados o salteados: Acceso a BD implica exposición de credenciales
  • 9.
    A2.Broken Authentication andSession Management
  • 10.
    A3. Cross-Site Scripting(XSS) • Web incluye nuevos datos sin haberlos validado adecuadamente
  • 11.
  • 12.
  • 13.
    A4. Broken AccessControl • Un usuario puede acceder a datos o acciones para las que no tiene permisos. • La web me filtra y muestra las opciones que puedo realizar pero si invoco al API del servidor podría mandar cualquier argumento o acción que quisiese
  • 14.
    A4. Broken AccessControl SOLUCIONES: • Filtrar en backend las operaciones y los datos invocados por el usuario • No exponer nunca IDs internos en el frontend
  • 15.
  • 16.
    A5. Security Misconfiguration •Consola de administración no protegida o eliminada • Passwords por defecto • Listado de directorios no deshabilitado • Devolver errores con trazas internas: Desvelamos detalles como software y versiones instalados • No borrar los ejemplos que trae el servidor de aplicaciones: Contienen fallos muy conocidos
  • 17.
  • 18.
    A6. Sensitive DataExposure • Ante manejo de datos sensibles como los médicos, financieros, … debemos asegurarnos de que no son accesibles: • Almacenamiento en texto plano (incluso backups) • Trasmisión sin securizar (incluso interna: Envenenamiento ARP) • Algoritmo criptográfico antiguo o inseguro • Passwords no salteados
  • 19.
  • 20.
  • 21.
    A7. Insufficient AttackProtection • Los sistemas está protegidos ante vulnerabilidades pero no ante ataques complejos: • Detección de herramientas de escaneo de puertos y testeo automático de vulnerabilidades. Diferenciación frente a tráfico manual • Detectar invocaciones fuera de lo normal: argumentos extraños y caracteres no comunes • En caso de intrusión: ¿Cómo de rápido podemos detectarla, bloquearla y parchear? TELEFÓNICA WANNA CRY
  • 22.
  • 23.
    A8. Cross-Site RequestForgery (CSRF) • Exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confía.
  • 24.
    A8. Cross-Site RequestForgery (CSRF) • Usuario utiliza banca online que realiza transferencias con URL: http://example.com/app/transferFunds?amount=1500&destinationAccount=467 3243243 • Atacante construye una petición para transferir dinero a su cuenta y la embebe en una URL de imagen o en un iframe oculto en varias webs maliciosas <img src="<b>http://example.com/app/transferFunds?amount=1500 &destinationAccount=attackersAcct#</b>" width="0" height="0" /> • El usuario visita la web maliciosa mientras está autenticado en su banco
  • 25.
    A8. Cross-Site RequestForgery (CSRF) SOLUCIÓN: • Usar frameworks protección contra CSRF • Evitar exposición en URL de tokens de seguridad (campo hidden) • Flag “SameSite=strict” en las cookies
  • 26.
    A8. Cross-Site RequestForgery (CSRF)
  • 27.
    A9. Using Componentswith Known Vulnerabilities
  • 28.
    A9. Using Componentswith Known Vulnerabilities
  • 29.
    A9. Using Componentswith Known Vulnerabilities
  • 30.
    A9. Using Componentswith Known Vulnerabilities
  • 31.
    A9. Using Componentswith Known Vulnerabilities
  • 32.
    A10. Underprotected APIs •APIs usadas por webs Ajax y apps móviles no se protegen adecuadamente. • Proteger la comunicación entre cliente y API: • Ingeniería inversa de una APP para obtener información privilegiada de acceso al API • Protegerse contra inyección • Relación con A4
  • 33.
  • 34.
  • 35.
  • 36.
    MUCHAS GRACIAS “Passwords arelike underwear: you don’t let people see it, you should change it very often, and you shouldn’t share it with strangers.” – Chris Pirillo

Notas del editor

  • #2 Presentaciones de nuevas personas en el centro?????????????????????
  • #36 4 compilando 3 Conexión satelite 6 desencriptando 1 Downloading