S4 contre-mesures pourrenforcer la sécurité deson application web cotéclientPar Mohammed CHERIFI
A propos de moiMohammed CHERIFIConsultant web, bloggeur et chercheur en sécurité informatiqueDirecteur de la société Conne...
La sécurité du coté client
SSécuriser lacommunicationClient/Serveur
Session hijacking• Les communications à travers le protocol HTTP ne sont pas chiffrées• Un attaquant peut facilement inter...
Session hijacking - HSTS• Envoyée sous forme d’entête HTTP• Demande au navigateur de visiter le nom de domaine seulement e...
Public Key PinningS Envoyé sous forme d’une entête HTTPS Envoie un fingerprint de la clé publique du certificat SSL au nav...
Sécuriser la communicationClient/ServeurS Secure flag for cookies to protectcookies against leaking over HTTPS Entête HSTS...
SSe protéger des attaquespar injection de scripts
Exemple d’attaque parinjection de script (XSSpersistante)
HttpOnlyS A attribuer lors de la création d’un cookieS Permet de restreindre l’accès javascriptvia DOM (document.cookie)S ...
X-XSS-ProtectionS Modes de fonctionnement:S Protection par défautS X-XSS-Protection: 1S Protection opt-outS X-XSS-Protecti...
Content Security Policy (CSP)S Fonctionnalités:S Spécifier explicitement les ressourcesautorisées d’accéder au DOM de la p...
Content Security Policy (CSP)S Directives CSP:S default-srcS script-srcS object-srcS style-srcS img-srcS media-srcS frame-...
Content Security Policy (CSP)reportOnlyS Mode Reporting:S Permet de détecter les violation de règlesS Très pratique pour l...
Se protéger des attaques parinjection de scriptsS Flag HttpOnly pour lesinformations sensiblesS Entête X-XSS-ProtectionS C...
SSécuriser l’insertion decontenu
Clickjacking*Source: “Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites” (W2SP2010)
if (top.location != location) top.location =self.location;Contre-mesures classiques:if (top.location != location) top.loca...
<iframe src= "/suspected-path/index.html" sandbox></iframe>Activation via l’attribut sandbox:<iframe src="/suspected-path/...
Sécuriser l’insertion decontenuS Entête X-Frame-OptionsS L’attribut HTML5 « sandbox » pourles cadres (iframes)Contre-mesur...
SActiver les intéractionsCross-Domain
Interactions Cross-domainS Problème:S La directive « Same-Origin Policy » est très restrictiveS Technologies supportées:S ...
HTML5: security analysis
SConclusion• Le web dispose actuellement d’une multitude defonctionnalités standardisées permettant de maitriserles mécani...
Initiateurs des contre-mesuresS Google (Sandbox)S Microsoft (httpOnly, secure flag, X-XSS Header)S Mozzila Fondation (Cont...
Merci de votre attention
Prochain SlideShare
Chargement dans…5
×

4 contre-mesures pour renforcer la sécurité de son application web coté client

17 184 vues

Publié le

Ma présentation lors de la journée de la sécurité informatique organisée à l'université internationale d'Agadir Univerpolis sous le thème : « enjeux et défis universels ». la conférence s'est déroulée le Samedi 18 Mai 2013

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

Aucun téléchargement
Vues
Nombre de vues
17 184
Sur SlideShare
0
Issues des intégrations
0
Intégrations
14 995
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

4 contre-mesures pour renforcer la sécurité de son application web coté client

  1. 1. S4 contre-mesures pourrenforcer la sécurité deson application web cotéclientPar Mohammed CHERIFI
  2. 2. A propos de moiMohammed CHERIFIConsultant web, bloggeur et chercheur en sécurité informatiqueDirecteur de la société ConnectInLabCo-organisateur de MCSCContacthttp://www.mcherifi.orgmohammed@mcherifi.org
  3. 3. La sécurité du coté client
  4. 4. SSécuriser lacommunicationClient/Serveur
  5. 5. Session hijacking• Les communications à travers le protocol HTTP ne sont pas chiffrées• Un attaquant peut facilement intercepter les échanges et inspecter les êntetes HProblèmesProblèmes courants:• Usage mixé des protocole HTTP/HTTPS• Par défaut les cookies sont transmises sur les deux protocolesSolution• Utiliser le flag “Secure” qui permetd’envoyer le cookie via un canal cryptéSet-Cookie: PREF=foo-bar;Domain=domain.ltd; Secure
  6. 6. Session hijacking - HSTS• Envoyée sous forme d’entête HTTP• Demande au navigateur de visiter le nom de domaine seulement en mode HTTP• Permet de protéger optionnellement les sous domainesStrict Transport SecurityCompatibilitéGoogle Chrome 4+, Firefox 4+, Opera 12+
  7. 7. Public Key PinningS Envoyé sous forme d’une entête HTTPS Envoie un fingerprint de la clé publique du certificat SSL au navigateurS Le navigateur vérifie la signature du certificat pour détecter l’usaged’un certificat frauduleuxS Actuellement un Internet-Draft de l’IETFS Implémenté seulement dans Chrome 18+
  8. 8. Sécuriser la communicationClient/ServeurS Secure flag for cookies to protectcookies against leaking over HTTPS Entête HSTS pour forcer lanavigation sécuriséeS « Public Key Pinning » pour seprotéger contre les certificatsfrauduleux.Contre-mesures :Attaques:S Session hijackingS SSL Stripping
  9. 9. SSe protéger des attaquespar injection de scripts
  10. 10. Exemple d’attaque parinjection de script (XSSpersistante)
  11. 11. HttpOnlyS A attribuer lors de la création d’un cookieS Permet de restreindre l’accès javascriptvia DOM (document.cookie)S A activer par défaut pour toutes lesinformations sensiblesS Compatible avec tous les navigateursrécents (GoogleChrome, Firefox, Internet Explorer, Safariet Opera)
  12. 12. X-XSS-ProtectionS Modes de fonctionnement:S Protection par défautS X-XSS-Protection: 1S Protection opt-outS X-XSS-Protection: 0S Mode blocageS X-XSS-Protection: 1; mode=blockS interrompe le rendu de la page htmlS Compatibilité:S Internet Explorer 8+, Chrome and Safari
  13. 13. Content Security Policy (CSP)S Fonctionnalités:S Spécifier explicitement les ressourcesautorisées d’accéder au DOM de la pageS Définir des règles spécifiques à traversdes directives.S Intègre un système de reportingpermettant de notifier le webmaster du siteS Compatibilité:S Internet Explorer 8+, Chrome and Safari
  14. 14. Content Security Policy (CSP)S Directives CSP:S default-srcS script-srcS object-srcS style-srcS img-srcS media-srcS frame-srcS font-srcS connect-srcS sandboxS report-uriContent-Security-Policy: script-src selfhttps://apis.google.com; report-urihttp://example.org/my_amazing_csp_report_parser{"csp-report": {"document-uri": "http://domain.ltd/page.html","referrer": "http://evil.domain.ltd/","blocked-uri": "http://evil.domain.ltd/evil.js","violated-directive": "script-src self https://apis.google.com","original-policy": "script-src self https://apis.google.com;report- uri http://example.org/my_amazing_csp_report_parser"}Exemple de déploiement de CSPExemple de rapport de violation d’une règle
  15. 15. Content Security Policy (CSP)reportOnlyS Mode Reporting:S Permet de détecter les violation de règlesS Très pratique pour l’adaptation technique d’une application websouhaitant profiter des avantages de CSPS Ne renforce pas les règles (Policy)Content-Security-Policy-Report-Only: default-src: none; script-src self; report- uri/csp-reporting-handler.fooContent-Security-Policy: script-src https://apis.google.com https://platform.twitter.com;frame-src https://plusone.google.com https://facebook.com https://platform.twitter.comExemple de déploiement de du mode reportOnlyExemple d’intégration des media sociaux
  16. 16. Se protéger des attaques parinjection de scriptsS Flag HttpOnly pour lesinformations sensiblesS Entête X-XSS-ProtectionS Content Security Policy (CSP)Contre-mesures :Attaques:S Crosse Site Scripting (XSS)S Cross Site Request Forgery(CSRF)
  17. 17. SSécuriser l’insertion decontenu
  18. 18. Clickjacking*Source: “Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites” (W2SP2010)
  19. 19. if (top.location != location) top.location =self.location;Contre-mesures classiques:if (top.location != location) top.location =self.location;Clickjacking - X-Frame-OptionsX-Frame-Options• Permet d’indiquer au navigateurpar qui la page peut êtreencapsulé dans un cadre(iframe)• Supporte 3 options• DENY• SAMEORIGIN• ALLOW-FROM uri• Compatibilité: tous lesnavigateurs récents• Limitation: Difficile d’isoler uncontenu non-légitime dans lemême « origin »
  20. 20. <iframe src= "/suspected-path/index.html" sandbox></iframe>Activation via l’attribut sandbox:<iframe src="/suspected-path/index.html"sandbox= "allow-scripts"></iframe>Clickjacking – HTML5 sandboxComportement par défaut• Les Plugins sont désactivés• Chaque cadre (Frame) estexécuté dans un contexte séparé• Les scripts sont désactivés• La soumission des formulairen’est pas autorisée• Les contextes du haut niveau nepeuvent pas être accédé par lecadre en mode sandbox• Les popups sont bloqué• L’accès aux coordonnées etposition du curseur est restreintOptions de relaxation:• allow-forms• allow-popups• allow-pointer-lock• allow-same-origin• allow-scripts• allow-top-navigationExemple du mode relaxed:
  21. 21. Sécuriser l’insertion decontenuS Entête X-Frame-OptionsS L’attribut HTML5 « sandbox » pourles cadres (iframes)Contre-mesures :Attaques:S ClickjackingS Cross Site Scripting (mêmedomaine)
  22. 22. SActiver les intéractionsCross-Domain
  23. 23. Interactions Cross-domainS Problème:S La directive « Same-Origin Policy » est très restrictiveS Technologies supportées:S Cross Origin Resource Sharing (CORS)S Crossdomain.xmlS Web Messaging (aka postMessage)
  24. 24. HTML5: security analysis
  25. 25. SConclusion• Le web dispose actuellement d’une multitude defonctionnalités standardisées permettant de maitriserles mécanismes d’isolations d’exécution, ainsipermettant de renforcer d’avantage la sécurité desapplications web.• Ces contre-mesures ne peuvent pas être qualifiés deremplaçant des bonnes pratiques de programmationsécurisée, il s’agit d’un guide complémentaire estindispensable.• Google, Twitter, Facebook ont déjà implémenté unebonne partie de ces contre-mesures, leur maitrise estun atout pour tout développeur web.
  26. 26. Initiateurs des contre-mesuresS Google (Sandbox)S Microsoft (httpOnly, secure flag, X-XSS Header)S Mozzila Fondation (Content Security Policy)S W3C (spécifications HTML5)
  27. 27. Merci de votre attention

×