Sécurité des web services soap

1 301 vues

Publié le

La conférence sécurité des web services SOAP au Security BSides Algiers organisé par le club Shellmates

Publié dans : Logiciels
0 commentaire
3 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 301
Sur SlideShare
0
Issues des intégrations
0
Intégrations
74
Actions
Partages
0
Téléchargements
47
Commentaires
0
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Sécurité des web services soap

  1. 1. SÉCURITÉ DES WEB SERVICES SOAP SMAHI Zakaria
  2. 2. SOMMAIRE  Qu’est ce qu’un WEB Service  Web Services SOAP  Risques et Menaces  Réduction des risques  Conclusion  Questions
  3. 3. QU’EST CE QU’UN WEB SERVICE  Programmes accessibles à distance, qui peuvent être déployés sur n’importe quelle plateforme.  Il s’agit d’une forme d’un intergicielle (middleware) qui s’appuie sur des standards bien définis.  Conçus pour supporter l’interaction entre des groupes hétérogènes au sein d'un réseau.
  4. 4. UN PEU D’HISTOIRE  1990 : DCE/RPC - Distributed Computing Environment.  1992 : CORBA - Common Object Request Broker Architecture.  1990-1993 : Microsoft’s DCOM - Distributed Component Object Model.  1995 : RMI – Monde Java.  Pour arriver enfin à une standardisation (toujours en cours) des protocoles, outils, langages et interfaces. WSDL JSON …etc.
  5. 5. ENVIRONNEMENT A WEB SERVICES TYPIQUE SOURCE: Mastering Web Services Security www.wiley.com
  6. 6. WEB SERVICES SOAP  Langages:  XML  UDDI  WSDL  XPath  Protocoles:  Transport : HTTP, HTTPS, SMTP, FTP, SSH…etc.  Message: Enveloppe SOAP  Sécurité:  WS-Security (Signature – chiffrement)
  7. 7. LES ACTEURS DU WEB SERVICE SOAP
  8. 8. LES ACTEURS DU WEB SERVICE SOAP - WSDL
  9. 9. LES ACTEURS DU WEB SERVICE SOAP – SOAP Protocol header SOAP envelope SOAP header SOAP body SOAP fault Protocol de transport (ex : http) Définit le document XML comme un message SOAP Optionnelle : stockage des informations spécifique à la transaction Contenant des données à transporter Gestion des erreurs
  10. 10. RAPPEL MODÈLE STRIDEType Exemple Contrôle de sécurité Spoofing Accèder et/ou utiliser des informations d’authentification d’un autre utilisateur (username/password). Authentification Tampering Modifier les données persistantes d’une base de données ou altérer les données en échange entre deux utilisateurs dans un réseau ouvert. Intégrité Repudiation Effectuer des opérations illégales sur un système non capable à retracer les opération interdites Non-répudiation Information disclosure Lire des données en transit. Confidentialité Denial of Service rendre les services ou les ressources d’une organisation indisponibles pendant un temps indéterminé Disponiblité
  11. 11. RISQUES ET MENACES
  12. 12. RISQUES ET MENACES  Threat1:  Interception des messages (Informtion disclosure).  Modification des messages (Tampering).  Usurpation d’identité (Spoofing).  Threat2: « XML-Based attacks »  Attaque de l’application (SQL Injections, XDOS, …etc.).
  13. 13. XML-BASED ATTACKS  SOAP ne définit aucun mécanisme de sécurité.  Le problème apparait avec la syntaxe dite pardonnable de XML.  Il existe deux grandes familles d’attaques à base XML:  Les attaques de déni de services XML. (XDOS)  Les attaques par injection.
  14. 14. Attaques à base XML XDOS Oversize/Réc ursive XML Bombe Référence externe Envoi massif de messages SOAP Injections Injection SQL Injection de commandes OS Injection XML Injection XPath
  15. 15. INJECTION SQL DANS UN MESSAGE SOAP OR 1 = 1 -- Injection SQL
  16. 16. BOMBE XML DANS UNE MESSAGE SOAP <?xml version=”1.0” encoding=”UTF-8”?> < ! DOCTYPE SOAP-ENV: Envelope [ < ! ELEMENT SOAP-ENV: Envelope ANY> < ! ATTLIST SOAP-ENV: Envelope entityReference CDATA #IMPLIED> < ! ENTITY x0 "foo"> < ! ENTITY x1 "foofoo" > < ! ENTITY x2 "foofoofoofoo" > ... < ! ENTITY x98 "&x97;&x97;" > < ! ENTITY x99 "&x98;&x98;" > ] > <soap:Envelope xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”> <soap:Body> <keyword xmlns="urn:parasoft:ws:store">foo</keyword> </soap:Body> </soap:Envelope> < ! DOCTYPE SOAP-ENV: Envelope [ < ! ELEMENT SOAP-ENV: Envelope ANY> < ! ATTLIST SOAP-ENV: Envelope entityReference CDATA #IMPLIED> < ! ENTITY x0 "foo"> < ! ENTITY x1 "foofoo" > < ! ENTITY x2 "foofoofoofoo" > ... < ! ENTITY x98 "&x97;&x97;" > < ! ENTITY x99 "&x98;&x98;" > ] > Bombe XML
  17. 17. RÉDUCTION DES RISQUES  Chiffrement du transport.  AuthN.  X509/PKI Intégrité et confidentialité des messages.  Secure Coding.  XML Firewall ou XML Security Gateway.
  18. 18. RÉDUCTION DES RISQUES  Chiffrement du transport: HTTPS SSL/TLS Tunnel SSH …etc.  AuthN:  HTTP trust, HTTP Header  WS SAML Authentication token  Kerberos …etc.
  19. 19. RÉDUCTION DES RISQUES  X905/PKI: SSL/TLS Mutual AuthN …etc.  Intégrité et confidentialité des messages:  XML Signature  XML Encryption  Secure Coding:  Validation des input, et l’encodage des output  Anti-automatisation Tester son web service avant de le publier par des outils de tests (SOAPui, WS-fuzzer, SQLmap …etc.)
  20. 20. XML FIREWALLS/XML SECURITY GATEWAYS  Une nouvelle technologie introduite afin de sécuriser les web services contre les attaques.  Il est compatible aux différents protocoles de transport, et renforce les insertions de sécurité des messages de services, de port ou d’opération.  Actuellement, on a la tendance d’utiliser le terme «XML Security Gateway» pour les XML Firewall, car on attend de ces pare-feu un travail plus qu’un conventionnel pare-feu.  Les XML Firewalls utilisent soit des techniques exactes (basées sur les signatures) ou des méthodes probabilistes basées sur le data mining et l’intelligence artificielle pour la sécurisation des
  21. 21. XML FIREWALLS/XML SECURITY GATEWAYS
  22. 22. XML FIREWALLS/XML SECURITY GATEWAYS
  23. 23. XML FIREWALLS/XML SECURITY GATEWAYS from netfilterqueue import NetfilterQueue from verification import verifier def verif(pkt) : if not (SOAPmessage(pkt.get_payload()) : pkt.accept() else : if verifier(pkt.get_payload()) : pkt.accept() else : pkt.drop() nfqueue = NetfilterQueue() nfqueue.bind(1, verif) try : nfqueue.run() except KeyboardInterrupt : print
  24. 24. XML FIREWALLS/XML SECURITY GATEWAYS  Statistiques des tests effectués: 170 messages injections SQL. 30 messages injections de commandes OS. 120 messages injections XML. 80 messages injections XPath. 150 bons messages déjà vu (période d’apprentissage). 150 bons messages nouveaux. Un échantillon d’apprentissage de 10000 messages. Résultats obtenus : 16 Faux Positifs (bon messages signalés malveillants à tord) et 0 faux négatifs (messages malveillants signalés bons par erreur).
  25. 25. CONCLUSION  Implémenter les standards WS-Security.  Utiliser une sécurité périmétrique XML Firewalls.  Secure Coding !  WS-Security VS Sécurité Périmétrique ?  To SOAP or NOT ?  To SECURE SOAP or NOT? That’s the question

×