Upload
lyhanh
View
223
Download
0
Embed Size (px)
Citation preview
XSSF : démontrer le danger des XSSXSSFRAMEWORK
Ludovic COURGNAUD
8 juin 2011
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
1 Principes
2 XSSFRAMEWORK
3 Protections XSS
2 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
1 PrincipesCross-Site Scripting (XSS)Utilité d’un frameworkÉlements perturbateurs ?
2 XSSFRAMEWORK
3 Protections XSS
3 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Kézako ? ? ? XSSF
<script> alert(‘Définition’) </script>Injection de données arbitraires dans les paramètres d’uneapplication webExécution de code malveillant sur le navigateur web
Expliquer les risques ?Explications souvent limitées à des PoC (popup, vol decookie, etc.)Adaptation de l’attaque pour chaque vulnérabilitérencontrée
4 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Kézako ? ? ? XSSF
<script> alert(‘Définition’) </script>Injection de données arbitraires dans les paramètres d’uneapplication webExécution de code malveillant sur le navigateur web
Expliquer les risques ?Explications souvent limitées à des PoC (popup, vol decookie, etc.)Adaptation de l’attaque pour chaque vulnérabilitérencontrée
4 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Pourquoi un nouveau Framework ? XSSF
C’est pour mieux t’attaquer, mon enfant !Attaque générique quelle que soit la XSSMise à disposition d’une bibliothèque d’attaquesIntégration directement dans Metasploit Framework
5 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Aarrgghhh : Same-Origin Policy (SOP) XSSF
Mesure de sécurité à l’intérieur du navigateurRestreint les échanges de données entre deux domaines(AJAX)Pourquoi es-tu si méchante ? ? ?
Impossibilité de récupérer des données depuis un domaineB vers un domaine vulnérable AImpossibilité d’envoyer des données vers un domaine Bdepuis un domaine vulnérable A
6 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Ouuff : “Contournement” de la SOP XSSF
Récupération de données vers le navigateur
Envoie de données depuis le navigateur
7 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Ouuff : “Contournement” de la SOP XSSF
Récupération de données vers le navigateur
Envoie de données depuis le navigateur
7 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
HTML5 : A new hope ! XSSF
Support du HTML5 par les nouveaux navigateursPortée des attaques XSS élargie :
Nouvelles balises HTML et évènements JavaScriptCross-Origin Resource Sharing :
Possibilité de désactiver la SOP entre deux domainesConfiguration d’un serveur d’attaque possible pour autoriserles chargements de données depuis un domaine attaqué
8 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
1 Principes
2 XSSFRAMEWORK
PrincipesAttaques XSSRebond et tunnel XSS
3 Protections XSS
9 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Intégration dans Metasploit XSSF
Mais t’as quoi ? ? ? Metasploit !
Projet open-sourceMSF est un dessous-projets de MetasploitDéveloppement etexécution d’exploits contreune machine distanteUtilisé par :
Auditeurs pour tester leniveau de vulnérabilitédes systèmesPirates pour exploiterdes machines distantes
10 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
One ring to rule them all. . . XSSF
11 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
A l’attaque ! XSSF
Injection du fichier “http://10.100.48.247:8888/loop”
12 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Module XSSF XSSF
13 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Exploits MSF + XSSF XSSF
Gestion simple des modules :Codés “à la façon MSF”MSF possède ses modulesXSSF possède ses modulesChacun peut utiliser les modules de l’autre
Lancement d’exploits MSF depuis une XSS :Exploits ciblésSuite d’exploits possibleAucune modification nécessaire sur les exploits existantsContrôle total de la machine
14 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Démonstration XSSF
http://securitytube.net/XSSF-(Attacking-with-XSS-using-Metasploit)-Part-1-video.aspx
http://blog.conixsecurity.fr/?p=436
15 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
XSSF Tunnel XSSF
16 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
“Tunnelé” ! XSSF
17 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Démonstration XSSF
http://securitytube.net/XSSF-(Attacking-with-XSS-using-Metasploit)-Part-2-video.aspx
18 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
1 Principes
2 XSSFRAMEWORK
3 Protections XSSProtectionsSolutions réelles ?
19 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Bloqueurs XSS XSSF
AvantagesBlocage préventif de scripts basé sur une liste blanchePermet d’éviter l’exploitation de failles
InconvénientsSystème très restrictifVulnérabilité XSS sur un site de confiance ?
20 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Bloqueurs XSS XSSF
AvantagesBlocage préventif de scripts basé sur une liste blanchePermet d’éviter l’exploitation de failles
InconvénientsSystème très restrictifVulnérabilité XSS sur un site de confiance ?
20 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Web Application Firewalls (WAF) XSSF
AvantagesCréation de règles personnalisées de conversation HTTPRegroupement des contrôles sur un même niveauPrévention contres les attaques de type XSS ou SQLi
InconvénientsImpossibilité de détecter tous les codes malicieux
eval(eval((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+"(+[])"))eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 48, 41, 59));
Nécessité de mettre à jour régulièrement les règles
21 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Web Application Firewalls (WAF) XSSF
AvantagesCréation de règles personnalisées de conversation HTTPRegroupement des contrôles sur un même niveauPrévention contres les attaques de type XSS ou SQLi
InconvénientsImpossibilité de détecter tous les codes malicieux
eval(eval((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!+[]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+"(+[])"))eval(String.fromCharCode(97, 108, 101, 114, 116, 40, 48, 41, 59));
Nécessité de mettre à jour régulièrement les règles
21 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Filtres XSS XSSF
AvantagesPermet d’éviter les attaques XSS volatiles (75% des XSS)Filtre la réponse HTTP en fonction de la requête
InconvénientsPas de filtre pour les XSS persistantesCertaines applications restent vulnérablesDifficulté à filtrer tous les codes JavaScript :
Exemple de bypass récent découvert sur Chrome :<img src=none onerror="XSS">
22 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Filtres XSS XSSF
AvantagesPermet d’éviter les attaques XSS volatiles (75% des XSS)Filtre la réponse HTTP en fonction de la requête
InconvénientsPas de filtre pour les XSS persistantesCertaines applications restent vulnérablesDifficulté à filtrer tous les codes JavaScript :
Exemple de bypass récent découvert sur Chrome :<img src=none onerror="XSS">
22 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Avenir des protections ? XSSF
Templates d’auto-échappements XSSÉchanges structurés entre client et serveur (XML, etc.)Facebook XHP, Google CSAS, OWASP JXTObligation d’adapter le projet au template utilisé !
JavaScript SandboxingUtilisation du JavaScript pour contrôler le JavaScriptContrôle des éléments tiers (iframes, scripts) lancés àl’intérieur d’une applicationGoogle CAJA, JSReg, ECMAScript 5
Évolution des protections dans les navigateursFiltres XSSSupports de nouvelles en-têtes HTTP(X-Content-Security-Policy sur Firefox)
23 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
“Security is not a product : it’s a process. . .” XSSF
JavaScript utilisé sur une majorité d’applicationsPas de solution miracle côté clientSensibilisation des développeurs aux failles XSS (coût ?)Filtrage de toutes les entrées utilisateur côté serveurMise en place de protections à l’intérieur même desnavigateurs
24 / 26
Introduction Principes XSSFRAMEWORK Protections XSS Conclusion
Première version mise en ligne il y a quelques moisNombreux retours de personnes ayant testé XSSFDeuxième version fin juin 2011
Gestion des échanges binairesInterface graphique pour les logsAméliorations et corrections de bugsEncore de gros problèmes pour l’échange de résultatsd’attaques en HTTPS et notamment pour l’utilisation duTunnel XSS
Intégration officielle Metasploit ?Hébergement sur Google Code ?
25 / 26