1 of 67

OWASP Uruguay

OWASP TOP 10 2021

OWASP UY

2 of 67

  • Top 10 de riesgos – no es Top 10 de impactos, probabilidades o vulnerabilidades.

Introducción

2003

2004

owasp.org/uruguay

3 of 67

Introducción

owasp.org/uruguay

4 of 67

  • Desarrolladores, arquitectos.

  • Desarrolladores de frameworks (aunque deberían utilizar OWASP ASVS).

  • Gestión de programas de seguridad de aplicaciones (CISO, CTO, etc.).

  • Profesionales de AppSec: consultorías, herramientas, proveedores, enseñanza.

Audiencia

owasp.org/uruguay

5 of 67

Ser un documento de concientización:

Plantear la importancia de la seguridad informática en el desarrollo de aplicaciones web.

NO son objetivos del OWASP Top 10:

Ser un estándar de la industria AppSec (aunque es de facto).

Ser un estándar de codificación o pruebas.

Objetivo

owasp.org/uruguay

6 of 67

  • Luego de casi 14 años, las inyecciones dejaron de ser el #1 (A1).
    • Incluso combinándose con el XSS (Cross-Site Scripting).
  • El Top 10 más conciso de la historia.
  • Mobile-first, PDF y un poster serán publicados (¿pronto?).
  • Nuevo Look 😎✨.

  • Cómo utilizarlo como un (pseudo-)estándar y como programa básico de AppSec.
  • Los títulos de los puntos (A1 - A10) son causas raíces, no síntomas.
  • Cuatro nuevas categorías, incluyendo diseño inseguro y SSRF.

Destacan

owasp.org/uruguay

7 of 67

https://www.owasptopten.org/

Status

Recolección de datos

Encuesta a la industria

Análisis de datos

Escritura

Web Responsive y versión Móvil

PDF y Poster

Revisión

Traducciones

owasp.org/uruguay

8 of 67

Previaturas

CWE (Common Weakness Enumeration) - https://cwe.mitre.org/

Lista unificada de tipos de debilidades (SW y HW) que incluye debilidades de arquitectura, diseño y código.

owasp.org/uruguay

9 of 67

Previaturas

CVE (Common Vulnerabilities and Exposures) https://cve.mitre.org/cve/search_cve_list.html

Lista de vulnerabilidades y exposiciones de seguridad de la información divulgadas públicamente.

owasp.org/uruguay

10 of 67

Previaturas

Camino Pavimentado (Paved Road)

El concepto de camino pavimentado ("paved road") en seguridad informática es una forma concisa de expresar que el camino más rápido también es el más seguro.

Si a mi equipo de desarrollo le proveo pipelines de CI/CD con análisis de código estático incluído, ¿Quién va a compilar a mano y a no analizarlo?

owasp.org/uruguay

11 of 67

A01:2021

Pérdida de Control de Acceso

owasp.org/uruguay

12 of 67

Pérdida de Control de Acceso

A01:2021

https://e-commerce.com/paquetes/fotos/12987.jpg

https://e-commerce.com/misdatos/tarjetas/spassaro

owasp.org/uruguay

13 of 67

  • Eludir verificaciones de control de acceso.
  • Accesos no autorizados a cuentas de usuarios.
  • Creación, lectura, actualización o eliminación no autorizada de datos.
  • Elevación de privilegios.

  • Impactos en la privacidad e incumplimiento de regulaciones.
  • Las brechas más grandes con los mayores costos sucedieron por este riesgo.

34 CWEs

19k CVEs

Encontrada en 3.8% apps

Ocurrió 318k veces

Explotabilidad ponderada: 6.9

Impacto ponderado : 5.9

Pérdida de Control de Acceso

A01:2021

owasp.org/uruguay

14 of 67

Tips

  • Siempre revisar permisos para la entidad autenticada.
  • Solo usar datos confiables en el servidor.
  • Denegar accesos por defecto.
  • Verificar permisos por actividad/funcionalidad, no por rol.
  • Diseñar y construir mecanismo centralizado de control de acceso.

34 CWEs

19k CVEs

Encontrada en 3.8% apps

Ocurrió 318k veces

Explotabilidad ponderada: 6.9

Impacto ponderado : 5.9

Pérdida de Control de Acceso

A01:2021

owasp.org/uruguay

15 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Authorization_Cheat_Sheet.html
  • https://github.com/OWASP/ASVS/blob/master/4.0/es/0x12-V4-Access-Control.md

34 CWEs

19k CVEs

Encontrada en 3.8% apps

Ocurrió 318k veces

Explotabilidad ponderada: 6.9

Impacto ponderado : 5.9

Pérdida de Control de Acceso

A01:2021

owasp.org/uruguay

16 of 67

Fallas Criptográficas

A02:2021

owasp.org/uruguay

17 of 67

import smtplib, ssl

port = 465

password = 'manyaobolsonomevaninguno'

user_email = 'my@gmail.com'

context = ssl.create_default_context()

with smtplib.SMTP_SSL("smtp.gmail.com", port, context=context) as server:

server.login(user_email, password)

# TODO: Send email here

Fallas Criptográficas

A02:2021

owasp.org/uruguay

18 of 67

  • Contempla:
    • Algunos aspectos de “exposición de datos sensibles”.
    • Controles sobre datos en reposo inexistentes o ineficaces.
    • Cifrado en tránsito (TLS) inexistente o ineficaz.
    • Configuraciones inexistentes o ineficaces.

  • Incluye los CWEs de contraseñas hard coded.
  • Mayoritariamente descubiertos a través de revisiones manuales o análisis estáticos del código.

A02:2021

29 CWEs

3075 CVEs

Encontrada en 4.5% apps

Ocurrió 234k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 6.8

Fallas Criptográficas

owasp.org/uruguay

19 of 67

Tips

  • TLS siempre.
  • HTTP Strict-Transport-Security (HSTS).
  • Gestión de claves (crear, almacenar, respaldar, usar, archivar, cambiar, destruir).
  • Cifrado en reposo: https://github.com/google/tink

A02:2021

29 CWEs

3075 CVEs

Encontrada en 4.5% apps

Ocurrió 234k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 6.8

Fallas Criptográficas

owasp.org/uruguay

20 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Transport_Layer_Protection_Cheat_Sheet.html
  • https://www.ssllabs.com/
  • https://testssl.sh/
  • https://cheatsheetseries.owasp.org/cheatsheets/Cryptographic_Storage_Cheat_Sheet.html
  • https://github.com/google/tink

A02:2021

29 CWEs

3075 CVEs

Encontrada en 4.5% apps

Ocurrió 234k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 6.8

Fallas Criptográficas

owasp.org/uruguay

21 of 67

A03:2021

Inyección

owasp.org/uruguay

22 of 67

https://mysite.com/error.aspx?msg=<img src='1' onerror='JS_aqui()'>

A03:2021

Inyección

owasp.org/uruguay

23 of 67

A03:2021

Inyección

@app.route("/login")

def login():

email = request.values.get('email')

password = request.values.get('password')

db = pymysql.connect("localhost")

cursor = db.cursor()

cursor.execute("SELECT * FROM users "

+"WHERE email='%s' AND password='%s'" % (email, SHA256(password)))

owasp.org/uruguay

24 of 67

SELECT * FROM users WHERE

email='mail'OR'1'='1'OR'x'='@domain.com' AND password='8f…ae23'

A03:2021

Inyección

https://www.w3.org/TR/2012/WD-html-markup-20120329/input.email.html#input.email.attrs.value.single

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

Alternativa: email='mail'/**/OR/**/'1'='1'/**/OR/**/'x'='@domain.com'

FALSE

TRUE

FALSE

owasp.org/uruguay

25 of 67

  • ¡Desciende del puesto #1 finalmente!
  • Incluye XSS.

  • Fácilmente encontrable utilizando herramientas (pero ya no tan frecuentemente).
  • Bastante explotables aún.

  • Ayudar proveyendo “caminos pavimentados” y tomando como “estándares de oro” a los frameworks más seguros.
  • Brindar observabilidad a los equipos de desarrollo si utilizan alternativas menos seguras.

A03:2021

33 CWEs

32k CVEs

Encontrada en 3.4% apps

Ocurrió 274k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 7.2

Inyección

owasp.org/uruguay

26 of 67

Tips

  • Parametrizar las sentencias SQL (o usar frameworks).
  • Usar bien los tipos de datos y validarlos.
  • Codificar (encodear) según el contexto. Si no es posible, filtrar.

A03:2021

33 CWEs

32k CVEs

Encontrada en 3.4% apps

Ocurrió 274k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 7.2

Inyección

owasp.org/uruguay

27 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Injection_Prevention_Cheat_Sheet.html

A03:2021

33 CWEs

32k CVEs

Encontrada en 3.4% apps

Ocurrió 274k veces

Explotabilidad ponderada: 7.3

Impacto ponderado: 7.2

Inyección

owasp.org/uruguay

28 of 67

A04:2021

Diseño Inseguro

owasp.org/uruguay

29 of 67

Perdón pero para este no tengo ejemplo gráfico simple

A04:2021

Diseño Inseguro

owasp.org/uruguay

30 of 67

  • Nueva categoría obtenida a partir de datos.
    • ¡Categoría amplia, pero NO es una bolsa de lo que no entra en otras!

  • Impacta directamente en la seguridad de la aplicación.
  • Por lejos lo más costoso de solucionar a posteriori (hasta x 100).
  • Modelado de amenazas:
    • ¿Cuándo un control es necesario?
    • ¿Está el control?
    • ¿Funciona?

A04:2021

40 CWEs

2691 CVEs

Encontrada en 3.0% apps

Ocurrió 262k veces

Explotabilidad ponderada: 6.5

Impacto ponderado: 6.8

Diseño Inseguro

owasp.org/uruguay

31 of 67

Tips

  • “Shift left".
  • ¡Adopte mejores frameworks! Crear caminos pavimentados CON el equipo de desarrollo.
  • ¡Test, test, y test! Crear pruebas unitarias, de integración y otras.

A04:2021

40 CWEs

2691 CVEs

Encontrada en 3.0% apps

Ocurrió 262k veces

Explotabilidad ponderada: 6.5

Impacto ponderado: 6.8

Diseño Inseguro

owasp.org/uruguay

32 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html
  • https://github.com/marketplace/actions/owasp-zap-full-scan

A04:2021

40 CWEs

2691 CVEs

Encontrada en 3.0% apps

Ocurrió 262k veces

Explotabilidad ponderada: 6.5

Impacto ponderado: 6.8

Diseño Inseguro

owasp.org/uruguay

33 of 67

A05:2021

Configuración de

Seguridad Incorrecta

owasp.org/uruguay

34 of 67

A05:2021

Configuración de Seguridad Incorrecta

owasp.org/uruguay

35 of 67

  • Infraestructura en la nube como código, lo bueno y lo malo.
  • Incluye configuraciones por defecto, mal configuradas o configuradas sin considerar aspectos de seguridad (Hardening).
    • Headers HTTP.
    • Credenciales.
    • Puertos, páginas, servicios.
    • Permisos.

  • Eliminar el riesgo: Construir el camino pavimentado con configuraciones seguras para frameworks/componentes y para ambientes de desarrollo/test/producción.

A05:2021

20 CWEs

789 CVEs

Encontrada en 4.5% apps

Ocurrió 208k veces

Explotabilidad ponderada: 8.1

Impacto ponderado: 6.6

Configuración de Seguridad Incorrecta

owasp.org/uruguay

36 of 67

Tips

  • Leer la documentación.
  • Buscar sobre hardenings.
  • Poner mucho esfuerzo en conocimiento de plataformas cloud.

A05:2021

20 CWEs

789 CVEs

Encontrada en 4.5% apps

Ocurrió 208k veces

Explotabilidad ponderada: 8.1

Impacto ponderado: 6.6

Configuración de Seguridad Incorrecta

owasp.org/uruguay

37 of 67

Recursos

  • https://ssl-config.mozilla.org/

A05:2021

20 CWEs

789 CVEs

Encontrada en 4.5% apps

Ocurrió 208k veces

Explotabilidad ponderada: 8.1

Impacto ponderado: 6.6

Configuración de Seguridad Incorrecta

owasp.org/uruguay

38 of 67

A05:2021

20 CWEs

789 CVEs

Encontrada en 4.5% apps

Ocurrió 208k veces

Explotabilidad ponderada: 8.1

Impacto ponderado: 6.6

owasp.org/uruguay

39 of 67

A06:2021

Componentes Vulnerables y Desactualizados

owasp.org/uruguay

40 of 67

A06:2021

Componentes Vulnerables y Desactualizados

owasp.org/uruguay

41 of 67

  • Todo envejece 😢:
    • Causa raíz de muchos ataques grandes y costosos en el tiempo.

Tips

  • Se recomienda utilizar herramientas de CI/CD que adviertan sobre componentes desactualizados.
  • También se recomienda fuertemente fallar en el proceso de build al detectar componentes vulnerables.

A06:2021

3 CWEs

0 CVEs

Encontrada en 8.8% apps

Ocurrió 30k veces

Explotabilidad ponderada: 5.0

Impacto ponderado: 5.0

Componentes Vulnerables y Desactualizados

owasp.org/uruguay

42 of 67

Recursos

  • https://owasp.org/www-project-dependency-check/
  • https://github.com/victims/maven-security-versions
  • https://digitalcoyote.github.io/NuGetDefense/
  • https://retirejs.github.io/retire.js/
  • https://github.com/dependabot/dependabot-core

A06:2021

3 CWEs

0 CVEs

Encontrada en 8.8% apps

Ocurrió 30k veces

Explotabilidad ponderada: 5.0

Impacto ponderado: 5.0

Componentes Vulnerables y Desactualizados

owasp.org/uruguay

43 of 67

A07:2021

Fallas de Identificación y Autenticación

owasp.org/uruguay

44 of 67

¿Cuál es el nombre de tu primera mascota? Firulais 🐶

A07:2021

Fallas de Identificación y Autenticación

owasp.org/uruguay

45 of 67

  • Reemplaza a 2017:A2 Pérdida de Autenticación.
  • Incluye problemas de autenticación y gestión de sesiones.

  • Los CWEs incluidos cubren casi completamente los puntos V2 y V3 del ASVS para el nivel 1.

A07:2021

22 CWEs

3897 CVEs

Encontrada en 2.6% apps

Ocurrió 132k veces

Explotabilidad ponderada: 7.4

Impacto ponderado: 6.5

Fallas de Identificación y Autenticación

owasp.org/uruguay

46 of 67

Tips

  • Protegerse contra contraseñas reutilizadas, expuestas y débiles.

  • Agregarle múltiples factores de autenticación (MFA) a lo que se pueda.
  • Utilizar el ASVS para mejorar la autenticación de las aplicaciones.

A07:2021

22 CWEs

3897 CVEs

Encontrada en 2.6% apps

Ocurrió 132k veces

Explotabilidad ponderada: 7.4

Impacto ponderado: 6.5

Fallas de Identificación y Autenticación

owasp.org/uruguay

47 of 67

Recursos

  • https://github.com/OWASP/ASVS/blob/master/4.0/es/0x11-V2-Authentication.md
  • https://github.com/OWASP/ASVS/blob/master/4.0/es/0x12-V3-Session-management.md
  • https://pages.nist.gov/800-63-3/
  • https://haveibeenpwned.com/
  • https://auth0.com/breached-passwords

A07:2021

22 CWEs

3897 CVEs

Encontrada en 2.6% apps

Ocurrió 132k veces

Explotabilidad ponderada: 7.4

Impacto ponderado: 6.5

Fallas de Identificación y Autenticación

owasp.org/uruguay

48 of 67

A08:2021

Fallas en el Software y en la Integridad de los Datos

owasp.org/uruguay

49 of 67

{'username':'spassaro','expires_in':'2022/10/10'}

Cookie: remember_me=eyd1c2VybmFtZSc6J3NwYXNzYXJvJywnZXhwaXJlc19pbic6JzIwMjIvMTAvMTAnfQ==

{'username':'jperez','expires_in':'9999/10/10'}

Cookie: remember_me=eyd1c2VybmFtZSc6J2pwZXJleicsJ2V4cGlyZXNfaW4nOic5OTk5LzEwLzEwJ30=

A08:2021

Fallas en el Software y en la Integridad de los Datos

owasp.org/uruguay

50 of 67

  • Integridad de datos críticos del negocio o de privacidad.
  • Ausencia de control de integridad de Content Delivery Networks (CDN).
  • Deserializar sin control de integridad.
  • Actualizaciones de software sin control de integridad.
  • Pipelines de CI/CD sin verificaciones de estado del build, salidas/artefactos sin firmar, control de acceso.

A08:2021

10 CWEs

1152 CVEs

Encontrada en 2.0% apps

Ocurrió 47.9k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 7.9

Fallas en el Software y en la Integridad de los Datos

owasp.org/uruguay

51 of 67

Tips

  • Mejorar la integridad del proceso de build verificando las actualizaciones de componentes/dependencias.
  • Usar sub-resource integrity si se incluyen archivos de CDNs.
  • Firmar/cifrar serializaciones.
  • Evaluar cómo asegurar que los repositorios npm/Maven/NuGet son legítimos.

A08:2021

10 CWEs

1152 CVEs

Encontrada en 2.0% apps

Ocurrió 47.9k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 7.9

Fallas en el Software y en la Integridad de los Datos

owasp.org/uruguay

52 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Infrastructure_as_Code_Security_Cheat_Sheet.html
  • https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html
  • OWASP Cheat Sheet: Software Supply Chain Security (Coming Soon 😕)
  • OWASP Cheat Sheet: Secure build and deployment (Coming Soon 😕)

A08:2021

10 CWEs

1152 CVEs

Encontrada en 2.0% apps

Ocurrió 47.9k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 7.9

Fallas en el Software y en la Integridad de los Datos

owasp.org/uruguay

53 of 67

A09:2021

Fallas en el Registro y Monitoreo

owasp.org/uruguay

54 of 67

import requests

with open('passwords.txt') as f:

passwords = f.readlines()

for p in passwords:

resp = requests.post("https://sitio.com/login", data={"user":"jperez","password":p})

if resp.status_code == 302 and resp.headers["Location"] == "https://sitio.com/home":

print("Password:" + p)

A09:2021

Fallas en el Registro y Monitoreo

owasp.org/uruguay

55 of 67

Logs:

A09:2021

Fallas en el Registro y Monitoreo

owasp.org/uruguay

56 of 67

  • Incluida por segunda vez por medio de encuesta.

  • Crítico para reducir las ventanas y tiempos de respuesta ante una brecha de datos.
  • Crítico si se quiere ir con la justicia 👩‍⚖️
  • Necesario para conocer intentos de ataques y qué medidas no estamos tomando.

  • Análisis estáticos no pueden detectar la ausencia.

A09:2021

4 CWEs

242 CVEs

Encontrada en 6.5% apps

Ocurrió 53.6k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 5.0

Fallas en el Registro y Monitoreo

owasp.org/uruguay

57 of 67

Tips

  • Autoevaluarse con pruebas de penetración.
  • Algunos eventos:
    • Autenticación
    • Autorización
    • Rate limiting
    • Cambios de permisos
    • Cambios en datos sensibles
    • Manejo de usuarios

A09:2021

4 CWEs

242 CVEs

Encontrada en 6.5% apps

Ocurrió 53.6k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 5.0

Fallas en el Registro y Monitoreo

owasp.org/uruguay

58 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Logging_Vocabulary_Cheat_Sheet.html
  • https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html
  • https://github.com/OWASP/ASVS/blob/master/4.0/es/0x15-V7-Error-Logging.md

A09:2021

4 CWEs

242 CVEs

Encontrada en 6.5% apps

Ocurrió 53.6k veces

Explotabilidad ponderada: 6.9

Impacto ponderado: 5.0

Fallas en el Registro y Monitoreo

owasp.org/uruguay

59 of 67

A10:2021

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

owasp.org/uruguay

60 of 67

A10:2021

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

owasp.org/uruguay

61 of 67

A10:2021

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

http://169.254.169.254/latest/meta-data/iam/security-credentials/ ⇒ ec2-default-ssm

http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-default-ssm

Fuente: https://hackingthe.cloud/aws/exploitation/ec2-metadata-ssrf/

owasp.org/uruguay

62 of 67

  • Incluida por medio de encuesta.
  • Escrito por Orange Tsai 🍊

  • El pueblo tiene que aprender cómo probarlo:
    • Desarrolladores
    • Testers
    • Profesionales de AppSec

  • Se espera que los IDEs y framework puedan resaltar potenciales SSRF.
  • Como con otros riesgos, se espera que darle foco en este Top 10 ayude a eliminarlo.

A10:2021

1 CWEs

385 CVEs

Encontrada en 2.7% apps

Ocurrió 9.5k veces

Explotabilidad ponderada: 8.2

Impacto ponderado: 6.7

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

owasp.org/uruguay

63 of 67

Tips

  • Evitar tomar URLs de un usuario para actuar en el servidor.
  • Validar todo dato que se vaya a incluir en una URL.
  • Limitar servicios con controles de red y segmentación.

A10:2021

1 CWEs

385 CVEs

Encontrada en 2.7% apps

Ocurrió 9.5k veces

Explotabilidad ponderada: 8.2

Impacto ponderado: 6.7

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

owasp.org/uruguay

64 of 67

Recursos

  • https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html
  • https://portswigger.net/web-security/ssrf

A10:2021

1 CWEs

385 CVEs

Encontrada en 2.7% apps

Ocurrió 9.5k veces

Explotabilidad ponderada: 8.2

Impacto ponderado: 6.7

Falsificación de Solicitudes

del Lado del Servidor (SSRF)

owasp.org/uruguay

65 of 67

  • El OWASP Top 10 es un MÍNIMO.
  • Siempre hay algo que casi casi queda.

  • Problemas de calidad de código
  • Denegación de servicio
  • Errores de gestión de memoria

A11:2021

Siguientes pasos

owasp.org/uruguay

66 of 67

  • El uso de frameworks ayudó a eliminar clases de bugs. A seguir así :P
  • Hacer modelados de amenazas, atacar los bugs en clases para eliminarlos o reducirlos y mucho test, test, test.
  • Mejorar los programas de AppSec o checklists usando:
    • OWASP Proactive Controls para devs nuevos.
    • OWASP Application Security Verification Standard para todos los devs.
    • OWASP Cheat Sheets para consejos concretos.
    • OWASP Web Testing Guide para aprender cómo probar el ASVS y el Top 10.
    • Educación con cursos o eventos de seguridad para las tecnologías que usa la organización y cuestiones generales.

Redondeando

owasp.org/uruguay

67 of 67

The end

@spassarop

owasp.org/uruguay