Télécharger la présentation
Publié parJean-Bernard Achille Lebrun Modifié depuis plus de 8 années
1
Violation de Gestion d'Authentification et de Session
2
Mise en contexte Informations d’authentification : Username / password
Session : Génération d’un session ID unique Session ID cookie ou URL But : Preuve d’authentification Éviter de passer les informations confidentielles du user
3
Présentation du problème
Méthode de Hijacking Emprunte identité du user (session ID) Danger : Envoyer demandes au site web à partir des privilèges du vrai user Risque d’attaque si : - User interaction avec un site affecté - L’attaquant a réussi a prédire le session ID du user User peut ne pas se douter de l’intrusion
4
Environnements affectés
Cookies URL de sites web Champs de formulaires invisible pour l’utilisateur Tous les Framework d’applications web sont vulnérables
5
Attaques possibles Prérequis:
Posséder au moins 1 ID de session valide pour prédire/deviner les autres Analyser Déterminer l’algorithme de génération Attaques : Se connecter à l’application web avec ID de session trouvé Brute Force le prochain ID de session Échanger la valeur actuelle dans le cookie/URL avec l’ID du prochain user
6
Cas possibles Partage d’URL en étant authentifié
Timeouts mal définies (fermer l’app ne déconnecte pas) Capture de paquets non sécurisés
7
Exemple 1 Solution : Empêcher d’accepter les ID par GET/POST
session.use_only_cookies = ID dans URL Mis à 0 par défaut Encrypter le session ID
8
Exemple 2 - Solution : Intégrer configuration SSL
9
Exemple 3 GET /profile.php HTTP/1.1
Requête 1: GET / HTTP/1.1 Host: example.org User-Agent: Mozilla/5.0 Accept: text/xml, image/png, image/jpeg, image/gif, */* Cookie: PHPSESSID=1234 Requête 2: GET /profile.php HTTP/1.1 User-Agent: Mozilla/5.0 (compatible; MSIE) Accept: text/xml, image/jpeg, image/png, image/gif, */*
10
Exemple 3 solution <?php session_start();
if (isset($_SESSION['HTTP_USER_AGENT']) && $_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) { /* Vérifier le mot de passe*/ exit; } else { $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']); } ?>
11
Comment faire pour éviter
Indices d’occurrence : User: Le site répond différemment à une entrée du user Le site arrête de fonctionner pour une raison inconnue Host: Requêtes avec ID invalide Même IP pour chaque requête d’ID différent 2 ID connectés en même temps
12
Comment faire pour éviter
Solutions/mesures de sécurité : Grande source de hasard pour ID de session Agrandir l’ID Expirer l’ID Limiter nb d’erreurs de connection Brute Force Pas donner d’indice quant à l’origine de l’erreur Pas utiliser les informations du User pour générer Encrypter l’ID lorsqu’il est exposé au User ex : Rangé dans un cookie en format encrypté Pas exposer ID valide dans les URL/logs Accepter seulement ID générés par serveur
13
Conclusion Méthode doit être prise en compte:
Faille évidente et compromettante Peu rendre le site vulnérable Facilement évitable sécurité
14
Sources Prediction&gws_rd=cr&ei=egxRVpXKOcOoe6jokaAE
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.