API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares:...
Transcript of API - VULNEX · • Caja Blanca vs Caja Negra • Solicitar – Documentación – Estándares:...
CIBERSEG 2017 24 de enero
Madrid
API
¿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
OBJETIVOS DE LA CHARLA
• Introducción al REST
• Iniciación al REST Pentesting
AGENDA
1. Introducción
2. REST Pentesting
3. ¡Un poco de acción!
4. Conclusiones
1. EVOLUCIÓN WEB
1. APPLICATION PROGRAMMING INTERFACE (API)
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
1. SOAP VS. REST
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
REPRESENTATIONAL STATE TRANSFER (REST)
REST Métodos
HTTP
GET, POST, PUT,
DELETE
Respuesta
XML JSON
Sin Estado
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/
2. ¿CÓMO ENCONTRAR EL API?
• Vis i tar la web/documentación disponible
• www.publicapis.com
• ¿Estándares?
• Ingeniería inversa app/software
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
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
2. HERRAMIENTAS
• Escáneres comerciales
• HTTPie https://httpie.org/
• Web Proxies: Zap, Burp Proxy
• Scripting kung-fu
2. FUZZING
• Syntribos, An Automated API Security Testing Tool https://github.com/openstack/syntribos
• Fuzzapi https://github.com/lalithr95/fuzzapi
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
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.)
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
2. DVWS
3. CASOS
1) Enumeración
2) SANS Holiday Hack 2016 CTF
3) Fuzzing
3. 1) ENUMERACIÓN
• SOAP
– Ficheros WSDL
• REST
– Sin estándar definido – Swagger (swagger.json)
3. 1) ENUMERACIÓN SOAP / WSDL
3. 1) ENUMERACIÓN BURP WSDL
3. 1) ENUMERACIÓN REST I
3. 1) ENUMERACIÓN REST II
3. 1) ENUMERACIÓN REST III
3. 2) SANS HOLIDAY HACK 2016 CTF - I
• https://holidayhackchallenge.com
3. 2) SANS HOLIDAY HACK 2016 CTF - II
3. 2) SANS HOLIDAY HACK 2016 CTF - III
3. 2) SANS HOLIDAY HACK 2016 CTF - IV
3. 2) SANS HOLIDAY HACK 2016 CTF - V
3. 2) SANS HOLIDAY HACK 2016 CTF - VI
3. 2) SANS HOLIDAY HACK 2016 CTF - VII
3. 3) FUZZING I
3. 3) FUZZING II
3. 3) FUZZING III
3. 3) FUZZING IV
3. 3) FUZZING V
4. CONCLUSIONES
• REST es la tendencia, cada día más API disponibles
• Las herramientas mejoran, pero sigue siendo un proceso manual
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)
4. BUG CROWD: 2016 STATE OF BUG BOUNTY
https://pages.bugcrowd.com/2016-state-of-bug-bounty-report
Q&A
• ¡Gracias!
• ¡Cervezas y copas son bienvenidas!
• @simonroses • @vulnexsl
• www.vulnex.com • www.simonroses.com