api - vulnex · • caja blanca vs caja negra • solicitar – documentación – estándares:...
TRANSCRIPT
![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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/2.jpg)
¿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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/5.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/12.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/23.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/34.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/37.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/40.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/43.jpg)
![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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/44.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/46.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022042812/5faa56b7b0bac277575dcecf/html5/thumbnails/47.jpg)
Q&A
• ¡Gracias!
• ¡Cervezas y copas son bienvenidas!
• @simonroses • @vulnexsl
• www.vulnex.com • www.simonroses.com