La sécurité des API: Quand les mauvais élèves entrent en piste.
1.
2. 1.C’est quoi une API
2.Les types d’APIs
3.Le Web à l’ancienne Vs APIs
4.API Security Challenges
5.OWASP API Security Project & Top Ten
6. Vos premiers tests avec OWASP 10
7. Cas pratique ☺
PLAN
3. I- C’EST QUOI UNE API
Une interface de programmation d'application (API) est un ensemble de
règles ou de protocoles qui permettent aux programmes et aux
applications de communiquer entre eux.
En termes simples, une API est un morceau de code qui communique
avec un autre morceau de code.
Cas typique d’un client---serveur. Que ce passe t’il quand vous êtes dans
un restaurant ?
6. II- LES TYPES APIS
Operation HTTP Method RESTful Web Service (API)
CREATE PUT/POST POST
READ or RETRIEVE GET GET
UPDATE PUT/POST/PATCH PUT
DELETE DELETE DELETE
• CRUD c’est l’acronyme de Create, Retrieve, Update, Delete
8. IV-API SECURITY CHALLENGES
Les API sont essentielles et DOIVENT être Sécurisé… Qu'il s'agisse d'une
équipe de sécurité cherchant à sécuriser son application ou d'un chasseur
de bogues trouvant des bogues dans ces programmes. Une stratégie
sécurisée doit être mise en place pour gérer et protéger les API ainsi que
les systèmes et applications qui les utilisent !
9. V- OWASP API SECURITY PROJECT & TOP TEN
• L'OWASP est une organisation à but non lucratif qui travaille à améliorer
la sécurité des applications et des logiciels Web.
• Erez Yalon et Inon Shkedy ont créé le projet de sécurité de l'API OWASP
et le Top Ten de la sécurité de l'API OWASP.
• A1 Broken Object Level Authorization
• A2 Broken Authentication
• A3 Excessive Data Exposure
• A4 Lack of Resources and Rate Limiting
• A5 Broken Function Level Authorization
• A6 Mass Assignment
• A7 Security Misconfiguration
• A8 Injection
• A9 Improper Assets Management
• A10 Insufficient Logging & Monitoring
11. VI- VOS PREMIERS TESTS AVEC OWASP 10
1. Broken ObjectLevelAuthorization
BOLA est une vulnérabilité de contrôle d'accès qui se produit lorsque
l'entrée fournie par l'utilisateur est utilisée pour accéder à d'autres
ressources auxquelles il ne devrait pas avoir accès régulièrement.
BOLA est plus connu sur InsecureDirect Object
References (IDOR)
12. 2.Broken Authentication
• Mauvaise implémentation des méthodes d'authentification.
• Détails d'authentification sensibles comme les jetons d'authentification et les
mots de passe dans l’URL
• JWT mal configuré ( {“alg”:”NONE”} )
• L'application autorise les mots de passe et/ou les clés de cryptage faibles
• Jeton d'accès utilisé dans l'URL
VI- VOS PREMIERS TESTS AVEC OWASP 10
13. 3. Excessive Data Exposure
• Les API peuvent exposer trop de données.
• Une exposition excessive des données peut amener les attaquants à
utiliser ces détails supplémentaires pour recueillir des informations
qu'ils ne devraient pas avoir ou les utiliser pour formuler une attaque
plus sophistiquée.
VI- VOS PREMIERS TESTS AVEC OWASP 10
14. 4. Lack of Resources and Rate Limiting
Cela se produit lorsque les développeurs n'implémentent pas de mesures
de limitation de débit dans le code qui protégeraient l'API ou l'application
contre les attaques telles que le déni de service ou les attaques par force
brute.
VI- VOS PREMIERS TESTS AVEC OWASP 10
15. 5. Broken Function Level Authorization
• Les attaques BFLA sont similaires aux attaques BOLA ou IDOR
• Les attaques BFLA se concentrent sur l'exploitation des rôles et des accès utilisés dans
l'API.
VI- VOS PREMIERS TESTS AVEC OWASP 10
16. Lorsque les API exposent des ressources ou des variables, les attaquants peuvent les
utiliser pour concevoir leurs requêtes et leurs appels afin d'accéder à des ressources
auxquelles ils ne sont pas censés accéder.
6. Mass Assignment
VI- VOS PREMIERS TESTS AVEC OWASP 10
17. 7. Misconfiguration
Des paramètres de sécurité mal configurés dans les API ou les
applications peuvent amener les attaquants à exploiter ces paramètres
vulnérables pour exploiter l'application.
VI- VOS PREMIERS TESTS AVEC OWASP 10
18. 8. Injection
Les attaques par injection se produisent lorsque les développeurs ne
parviennent pas à nettoyer correctement les entrées de l'utilisateur.
L'application utilise MongoDB et est vulnérable aux attaques par injection
NoSQL
VI- VOS PREMIERS TESTS AVEC OWASP 10
19. 9. Improper Assets Management
Les versions hors production ou antérieures d'une API qui sont encore
utilisées et/ou qui ne sont pas aussi bien protégées sont des cibles
potentielles pour les attaquants
VI- VOS PREMIERS TESTS AVEC OWASP 10
Le chercheur a accédé à un ancien point de terminaison d'API public non
protégé de la base de données
https://thehackernews.com/2019/04/justdial-hacked-data-breach.html
20. 10. Insufficient Logging & Monitoring
Sans une journalisation et une surveillance appropriées, les attaques peuvent
passer inaperçues.
Les bons coups
Utilisez des formats standard pour surveiller et consigner les API telles que les API Gateways • Journaliser les
échecs de validation des entrées, les tentatives d'authentification échouées, les accès refusés, etc... • Gardez
vos journaux protégés comme des données sensibles • Surveillez vos points de terminaison d'API à toutes les
phases (production, étape, test, développement). Réagissez aux problèmes de sécurité identifiés dans votre
API. • Évitez les données sensibles dans les journaux
VI- VOS PREMIERS TESTS AVEC OWASP 10
22. VIII- CONCLUSION
Les API sont l'avenir des applications
Les API ne partagent pas certaines des vulnérabilités Web courantes, mais
ont leur propre ensemble de problèmes de sécurité
Entraînez-vous à tester et à exploiter ces vulnérabilités
Les testeurs d'intrusion et les équipes de sécurité doivent adopter le Top
10 de l'API OWASP comme ils le font avec le Top 10 OWASP ou le Top 25
SANS
Entrainez-vous
• OWASP Juice Shop (https://github.com/bkimminich/juice-shop)
• OWASP DevSlop’s Pixi App (https://github.com/DevSlop/Pixi)
• Optiv’s REST API Goat (https://github.com/optiv/rest-api-goat/)
• Tiredful API (https://github.com/payatu/Tiredful-API)
• Damn Vulnerable Web Services
(https://github.com/snoopysecurity/dvws-node)