2. SOMMAIRE
Qu’est ce qu’un WEB Service
Web Services SOAP
Risques et Menaces
Réduction des risques
Conclusion
Questions
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. 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. ENVIRONNEMENT A WEB SERVICES
TYPIQUE
SOURCE: Mastering Web Services Security
www.wiley.com
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. 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é
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. 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.
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.
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. 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
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. 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. 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