API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares:...

47
CIBERSEG 2017 24 de enero Madrid API

Transcript of API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares:...

Page 1: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

CIBERSEG 2017 24 de enero

Madrid

API

Page 2: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

¿YO?

•  Simón Roses Femerling •  Licenciado en Informática (Suffolk University), Postgrado E-Commerce (Harvard University) y Executive MBA (IE Business School)

•  Fundador & CEO, VULNEX www.vulnex.com •  Blog: www.simonroses.com

•  @simonroses | @vulnexsl •  Ex: Microsoft, PwC, @Stake

•  Beca del DARPA Cyber Fast Track (CFT) para investigar sobre seguridad en el ciclo de desarrollo de software

http://www.simonroses.com/es/2014/06/mi-visita-al-pentagono/ •  Ponente: Black Hat, RSA, HITB, OWASP, AppSec USA, SOURCE, DeepSec, TECHNET, CCN

STIC

•  CEH, CISSP & CSSLP

Page 3: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

OBJETIVOS DE LA CHARLA

•  Introducción al REST

•  Iniciación al REST Pentesting

Page 4: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

AGENDA

1.   Introducción

2.   REST Pentesting

3.   ¡Un poco de acción!

4.   Conclusiones

Page 5: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras
Page 6: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

1. EVOLUCIÓN WEB

Page 7: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

1. APPLICATION PROGRAMMING INTERFACE (API)

Page 8: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

1. SERVICIOS WEB

•  SOAP (Simple Object Access Protocol) – Mensajes –  XML – WSDL (Web

Services Description Language) describe formato WS

•  REST (Representional State Transfer) –  Recursos –  nombres: CRUD –  JSON

Page 9: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

1. SOAP VS. REST

Page 10: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

REPRESENTATIONAL STATE TRANSFER (REST)

•  Estilo de arquitectura software, no un protocolo

– cliente/servidor sin estado – operaciones bien definidas (CRUD) – sintaxis universal

•  https://es .w ik iped ia .org/wik i /Transferencia_de_Estado_Representacional

Page 11: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

REPRESENTATIONAL STATE TRANSFER (REST)

REST Métodos

HTTP

GET, POST, PUT,

DELETE

Respuesta

XML JSON

Sin Estado

Page 12: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras
Page 13: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. RETOS DEL REST PENTESTING

•  No existe un estándar en REST como WSDL para SOAP – Swagger: http://swagger.io/ – Web Application Description Language

(WADL) http://www.w3.org/Submission/wadl/

•  REST utiliza parámetros en el URL – Web: GET http://www.acme.com/dir/ –  REST: GET http://www.acme.com/api/product/1/

Page 14: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. ¿CÓMO ENCONTRAR EL API?

•  Vis i tar la web/documentación disponible

•  www.publicapis.com

•  ¿Estándares?

•  Ingeniería inversa app/software

Page 15: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. CLIENTES REST

•  Advanced REST Client (Chrome) https://advancedrestclient.com/

•  POSTMAN https://www.getpostman.com/

•  SOAPUI https://www.soapui.org/

•  Simple Requests https://itunes.apple.com/es/app/simple-requests-api-tester/id1157557497?mt=8

Page 16: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. RECURSOS

•  OWASP API Security Project (Top 10 API) https://www.owasp.org/index.php/OWASP_API_Security_Project

•  OWASP REST Security Cheat Sheet

https://www.owasp.org/index.php/REST_Security_Cheat_Sheet

•  OWASP REST Assessment Cheat Sheet https://www.owasp.org/index.php/REST_Assessment_Cheat_Sheet

•  OWASP Web Service Security Testing Cheat Sheet https://www.owasp.org/index.php/Web_Service_Security_Testing_Cheat_Sheet

•  WS-Attacks http://www.ws-attacks.org/Welcome_to_WS-Attacks

Page 17: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. HERRAMIENTAS

•  Escáneres comerciales

•  HTTPie https://httpie.org/

•  Web Proxies: Zap, Burp Proxy

•  Scripting kung-fu

Page 18: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. FUZZING

•  Syntribos, An Automated API Security Testing Tool https://github.com/openstack/syntribos

•  Fuzzapi https://github.com/lalithr95/fuzzapi

Page 19: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. AUDITORÍA REST

•  Caja Blanca vs Caja Negra

•  Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras HTTP necesarias

•  Modelo de Amenazas

Page 20: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. ALGUNOS FALLOS COMUNES

•  Autenticación y Autorización •  Límites de peticiones •  Mensajes de errores •  Manipulación de los métodos HTTP •  Inyección SQL •  Información en Tránsito/Reposo •  Tokens (expiración, reutilizar,

predecibles, etc.)

Page 21: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. HACKING SEGURO / LAB

•  Mutillidae https://sourceforge.net/projects/mutillidae/

•  Hackazon, modern vulnerable web

app https://github.com/rapid7/hackazon

•  Damn Vulnerable Web Services https://github.com/snoopysecurity/dvws

Page 22: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

2. DVWS

Page 23: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras
Page 24: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. CASOS

1) Enumeración

2) SANS Holiday Hack 2016 CTF

3) Fuzzing

Page 25: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN

•  SOAP

– Ficheros WSDL

•  REST

– Sin estándar definido – Swagger (swagger.json)

Page 26: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN SOAP / WSDL

Page 27: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN BURP WSDL

Page 28: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN REST I

Page 29: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN REST II

Page 30: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 1) ENUMERACIÓN REST III

Page 31: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - I

•  https://holidayhackchallenge.com

Page 32: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - II

Page 33: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - III

Page 34: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - IV

Page 35: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - V

Page 36: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - VI

Page 37: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 2) SANS HOLIDAY HACK 2016 CTF - VII

Page 38: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 3) FUZZING I

Page 39: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 3) FUZZING II

Page 40: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 3) FUZZING III

Page 41: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 3) FUZZING IV

Page 42: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

3. 3) FUZZING V

Page 43: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras
Page 44: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

4. CONCLUSIONES

•  REST es la tendencia, cada día más API disponibles

•  Las herramientas mejoran, pero sigue siendo un proceso manual

Page 45: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

4. HACKERS LOVE BUG BOUNTIES

•  WP-API: Wordpress API https://hackerone.com/wp-api ($50-$500)

•  Twilio: cloud comunications https://bugcrowd.com/twilio ($500-$2000+)

•  Circle Mobile: Send & Receive Money https://bugcrowd.com/circle ($50-$1000)

Page 46: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

4. BUG CROWD: 2016 STATE OF BUG BOUNTY

https://pages.bugcrowd.com/2016-state-of-bug-bounty-report

Page 47: API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares: WSDL, Swagger, WADL, – Información del API – Proceso autenticación – Cabeceras

Q&A

•  ¡Gracias!

•  ¡Cervezas y copas son bienvenidas!

•  @simonroses •  @vulnexsl

•  www.vulnex.com •  www.simonroses.com