Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CyberSecurity Evolution_Buscando vulnerabilidades en OWASP Top10

CyberSecurity Evolution_Buscando vulnerabilidades en OWASP Top10

More Decks by Ileana Maricel Barrionuevo

Other Decks in Research

Transcript

  1. Ing. Ileana Maricel Barrionuevo Pentesting – análisis de seguridad –

    Investigación - Networking Laboratorio de Sistemas en UTN FRC Centro de Investigación y Desarrollo Docente de Fundamentos de Informática UTN FRC Twitter/Telegram: @accio_bugs - Mail: [email protected]
  2. Agenda  Intro: API vs WebServices  Tecnologías – ejemplos

     Problemas recientes  OWASP API Top10 – 2019  Demos con app vulnerable: Pixi (Nicole Becher - DevSlop)  Casos de abuso - prevención
  3.  API  - interfaz entre dos apps  -

    “access point”  - métodos definidos  - no necesariamente requieren de web services  Web service  - interacción entre dos hosts → en una red  - independencia de plataformas  - puede no tener todas las reglas especificadas API vs Web Service
  4.  En resumen:  - WS son APIs, pero no

    todas las APIs son WS.  - WS requieren de una red, las APIs no siempre.  - WS podrían no ejecutar operaciones que las APIs realizan.  - APIs interactúan directamente con la app, pero un WS interactúa por medio de la red  - APIs: no necesariamente web-based API vs Web Service
  5. Problemas  Lógica de aplicación – exposición de datos 

    Incremento en su uso  Cambios constantes  No se respeta el estándar  Microservicios → se comunican mediante APIs  WAF → no resuelven todos los problemas  Foco en cloud – automation - CI/DC
  6. ¿Cómo encontrar bugs de seguridad?  Reconocimiento  Enumeración de

    endpoints → gobuster, dirsearch...  Sitemap – intercepción de tráfico → proxy  Navegación por funcionalidades  Inferencia de estructura DEMO !
  7. API1:2019 - Broken Object Level Authorization  Caso real Edición

    de cursos ajenos a través de su ID. https://hackerone.com/reports/227522
  8. API1:2019 - Broken Object Level Authorization  Casos de abuso

     - Cambiar datos del perfil de otro usuario  PUT /user_info/{id_user}  - Enumerar usuarios  - Borrar fotos de otros usuarios  DELETE /api / picture /delete? picture_id=  Prevención / mitigación  - No confiar en Ids del usuario  - Controlar autorización en cada request que accede a DB  - Usar UUIDs → impredecibles  - Controlar correspondencia del objeto con usuario.
  9. API2:2019 – Broken User Authentication  Casos de abuso 

    - Acceder a APIs internas, desprotegidas  - Credenciales débiles  - Credenciales expuestas  - Keys → Secret?  - Token no expira correctamente  - Implementaciones incorrectas JWT  - Saltando la autenticación con inyección  - Logs!  Prevención / mitigación  - Autenticar todas las APIs  - Seguir estándares – almacenamiento de contraseñas  - Invalidar tokens luego de logouts  - Corregir implementación JWT
  10. API3:2019 – Excessive Data Exposure  Casos de abuso 

    - Obtener datos que el usuario no necesita conocer  Prevención / mitigación  - Identificar la información que se muestra al usuario  - Revisar las respuestas
  11.  Caso real API4:2019 – Lack of resources & Rate-limiting

    https://www.securityweek.com/instagram-account-takeover-vulnerability-earns-hacker-30000
  12. API4:2019 – Lack of resources & Rate-limiting  Casos de

    abuso  - Llamar ilimitadamente a una API  - Problemas por cantidad de llamadas/ tamaño de payloads  - Denegación de servicio  $ seq 1 1000 | xargs -n1 -P1000 ./api_call.sh cat api_call.sh curl http://localhost:8000/user_info/ -H “Cookie: [cookies]” chmod +x api_call.sh ab -n 20000 -c 1000 -k -H http://localhost:8090/api/user/info
  13. API4:2019 – Lack of resources & Rate-limiting  Prevención /

    mitigación  - Límites en tamaño de payload  - Límites en cantidad de llamadas  - Límites en consumo de recursos
  14. API5:2019 – Broken Function Level Authorization  Caso real https://

    appname.firebaseio.com/.json https://apisecurity.io/issue-84-unprotected-apis-google-firebase-leaky-arkansas-pua-portal/
  15. API5:2019 – Broken Function Level Authorization  Casos de abuso

     - APIs administrativas expuestas  .../admin ??  /Admin  /Admin /all_users  /Admin /total_money  - Funciones administrativas bloqueadas a nivel app, no a nivel API → / admin /all_users ?  /api/ admin/all_users  Prevención / mitigación  - Denegar todos los accesos por defecto  - Brindar acceso por roles específicos
  16. API6:2019 – Mass Assignment  Casos de abuso  -

    Hacer admin al usuario  Prevención / mitigación  - No mapear automáticamente datos que ingresan, con objetos internos  - Especificar los atributos esperados  - Atributos Read-only
  17. API7:2019 – Security Misconfiguration  Casos de abuso  -

    Archivos del server desprotegidos → server.conf  - Tecnologías obsoletas  - Consolas de administración del server expuestas  - Errores con stack traces  Prevención / mitigación  - Restricciones  - Actualizaciones de librerías – frameworks  - Deshabilitar funciones innecesarias  - Análisis automatizado de configuraciones  - Tratamiento y definición de los errores
  18. API8:2019 – Injection  Casos de abuso  - NoSQL

    injection → login!  - Otros casos de injection  Prevención / mitigación  - Validar, filtrar, sanitizar lo que ingresa el usuario  - Chequear responses en busca de filtración de información  - Definir esquemas, tipos de datos, patrones
  19. API9:2019 – Improper Asset Management  Casos de abuso 

    - Buscar versiones antiguas, obsoletas de APIs aún activas  /api/v2/users → /api/v1/users/  - Buscar entornos de testing, staging  - Lograr autenticación en un endpoint para lograr acceso a otro  Prevención / mitigación  - Restricciones para lo que no debería ser público  - API firewalls  - Quitar versiones anteriores de las APIs luego de que se hizo upgrade  - Implementar medidas en CI/DI para que APIs inseguras no sean desplegadas
  20. API10:2019 – Insufficient loggin & monitoring  Casos de abuso

     - Buscar tokens – credenciales en logs  Prevención / mitigación  - Identificar qué información se muestra en los logs.  - No exponer tokens, keys, credenciales  - Configurar logs propios que no expongan la información pero que permitan debugging