SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
1 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Sécurité de la session
Louis Nadeau
2 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Qui suis-je?
• Gestionnaire de la sécurité applicative chez Bentley Systems
• « L’équipe de sécurité applicative est principalement
responsable de défendre une plateforme Cloud (sur Microsoft
Azure) appelée Bentley CONNECT. Celle-ci permet aux
applications mobiles, de bureaux et serveurs d’effectuer des
simulations, de la manipulation de données géospatiales, de la
surveillance d’infrastructure, etc. L’équipe est aussi
responsable de la sécurité de tous les produits Bentley (>600)
et coordonne un réseau de plus de 130 champions de la
sécurité »
• Aussi vice-leader d’OWASP Québec 
3 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Bentley Systems
• « Fondé en 1984, Bentley compte aujourd’hui plus de 3 000 collaborateurs
dans 50 pays, pour un chiffre d’affaires annuel de 600 millions de dollars.
Depuis 2005, Bentley a investi plus de 1 milliard de dollars dans la
recherche, le développement et les acquisitions. »
• « Bentley est le premier fournisseur mondial de solutions logicielles
dédiées aux architectes, aux ingénieurs, aux professionnels du secteur géo-
spatial, aux constructeurs et aux propriétaires-exploitants de
l’infrastructure mondiale. Bentley utilise la mobilité de l’information pour
améliorer la performance des actifs liés à l’infrastructure en exploitant au
mieux la modélisation des données au travers de projets intégrés pour une
infrastructure intelligente. Ses solutions comprennent la plateforme
MicroStation pour la conception et la modélisation de l’infrastructure, la
plateforme ProjectWise pour la collaboration en équipe et le partage des
tâches sur des projets d’infrastructure et la plateforme AssetWise pour les
opérations sur les installations d’infrastructure »
4 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Plan
• Intro
• Attaques et défenses des sessions
• Autres sujets connexes
5 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Intro
6 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Qu’est-ce qu’une session ?
• OFQ 1997 :
– « Période de temps continue qui s'écoule entre la connexion et la
déconnexion à un réseau ou à un système, ou encore entre
l'ouverture et la fermeture d'un logiciel d'application. »
– « Une session peut donc être le temps pendant lequel un utilisateur
est connecté à un ordinateur ou pendant lequel plusieurs
ordinateurs communiquent entre eux (dans ces cas-là, on peut parler
de session de communication).Une session est aussi le temps
pendant lequel un utilisateur se sert d'un logiciel d'application (dans
ce cas-là, on peut parler de session de travail). »
7 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Pourquoi utiliser des sessions?
• Pour
– Minimisation du transport de données sensible:
• Jeton de sécurité ou du mot de passe
– Plus pratique et ergonomique pour l’utilisateur
• Contre
– Implique plus de code
– Augmente la surface d’attaque
– Plus complexe à défendre
8 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
OWASP et session
• OWASP Top 10
– A1 Injection
– A2 Broken Authentication and Session Management
– A3 Cross-Site Scripting (XSS)
– A4 Insecure Direct Object References
– A5 Security Misconfiguration
– A6 Sensitive Data Exposure
– A7 Missing Function Level Access Control
– A8 Cross-Site Request Forgery (CSRF)
– A9 Using Components with Known Vulnerabilities
– A10 Unvalidated Redirects and Forwards
9 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Session ≠ « cookies »
• En général : les cookies sont un moyen de
transporter et d’enregistrer l’identifiant de
session (Session ID)
• Quelquefois : toute la session peut être
dans le cookie lui-même (« stateless »)
– Exemple ASP.NET WIF : FedAuth
– Danger 1 : cookie crypté et signé qui contient
les « claims », les données de session et les
valeurs d’expiration
– Danger 2 : limite à la taille des cookies
• 4ko-16ko/cookie
• 20-100 cookies/domaine
• « Max header size »
10 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Attaques et défenses
11 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Types d’attaque sur les sessions
• « Session Hijacking Attack »
• « Session Fixation Attack »
• « Session Donation Attack »
• « Session Puzzling »
12 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking »
• « Session Hijacking attack compromises the session token by
stealing or predicting a valid session token to gain
unauthorized access to the Web Server.» --OWASP Web Site
• Le « session ID » peut être compromis de diverses façons, les
plus communes sont :
– « Session ID » prédictible
– Attaque sur le client (XSS, JavaScript malicieux, Trojan, etc.)
– « Man in the browser attack »
– « Session Sniffing »
– « Man in the middle (MITM) »
13 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : « Session ID » prédictible
• Voici le nombre de secondes attendu pour trouver le « session ID »
quand on fait une recherche force brute (détails) :
ҧ𝑡 =
2 𝐵
+ 1
2𝐴 ∙ 𝑆
• B est le nombre de bits d’entropie dans le « session ID »
• A est le nombre d’essaies par seconde
• S est le nombre de sessions valides
• Exemples :
– ASP.NET_SessionId=user01 ->B=6.64,A=1,S=1
• ≈50 sec
– ASP.NET_SessionId=e195581df71759985a96b9841ec0bc41 ->B=128,A=1,S=1
• ≈5x1030 years
14 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : « Session ID » prédictible
• Mitigation : utilisation de « session ID » très long
– Par exemple, en .NET utiliser RNGCryptoServiceProvider
• Erreurs de compréhension courantes :
– Un GUID est garanti contre les collisions, mais n’est pas garanti d’être
aléatoire
– Même si aléatoire (GUID v4), c’est pseudo-aléatoire, donc ça ne
résiste pas à une analyse cryptographique
• L’état interne peut être deviné
15 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : Attaque sur le client
• XSS
– <SCRIPT>alert(document.cookie);</SCRIPT>
– Mitigation : validation en entrée, encodage et
filtrage en sortie
• JavaScript malicieux (Ads)
– Mitigation Serveur : utiliser uniquement des
scripts venant de sources fiables
– Mitigation Client : Ads blocker
• Malware, spyware, etc.
– Mitigation : hygiène informatique (antivirus, ne
pas cliquer courriel, etc.)
16 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : « Sniffing »
• Applicable à :
– « Session sniffing »
– « Man in the middle »
– « Man in the browser »
• Voir OWASP
Step
1
Step
2
17 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : « Session Sniffing »
• Mitigations primaires :
– Sécurité du canal de transport
• Utiliser uniquement HTTPS
• TLS1.1 & 1.2
• Utiliser des algorithmes sécuritaires
– Fermer HTTP (pas juste rediriger)
• « Downgrade attack »
– Utiliser HSTS et HPKP
18 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Hijacking » : « Session Sniffing »
• Mitigations secondaires (« Security in depth »):
– Mettre des mesuresde sécurité sur les cookies:
• Flag « HttpOnly » et « Secure »
– Ne pas faire perdurer les cookies(« persistent»)
• Désactiver « auto-restore » dans les navigateurs
– Mettre des délais d’expiration courtssur les cookies
– Utiliser des délais d’expiration adéquats pour la session
(voir plus loin dans la présentation)
– Désactiver les cachesd’information en utilisant les
entêtes:
• Cache-Control: private, no-cache, no-store, max-age=0, no-
transform
• Pragma: no-cache
• Expires: 0
– Ne pas passer le « sessionID » par l’URL
• Mitigations tertiaires :
– Antivirus
– Minimiser les « plugins » de navigateur et les garder à
jour
19 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Fixation Attack »
1. L’attaqueur choisi un « session ID »
2. L’attaqueur trouve une façon de
définir son « session ID » dans la
cible
3. L’attaqueur attend
4. La cible envoie son mot de passe
sous le « session ID » malicieux
5. L’attaqueur a accès à la session et
aux données associées
• #2 et #4 sont les points de mitigation
20 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Fixation Attack »
• Mitigations primaires :
–Ne permettre aucun mécanisme pour définir un « session
ID » côté client
• Notamment, ne pas utiliser l’URL pour le « session ID » :
– GET www.bestappevar.com/?JSESSIONID=AttackerControledStuff
– Peut être exploité par des courriels de « phishing »
– Erreur fréquente : certains langages permettent de changer des variables internes si
passées en paramètre dans l’URL
» S’assurer que ce n’est pas le cas
» Si c’est le cas, désactiver ce mécanismeou défendre les variables importantes
(exemple : URL rewriting)
–Après une authentification réussies, changer le « session ID »
21 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Fixation Attack »
• Mitigations secondaires :
– Détruire la session quand il y a un
changement de mot de passe
– Détruire la session quand l’utilisateur
se déconnecte
• Empêche le pirate de continuer d’utiliser
une session active
• Le bouton « back » ne devrait pas
fonctionner après une déconnexion
• ASP.NET est problématique car
« stateless »
• Ne peut pas être fait complètement dans
un contexte« stateless »
– Garder des délais d’expiration courts
22 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Fixation Attack »
DÉMO
23 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Donation »
• Un attaqueur force quelqu’un à s’authentifier
en utilisant un compte malicieux
– L’attaqueur espère que la cible va entrer des
données sensibles comme des données de carte
de crédit qui pourront ensuite être réutilisées
– Pratique dans des scénarios où la validation ne
s’effectue qu’au début
• Souvent exploitée par une variante des « Cross
Site Reference Forgery (CSRF) », mais sur une
page d’authentification
24 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Donation »
• Mitigation : utilisation de mesures anti-CSRF sur la page de
connexion et de déconnexion
– Des jetons Anti-CSRF (AFT : « anti-forgery token ») peuvent être
utilisés
– Voir bonnes pratiques de l’OWASP ici :
https://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet
– Utilisation du « synchroniser » ou « double submit cookie pattern »
– Ces jetons peuvent être vus comme des « session ID »
supplémentaires
25 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
« Session Puzzling »
• Exploitable quand une séquence d’accès à des pages publiques
donne accès à des pages authentifiées, sans avoir à entrer de mots
de passe
• Causes :
– Remplissage prématuré des objets de sessionà partir de pages publiques
(exemple : page de changementde mot de passe)
– Garder en mémoire des informationsinutiles pour les tâches courantes
– Variables de sessionidentiques utilisées par plusieurs processus
– Manque de validation des données
– Mécanismesinefficientsou incompletsd’authentificationet d’autorisation
• Mitigations :
– Ne pas remplir les informationsde sessionavant une authentification
réussie
• Plus d’informations ici
26 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Autres bonnes pratiques connexes
27 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Expiration de session
• Plus c’est court, plus c’est sécuritaire
– Trouver le juste milieu entre le besoin de sécurité et
l’expérience utilisateur
• Trois types:
– Expiration absolue – demande à nouveau le mot de
passe
– Expiration de renouvellement – redonne une session
valide
– Expiration relative à l’activité (« sliding window »)
• Erreur fréquente : confondre l’expiration de
l’identifiant de session (« cookie ») avec l’expiration
de la session elle-même. Les deux peuvent avoir la
même valeur ou non.
• Gérer les délais d’activation dans un contexte de
« single sign on » ou de fédération peut être
complexe
– Pourrait être le sujet d’une autre conférence
28 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
SSO et multiples sessions
• Les bénéfices d’utiliser un « single sign-on » (SSO)
outrepassent les problèmes encourus mais :
– Plusieurs sessions coexistent et doivent être détruites séparément
dans leur système respectif
– Plusieurs ensembles de délais d’expiration existent simultanément et
doivent être cohérents
– La destruction de la session dans une application spécifique ne
termine pas nécessairement la session dans le SSO
• Naviguer dans le SSO peut permettre de revenir dans l’application sans mot
de passe
– Une déconnexion fédérée est nécessaire
• Peut être difficile et est prompt à faire des erreurs
29 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Difficultés de destruction de la session
• Il faut détruire le « session ID » après une déconnexion
• Erreur courante : la destruction du côté client est faite en
remplaçant le session par une valeur nulle, mais dans le
serveur la valeur reste active.
– Faire « back » après une déconnexion ne devrait pas fonctionner
– Peut être difficile dans un contexte « stateless »
• Il faut détruire la session après une réinitialisation de mot de
passe
– Montrer les sessions actives à l’utilisateur et leurs associations à des
IPs ou des machines
• Bien valider le « session ID »
– Une valeur nulle ou invalide devrait retourner à la page
d’authentification
30 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Exemples
• XSS dans déconnexion fédérée
– « Cookie » ou « Relying Party » malicieux
• « Cookies » de session interchangeables entre production et
DEV
• Session infinie quand on utilise Chrome
• « FedAuth cookies » dans des « logs » publics
• « Cookie puzzling »
31 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Détection d’attaques
• Générer des alertes quand :
– Une session expirée est utilisée
– Une valeur de « session ID » invalide est utilisée
– Une même session est utilisées à partir de plusieurs IPs
– Un même utilisateur a plusieurs sessions
– Etc.
32 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Conclusion
33 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Sommaire
• L’utilisation des sessions réduits l’exposition des mots de passe et
des jetons d’authentification, mais rend par contre d’autres types
d’attaques possibles
• Il faut connaitre les types d’attaques sur les sessions ainsi que leurs
mitigations :
– HTTPS
– « Session ID » long et aléatoire
– Changer le « sessionID » quand il y a certains évènementsimportants :
connexion,déconnexionet réinitialisation de mot de passe
– Bien comprendreles expirations et leurs interactions
– Les SSO demandentdes effortssupplémentairesde planification de gestion
de session
34 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Références
• https://www.owasp.org/index.php/Session_Management_Cheat_Sheet
• https://puzzlemall.googlecode.com/files/Session%20Puzzles%20-
%20Indirect%20Application%20Attack%20Vectors%20-
%2017%20May%202011%20-%20Presentation.pptx
• https://www.owasp.org/index.php/Insufficient_Session-ID_Length
• https://msdn.microsoft.com/en-
us/library/system.security.cryptography.rngcryptoserviceprovider(v=vs.110).aspx
• https://www.owasp.org/index.php/Session_hijacking_attack
• https://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet
35 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Contact
• Louis Nadeau
– Louis.Nadeau@Bentley.com
– Louis.Nadeau@OWASP.org
36 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated
Merci!
Questions?

Contenu connexe

Tendances

Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseAntonio Fontes
 
Monitoring avec Zabbix
Monitoring avec ZabbixMonitoring avec Zabbix
Monitoring avec ZabbixFourat Zouari
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebCyrille Grandval
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesPhonesec
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesXavier Kress
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le CloudSebastien Gioria
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPyaboukir
 
AWS et NBS System présentent la Très Haute Sécurité - Emile Heitor
AWS et NBS System présentent la Très Haute Sécurité - Emile HeitorAWS et NBS System présentent la Très Haute Sécurité - Emile Heitor
AWS et NBS System présentent la Très Haute Sécurité - Emile HeitorNBS System
 
Alphorm.com Formation Azure Active Directory
Alphorm.com Formation Azure Active DirectoryAlphorm.com Formation Azure Active Directory
Alphorm.com Formation Azure Active DirectoryAlphorm
 
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...Comment les administrateurs de systèmes peuvent ils détecter les pirates info...
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...michelcusin
 
Introduction vulnérabilité web
Introduction vulnérabilité webIntroduction vulnérabilité web
Introduction vulnérabilité webdavystoffel
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1Tarek MOHAMED
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebKlee Group
 
OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013Sébastien GIORIA
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Décideurs IT
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicativesBee_Ware
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm
 
Securing your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSecuring your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSebastien Gioria
 
Alphorm.com Formation Sécurité des réseaux avec Cisco
Alphorm.com Formation Sécurité des réseaux avec CiscoAlphorm.com Formation Sécurité des réseaux avec Cisco
Alphorm.com Formation Sécurité des réseaux avec CiscoAlphorm
 

Tendances (20)

Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
 
Monitoring avec Zabbix
Monitoring avec ZabbixMonitoring avec Zabbix
Monitoring avec Zabbix
 
Durcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative WebDurcissement de code - Sécurité Applicative Web
Durcissement de code - Sécurité Applicative Web
 
Sécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et MobilesSécurité des Développements Webs et Mobiles
Sécurité des Développements Webs et Mobiles
 
Les principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuellesLes principales failles de sécurité des applications Web actuelles
Les principales failles de sécurité des applications Web actuelles
 
Securite des Applications dans le Cloud
Securite des Applications dans le CloudSecurite des Applications dans le Cloud
Securite des Applications dans le Cloud
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASP
 
AWS et NBS System présentent la Très Haute Sécurité - Emile Heitor
AWS et NBS System présentent la Très Haute Sécurité - Emile HeitorAWS et NBS System présentent la Très Haute Sécurité - Emile Heitor
AWS et NBS System présentent la Très Haute Sécurité - Emile Heitor
 
Alphorm.com Formation Azure Active Directory
Alphorm.com Formation Azure Active DirectoryAlphorm.com Formation Azure Active Directory
Alphorm.com Formation Azure Active Directory
 
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...Comment les administrateurs de systèmes peuvent ils détecter les pirates info...
Comment les administrateurs de systèmes peuvent ils détecter les pirates info...
 
Introduction vulnérabilité web
Introduction vulnérabilité webIntroduction vulnérabilité web
Introduction vulnérabilité web
 
Sécurité des Applications WEB -LEVEL1
 Sécurité des Applications WEB-LEVEL1 Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB -LEVEL1
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013OWASP Top10 2013 - Présentation aux RSSIA 2013
OWASP Top10 2013 - Présentation aux RSSIA 2013
 
OWASP TOP 10 Proactive
OWASP TOP 10 ProactiveOWASP TOP 10 Proactive
OWASP TOP 10 Proactive
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
Les menaces applicatives
Les menaces applicativesLes menaces applicatives
Les menaces applicatives
 
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et WebAlphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
Alphorm.com Formation Hacking et Sécurité 2020 (4of4) : Attaques AD et Web
 
Securing your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FRSecuring your API and mobile application - API Connection FR
Securing your API and mobile application - API Connection FR
 
Alphorm.com Formation Sécurité des réseaux avec Cisco
Alphorm.com Formation Sécurité des réseaux avec CiscoAlphorm.com Formation Sécurité des réseaux avec Cisco
Alphorm.com Formation Sécurité des réseaux avec Cisco
 

En vedette

Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Se préparer aux cyberattaques. Brochure : Mettre en oeuvre la bonne stratégi...
Se préparer aux cyberattaques.  Brochure : Mettre en oeuvre la bonne stratégi...Se préparer aux cyberattaques.  Brochure : Mettre en oeuvre la bonne stratégi...
Se préparer aux cyberattaques. Brochure : Mettre en oeuvre la bonne stratégi...Symantec
 
Drupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesDrupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesJean-Baptiste Guerraz
 
Powerpoint réalité augmentée
Powerpoint réalité augmentéePowerpoint réalité augmentée
Powerpoint réalité augmentéeManon Bass
 
Realite augmentee et qr codes en éducation
Realite augmentee et qr codes en éducationRealite augmentee et qr codes en éducation
Realite augmentee et qr codes en éducationannedelannoy
 
Enjeux et évolutions de la sécurite informatique
Enjeux et évolutions de la sécurite informatiqueEnjeux et évolutions de la sécurite informatique
Enjeux et évolutions de la sécurite informatiqueMaxime ALAY-EDDINE
 
Sécurité des systèmes d'information
Sécurité des systèmes d'informationSécurité des systèmes d'information
Sécurité des systèmes d'informationFranck Franchin
 
La Réalité Augmentée - C'est quoi ?
La Réalité Augmentée - C'est quoi ?La Réalité Augmentée - C'est quoi ?
La Réalité Augmentée - C'est quoi ?You to You
 
Mas Redes, Más Marketing - Sales & Marketing Forum
Mas Redes, Más Marketing - Sales & Marketing ForumMas Redes, Más Marketing - Sales & Marketing Forum
Mas Redes, Más Marketing - Sales & Marketing ForumHermes Ruiz
 
FRENCH:EGYPT
FRENCH:EGYPTFRENCH:EGYPT
FRENCH:EGYPTcariam
 
6èmes rencontres régionales Cyber-base - clé USB
6èmes rencontres régionales Cyber-base - clé USB6èmes rencontres régionales Cyber-base - clé USB
6èmes rencontres régionales Cyber-base - clé USBJean Paul LARENG
 

En vedette (20)

Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (2éme partie) élaborée par Marouan OMEZZINE
 
Se préparer aux cyberattaques. Brochure : Mettre en oeuvre la bonne stratégi...
Se préparer aux cyberattaques.  Brochure : Mettre en oeuvre la bonne stratégi...Se préparer aux cyberattaques.  Brochure : Mettre en oeuvre la bonne stratégi...
Se préparer aux cyberattaques. Brochure : Mettre en oeuvre la bonne stratégi...
 
Drupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptesDrupal, les hackers, la sécurité & les (très) grands comptes
Drupal, les hackers, la sécurité & les (très) grands comptes
 
La réalité augmentée
La réalité augmentéeLa réalité augmentée
La réalité augmentée
 
Powerpoint réalité augmentée
Powerpoint réalité augmentéePowerpoint réalité augmentée
Powerpoint réalité augmentée
 
Cookie and session
Cookie and sessionCookie and session
Cookie and session
 
Realite augmentee et qr codes en éducation
Realite augmentee et qr codes en éducationRealite augmentee et qr codes en éducation
Realite augmentee et qr codes en éducation
 
Enjeux et évolutions de la sécurite informatique
Enjeux et évolutions de la sécurite informatiqueEnjeux et évolutions de la sécurite informatique
Enjeux et évolutions de la sécurite informatique
 
Sécurité des systèmes d'information
Sécurité des systèmes d'informationSécurité des systèmes d'information
Sécurité des systèmes d'information
 
La Réalité Augmentée - C'est quoi ?
La Réalité Augmentée - C'est quoi ?La Réalité Augmentée - C'est quoi ?
La Réalité Augmentée - C'est quoi ?
 
La danza hoy en el chaco
La danza hoy en el chacoLa danza hoy en el chaco
La danza hoy en el chaco
 
2012 01-05 leccionadultos
2012 01-05 leccionadultos2012 01-05 leccionadultos
2012 01-05 leccionadultos
 
Valenoticias
ValenoticiasValenoticias
Valenoticias
 
Mas Redes, Más Marketing - Sales & Marketing Forum
Mas Redes, Más Marketing - Sales & Marketing ForumMas Redes, Más Marketing - Sales & Marketing Forum
Mas Redes, Más Marketing - Sales & Marketing Forum
 
2011 04-11 compilacionres
2011 04-11 compilacionres2011 04-11 compilacionres
2011 04-11 compilacionres
 
FRENCH:EGYPT
FRENCH:EGYPTFRENCH:EGYPT
FRENCH:EGYPT
 
6èmes rencontres régionales Cyber-base - clé USB
6èmes rencontres régionales Cyber-base - clé USB6èmes rencontres régionales Cyber-base - clé USB
6èmes rencontres régionales Cyber-base - clé USB
 
Caminata por la paz eventos
Caminata por la paz eventosCaminata por la paz eventos
Caminata por la paz eventos
 
Agrandir ! n°13
Agrandir ! n°13Agrandir ! n°13
Agrandir ! n°13
 
Unidad2.sub u2
Unidad2.sub u2Unidad2.sub u2
Unidad2.sub u2
 

Similaire à OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis Nadeau

Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securitejumeletArnaud
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfdepinfo
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSJulien SIMON
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesOVHcloud
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
M365 virtualmarathon gestion des pc windows 10 - l gebeau - jy trarbach
M365 virtualmarathon   gestion des pc windows 10 - l gebeau - jy trarbachM365 virtualmarathon   gestion des pc windows 10 - l gebeau - jy trarbach
M365 virtualmarathon gestion des pc windows 10 - l gebeau - jy trarbachjean-yves Trarbach
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Microsoft Technet France
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)Clément OUDOT
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Conception et développement d’une solution de sécurisation de l’échange et du...
Conception et développement d’une solution de sécurisation de l’échange et du...Conception et développement d’une solution de sécurisation de l’échange et du...
Conception et développement d’une solution de sécurisation de l’échange et du...Iheb Ben Salem
 
Ux012 formation-mysql-configuration-et-administration
Ux012 formation-mysql-configuration-et-administrationUx012 formation-mysql-configuration-et-administration
Ux012 formation-mysql-configuration-et-administrationCERTyou Formation
 
resume-theorique-m212-cybersecurite-v1-1509-_2.pdf
resume-theorique-m212-cybersecurite-v1-1509-_2.pdfresume-theorique-m212-cybersecurite-v1-1509-_2.pdf
resume-theorique-m212-cybersecurite-v1-1509-_2.pdfFootballLovers9
 
ObserveIt Produit Information
ObserveIt Produit InformationObserveIt Produit Information
ObserveIt Produit InformationObserveIT
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Vincent Biret
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...Modern Workplace Conference Paris
 
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...NetSecure Day
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secretsAymeric Bouillat
 

Similaire à OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis Nadeau (20)

Webinar bonnes pratiques securite
Webinar   bonnes pratiques securiteWebinar   bonnes pratiques securite
Webinar bonnes pratiques securite
 
chap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdfchap 4 Sécurité des accès.pdf
chap 4 Sécurité des accès.pdf
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWS
 
Webinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud DatabasesWebinar - Enterprise Cloud Databases
Webinar - Enterprise Cloud Databases
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
M365 virtualmarathon gestion des pc windows 10 - l gebeau - jy trarbach
M365 virtualmarathon   gestion des pc windows 10 - l gebeau - jy trarbachM365 virtualmarathon   gestion des pc windows 10 - l gebeau - jy trarbach
M365 virtualmarathon gestion des pc windows 10 - l gebeau - jy trarbach
 
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
Azure IaaS : concevoir en architecture sécurisée en tirant bénéfice des nouve...
 
LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)LemonLDAP::NG et le support SAML2 (RMLL 2010)
LemonLDAP::NG et le support SAML2 (RMLL 2010)
 
Cahier des charges
Cahier des charges Cahier des charges
Cahier des charges
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Systemes authentification
Systemes authentificationSystemes authentification
Systemes authentification
 
Conception et développement d’une solution de sécurisation de l’échange et du...
Conception et développement d’une solution de sécurisation de l’échange et du...Conception et développement d’une solution de sécurisation de l’échange et du...
Conception et développement d’une solution de sécurisation de l’échange et du...
 
Ux012 formation-mysql-configuration-et-administration
Ux012 formation-mysql-configuration-et-administrationUx012 formation-mysql-configuration-et-administration
Ux012 formation-mysql-configuration-et-administration
 
resume-theorique-m212-cybersecurite-v1-1509-_2.pdf
resume-theorique-m212-cybersecurite-v1-1509-_2.pdfresume-theorique-m212-cybersecurite-v1-1509-_2.pdf
resume-theorique-m212-cybersecurite-v1-1509-_2.pdf
 
ObserveIt Produit Information
ObserveIt Produit InformationObserveIt Produit Information
ObserveIt Produit Information
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...
#NSD16 - btle juice, un framework d’interception pour le bluetooth low energy...
 
La mise en cache et ses secrets
La mise en cache et ses secretsLa mise en cache et ses secrets
La mise en cache et ses secrets
 

OWASP Québec - Attaques et techniques de défense des sessions Web - par Louis Nadeau

  • 1. 1 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Sécurité de la session Louis Nadeau
  • 2. 2 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Qui suis-je? • Gestionnaire de la sécurité applicative chez Bentley Systems • « L’équipe de sécurité applicative est principalement responsable de défendre une plateforme Cloud (sur Microsoft Azure) appelée Bentley CONNECT. Celle-ci permet aux applications mobiles, de bureaux et serveurs d’effectuer des simulations, de la manipulation de données géospatiales, de la surveillance d’infrastructure, etc. L’équipe est aussi responsable de la sécurité de tous les produits Bentley (>600) et coordonne un réseau de plus de 130 champions de la sécurité » • Aussi vice-leader d’OWASP Québec 
  • 3. 3 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Bentley Systems • « Fondé en 1984, Bentley compte aujourd’hui plus de 3 000 collaborateurs dans 50 pays, pour un chiffre d’affaires annuel de 600 millions de dollars. Depuis 2005, Bentley a investi plus de 1 milliard de dollars dans la recherche, le développement et les acquisitions. » • « Bentley est le premier fournisseur mondial de solutions logicielles dédiées aux architectes, aux ingénieurs, aux professionnels du secteur géo- spatial, aux constructeurs et aux propriétaires-exploitants de l’infrastructure mondiale. Bentley utilise la mobilité de l’information pour améliorer la performance des actifs liés à l’infrastructure en exploitant au mieux la modélisation des données au travers de projets intégrés pour une infrastructure intelligente. Ses solutions comprennent la plateforme MicroStation pour la conception et la modélisation de l’infrastructure, la plateforme ProjectWise pour la collaboration en équipe et le partage des tâches sur des projets d’infrastructure et la plateforme AssetWise pour les opérations sur les installations d’infrastructure »
  • 4. 4 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Plan • Intro • Attaques et défenses des sessions • Autres sujets connexes
  • 5. 5 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Intro
  • 6. 6 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Qu’est-ce qu’une session ? • OFQ 1997 : – « Période de temps continue qui s'écoule entre la connexion et la déconnexion à un réseau ou à un système, ou encore entre l'ouverture et la fermeture d'un logiciel d'application. » – « Une session peut donc être le temps pendant lequel un utilisateur est connecté à un ordinateur ou pendant lequel plusieurs ordinateurs communiquent entre eux (dans ces cas-là, on peut parler de session de communication).Une session est aussi le temps pendant lequel un utilisateur se sert d'un logiciel d'application (dans ce cas-là, on peut parler de session de travail). »
  • 7. 7 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Pourquoi utiliser des sessions? • Pour – Minimisation du transport de données sensible: • Jeton de sécurité ou du mot de passe – Plus pratique et ergonomique pour l’utilisateur • Contre – Implique plus de code – Augmente la surface d’attaque – Plus complexe à défendre
  • 8. 8 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated OWASP et session • OWASP Top 10 – A1 Injection – A2 Broken Authentication and Session Management – A3 Cross-Site Scripting (XSS) – A4 Insecure Direct Object References – A5 Security Misconfiguration – A6 Sensitive Data Exposure – A7 Missing Function Level Access Control – A8 Cross-Site Request Forgery (CSRF) – A9 Using Components with Known Vulnerabilities – A10 Unvalidated Redirects and Forwards
  • 9. 9 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Session ≠ « cookies » • En général : les cookies sont un moyen de transporter et d’enregistrer l’identifiant de session (Session ID) • Quelquefois : toute la session peut être dans le cookie lui-même (« stateless ») – Exemple ASP.NET WIF : FedAuth – Danger 1 : cookie crypté et signé qui contient les « claims », les données de session et les valeurs d’expiration – Danger 2 : limite à la taille des cookies • 4ko-16ko/cookie • 20-100 cookies/domaine • « Max header size »
  • 10. 10 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Attaques et défenses
  • 11. 11 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Types d’attaque sur les sessions • « Session Hijacking Attack » • « Session Fixation Attack » • « Session Donation Attack » • « Session Puzzling »
  • 12. 12 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » • « Session Hijacking attack compromises the session token by stealing or predicting a valid session token to gain unauthorized access to the Web Server.» --OWASP Web Site • Le « session ID » peut être compromis de diverses façons, les plus communes sont : – « Session ID » prédictible – Attaque sur le client (XSS, JavaScript malicieux, Trojan, etc.) – « Man in the browser attack » – « Session Sniffing » – « Man in the middle (MITM) »
  • 13. 13 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : « Session ID » prédictible • Voici le nombre de secondes attendu pour trouver le « session ID » quand on fait une recherche force brute (détails) : ҧ𝑡 = 2 𝐵 + 1 2𝐴 ∙ 𝑆 • B est le nombre de bits d’entropie dans le « session ID » • A est le nombre d’essaies par seconde • S est le nombre de sessions valides • Exemples : – ASP.NET_SessionId=user01 ->B=6.64,A=1,S=1 • ≈50 sec – ASP.NET_SessionId=e195581df71759985a96b9841ec0bc41 ->B=128,A=1,S=1 • ≈5x1030 years
  • 14. 14 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : « Session ID » prédictible • Mitigation : utilisation de « session ID » très long – Par exemple, en .NET utiliser RNGCryptoServiceProvider • Erreurs de compréhension courantes : – Un GUID est garanti contre les collisions, mais n’est pas garanti d’être aléatoire – Même si aléatoire (GUID v4), c’est pseudo-aléatoire, donc ça ne résiste pas à une analyse cryptographique • L’état interne peut être deviné
  • 15. 15 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : Attaque sur le client • XSS – <SCRIPT>alert(document.cookie);</SCRIPT> – Mitigation : validation en entrée, encodage et filtrage en sortie • JavaScript malicieux (Ads) – Mitigation Serveur : utiliser uniquement des scripts venant de sources fiables – Mitigation Client : Ads blocker • Malware, spyware, etc. – Mitigation : hygiène informatique (antivirus, ne pas cliquer courriel, etc.)
  • 16. 16 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : « Sniffing » • Applicable à : – « Session sniffing » – « Man in the middle » – « Man in the browser » • Voir OWASP Step 1 Step 2
  • 17. 17 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : « Session Sniffing » • Mitigations primaires : – Sécurité du canal de transport • Utiliser uniquement HTTPS • TLS1.1 & 1.2 • Utiliser des algorithmes sécuritaires – Fermer HTTP (pas juste rediriger) • « Downgrade attack » – Utiliser HSTS et HPKP
  • 18. 18 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Hijacking » : « Session Sniffing » • Mitigations secondaires (« Security in depth »): – Mettre des mesuresde sécurité sur les cookies: • Flag « HttpOnly » et « Secure » – Ne pas faire perdurer les cookies(« persistent») • Désactiver « auto-restore » dans les navigateurs – Mettre des délais d’expiration courtssur les cookies – Utiliser des délais d’expiration adéquats pour la session (voir plus loin dans la présentation) – Désactiver les cachesd’information en utilisant les entêtes: • Cache-Control: private, no-cache, no-store, max-age=0, no- transform • Pragma: no-cache • Expires: 0 – Ne pas passer le « sessionID » par l’URL • Mitigations tertiaires : – Antivirus – Minimiser les « plugins » de navigateur et les garder à jour
  • 19. 19 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Fixation Attack » 1. L’attaqueur choisi un « session ID » 2. L’attaqueur trouve une façon de définir son « session ID » dans la cible 3. L’attaqueur attend 4. La cible envoie son mot de passe sous le « session ID » malicieux 5. L’attaqueur a accès à la session et aux données associées • #2 et #4 sont les points de mitigation
  • 20. 20 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Fixation Attack » • Mitigations primaires : –Ne permettre aucun mécanisme pour définir un « session ID » côté client • Notamment, ne pas utiliser l’URL pour le « session ID » : – GET www.bestappevar.com/?JSESSIONID=AttackerControledStuff – Peut être exploité par des courriels de « phishing » – Erreur fréquente : certains langages permettent de changer des variables internes si passées en paramètre dans l’URL » S’assurer que ce n’est pas le cas » Si c’est le cas, désactiver ce mécanismeou défendre les variables importantes (exemple : URL rewriting) –Après une authentification réussies, changer le « session ID »
  • 21. 21 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Fixation Attack » • Mitigations secondaires : – Détruire la session quand il y a un changement de mot de passe – Détruire la session quand l’utilisateur se déconnecte • Empêche le pirate de continuer d’utiliser une session active • Le bouton « back » ne devrait pas fonctionner après une déconnexion • ASP.NET est problématique car « stateless » • Ne peut pas être fait complètement dans un contexte« stateless » – Garder des délais d’expiration courts
  • 22. 22 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Fixation Attack » DÉMO
  • 23. 23 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Donation » • Un attaqueur force quelqu’un à s’authentifier en utilisant un compte malicieux – L’attaqueur espère que la cible va entrer des données sensibles comme des données de carte de crédit qui pourront ensuite être réutilisées – Pratique dans des scénarios où la validation ne s’effectue qu’au début • Souvent exploitée par une variante des « Cross Site Reference Forgery (CSRF) », mais sur une page d’authentification
  • 24. 24 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Donation » • Mitigation : utilisation de mesures anti-CSRF sur la page de connexion et de déconnexion – Des jetons Anti-CSRF (AFT : « anti-forgery token ») peuvent être utilisés – Voir bonnes pratiques de l’OWASP ici : https://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet – Utilisation du « synchroniser » ou « double submit cookie pattern » – Ces jetons peuvent être vus comme des « session ID » supplémentaires
  • 25. 25 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated « Session Puzzling » • Exploitable quand une séquence d’accès à des pages publiques donne accès à des pages authentifiées, sans avoir à entrer de mots de passe • Causes : – Remplissage prématuré des objets de sessionà partir de pages publiques (exemple : page de changementde mot de passe) – Garder en mémoire des informationsinutiles pour les tâches courantes – Variables de sessionidentiques utilisées par plusieurs processus – Manque de validation des données – Mécanismesinefficientsou incompletsd’authentificationet d’autorisation • Mitigations : – Ne pas remplir les informationsde sessionavant une authentification réussie • Plus d’informations ici
  • 26. 26 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Autres bonnes pratiques connexes
  • 27. 27 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Expiration de session • Plus c’est court, plus c’est sécuritaire – Trouver le juste milieu entre le besoin de sécurité et l’expérience utilisateur • Trois types: – Expiration absolue – demande à nouveau le mot de passe – Expiration de renouvellement – redonne une session valide – Expiration relative à l’activité (« sliding window ») • Erreur fréquente : confondre l’expiration de l’identifiant de session (« cookie ») avec l’expiration de la session elle-même. Les deux peuvent avoir la même valeur ou non. • Gérer les délais d’activation dans un contexte de « single sign on » ou de fédération peut être complexe – Pourrait être le sujet d’une autre conférence
  • 28. 28 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated SSO et multiples sessions • Les bénéfices d’utiliser un « single sign-on » (SSO) outrepassent les problèmes encourus mais : – Plusieurs sessions coexistent et doivent être détruites séparément dans leur système respectif – Plusieurs ensembles de délais d’expiration existent simultanément et doivent être cohérents – La destruction de la session dans une application spécifique ne termine pas nécessairement la session dans le SSO • Naviguer dans le SSO peut permettre de revenir dans l’application sans mot de passe – Une déconnexion fédérée est nécessaire • Peut être difficile et est prompt à faire des erreurs
  • 29. 29 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Difficultés de destruction de la session • Il faut détruire le « session ID » après une déconnexion • Erreur courante : la destruction du côté client est faite en remplaçant le session par une valeur nulle, mais dans le serveur la valeur reste active. – Faire « back » après une déconnexion ne devrait pas fonctionner – Peut être difficile dans un contexte « stateless » • Il faut détruire la session après une réinitialisation de mot de passe – Montrer les sessions actives à l’utilisateur et leurs associations à des IPs ou des machines • Bien valider le « session ID » – Une valeur nulle ou invalide devrait retourner à la page d’authentification
  • 30. 30 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Exemples • XSS dans déconnexion fédérée – « Cookie » ou « Relying Party » malicieux • « Cookies » de session interchangeables entre production et DEV • Session infinie quand on utilise Chrome • « FedAuth cookies » dans des « logs » publics • « Cookie puzzling »
  • 31. 31 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Détection d’attaques • Générer des alertes quand : – Une session expirée est utilisée – Une valeur de « session ID » invalide est utilisée – Une même session est utilisées à partir de plusieurs IPs – Un même utilisateur a plusieurs sessions – Etc.
  • 32. 32 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Conclusion
  • 33. 33 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Sommaire • L’utilisation des sessions réduits l’exposition des mots de passe et des jetons d’authentification, mais rend par contre d’autres types d’attaques possibles • Il faut connaitre les types d’attaques sur les sessions ainsi que leurs mitigations : – HTTPS – « Session ID » long et aléatoire – Changer le « sessionID » quand il y a certains évènementsimportants : connexion,déconnexionet réinitialisation de mot de passe – Bien comprendreles expirations et leurs interactions – Les SSO demandentdes effortssupplémentairesde planification de gestion de session
  • 34. 34 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Références • https://www.owasp.org/index.php/Session_Management_Cheat_Sheet • https://puzzlemall.googlecode.com/files/Session%20Puzzles%20- %20Indirect%20Application%20Attack%20Vectors%20- %2017%20May%202011%20-%20Presentation.pptx • https://www.owasp.org/index.php/Insufficient_Session-ID_Length • https://msdn.microsoft.com/en- us/library/system.security.cryptography.rngcryptoserviceprovider(v=vs.110).aspx • https://www.owasp.org/index.php/Session_hijacking_attack • https://www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet
  • 35. 35 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Contact • Louis Nadeau – Louis.Nadeau@Bentley.com – Louis.Nadeau@OWASP.org
  • 36. 36 | WWW.BENTLEY.COM | © 2016 Bentley Systems, Incorporated Merci! Questions?