Upgrade to Pro — share decks privately, control downloads, hide ads and more …

La sécurité au coeur des projets webs de demain

hellosct1
November 16, 2019

La sécurité au coeur des projets webs de demain

Présentation effectuée au Capitole du Libre (17 novembre 2019) par Christophe Villeneuve sur "La sécurité aux coeurs des projets webs de demain".
Une occasion pour voir les possibilités de mieux comprendre la sécurité dans les développements webs

hellosct1

November 16, 2019
Tweet

More Decks by hellosct1

Other Decks in Technology

Transcript

  1. Atos open source - afup – lemug.fr – mariadb –

    drupal – mozilla - firefox – lemugfr - sumo – webextensions – VR – AR – XR - Cause commune 93.1 FM - TechSpeaker - Lizard - eyrolles – editions eni – programmez – linux pratique – webriver – elephpant - CommonVoice – Sécurité - Cybersécurité Christophe Villeneuve ? • Consultant • Dresseur animaux Free Software
  2. @hellosct1 – Capitole du libre 2019 Ce qu'il vous attend...

    • La sécurité projets Web c'est… Quoi ? • Hacking VS Protection • Outillages
  3. @hellosct1 – Capitole du libre 2019 Pourquoi sécurité web ?

    • Branche sécurité informatique • Impliquant : – Problématique côté client – Problématique côté serveur • Concerne : – Les sites web – Les applications web – Les services web • Accélérer avec l’émergence du Web 2.0
  4. @hellosct1 – Capitole du libre 2019 Quelques exemples catastrophique •

    2005 – Master Card – 40 millions de comptes • 2011 – Sony diversitissement – 77 millions de comptes (+ numéro CB) • 2014 – JP Morgan – 7,6 millions d'informations utilisateurs • Et bien d’autres : – Heartland – 130 millions de numéros de cartes bancaires – Deutsche Télécom : 17 millions de perdus – Wordpress – 18 millions de profils
  5. @hellosct1 – Capitole du libre 2019 Projet web sécurisé ?

    Pas sur Agile Scrum Design Patterns Git Integration Continue Refactoring CMS WebServices Framework Tests DDOS Hijacking SQL Botnets XSS Injection CSRF Phishing Tronjan • Réalisation d'un projet web → avec peu de sécurité DevOps DevSecOps
  6. @hellosct1 – Capitole du libre 2019 La réalité Défaut Logique

    métier Erreurs Sécurité Défaut De code Plusieurs années de développement Plusieurs années de développement Deux semaines Piratage éthique Deux semaines Piratage éthique
  7. @hellosct1 – Capitole du libre 2019 Les attaques sur internet

    Source : IBM Software Group, Rational Software
  8. @hellosct1 – Capitole du libre 2019 Niveau de protection Pare

    feu applications Serveur Web IPS [1] Firewall [1] Systeme prévention intrusion
  9. @hellosct1 – Capitole du libre 2019 Identifier les risques •

    Systèmes trop verbeux – DNS / Réseaux • Système d'authentification faible – SSH • La gestion des droits – Maillons faibles • Les mots de passes systèmes – Admin du poste / compte utilisateur • Bases de données – Stockages des informations sensibles • Partage de fichiers – périphériques hardware • Serveurs à l'abandon • Vulnérabilités web – voir les rapports OWASP
  10. @hellosct1 – Capitole du libre 2019 CVE sécurity (1/3) •

    Base de données des vulnérabilités (source d'informations) • OS / Langages / CMS / Framework / Navigateurs... © https://www.cvedetails.com/
  11. @hellosct1 – Capitole du libre 2019 CVE sécurity (2/3) •

    Représentation annuelle © https://www.cvedetails.com/
  12. @hellosct1 – Capitole du libre 2019 CRM Intranet Website Tracker

    Service Auth. Web Service Serveur Web Firewall Base de données Access Control Notre application Web
  13. @hellosct1 – Capitole du libre 2019 CRM Intranet Website Tracker

    Service Auth. Web Service Serveur Web Firewall Base de données Access Control Notre application Web XSS CSRF Click Jacking XML/JSON Injection SQL Injection Direct Object Reference Token Directory Traversal Packet Sniffing Paramètre facilfication
  14. @hellosct1 – Capitole du libre 2019 Architecture d'une application Web

    XXE moderne moderne Stockage Code Quality Client Chiffrement Communication
  15. @hellosct1 – Capitole du libre 2019 OWASP (1/2) • OWASP

    – Open Web Application Security Project • Organisation à but non lucratif • Communauté ouverte • Connu – Liste des risques de sécurité • Top 10 c'est : • Des outils • Des API • De la documentation • Des guides • Des conférences • Des blogs • Des contenus – Audio / Vidéo – Podcast
  16. @hellosct1 – Capitole du libre 2019 Owasp (2/2) • Guide

    de développement – https://www.owasp.org/index.php/Projects/OWASP_Development _Guide • Guide des tests – https://www.owasp.org/index.php/OWASP_Testing_Project • Revue de code – https://www.owasp.org/index.php/Category:OWASP_Code_Revie w_Project • Exemple d'application Webgoat – https://www.owasp.org/index.php/Category:OWASP_WebGoat_Pr oject • Guide développeur – https://www.owasp.org/index.php/OWASP_Guide_Project
  17. @hellosct1 – Capitole du libre 2019 TOP 10 : OWASP

    (web) A1- Failles d'injection A2- Violation d'authentification et de Session A3- Données sensibles accessible A4- XML External Entity (XXE) A5- Contrôle d'accès cassé A6- Mauvaise configuration de sécurité A7- Cross-Site Scripting (XSS) A8- Désérialisation non sécurisée A9- Utilisation de composants connus vulnérables A10 -Gestion de log insuffisante et de monitoring 2013 2017 N M Hausse Baisse Identique Nouveau Baisse Merge A1- Failles d'injection A2- Violation d'authentification et de Session A3- Cross-Site Scripting (XSS) A4- Référence directe non sécurisée à un objet A5- Mauvaise configuration de sécurité A6- Données sensibles accessible A7- Manque de sécurité au niveau des rôles A8- Falsification de requête (CSRF) A9- Utilisation de composants connus vulnérables A10- Redirections non validées N M N N
  18. @hellosct1 – Capitole du libre 2019 Solution • Etre rapide

    ! – Une attaque n'est souvent qu'une affaire de secondes, voire de minutes • Ne pas contre-attaquer le hacker – Disparition – Il est énervé • TODO – Notez l'adresse IP de l'ordinateur victime de l'attaque – Notez l'heure de l'attaque. – Notez le temps de l'attaque. – Log(s)
  19. @hellosct1 – Capitole du libre 2019 Attaque de dépendance Query

    = "SELECT * FROM users WHERE ID = "'" + request.geParameter('id') + "'"; Query = "SELECT * FROM users WHERE ID = '" + 666 + "'"; Query = "SELECT * FROM users WHERE ID = '" + 666' OR '1'='1 + "'"; A1 - Failles injections
  20. @hellosct1 – Capitole du libre 2019 Solution • Conserver les

    données – Séparées des commandes et des requêtes – Utiliser comme API sécurisée • Valider les données d'entrée côté serveur • Échapper les caractères spéciaux – Utiliser une syntaxe d'échappement spécifique pour l'interpréteur • Utilisez LIMIT • Prévoir des contrôles SQL dans les requêtes – pour empêcher la divulgation massive des enregistrements
  21. @hellosct1 – Capitole du libre 2019 Attaque côté front •

    A2 - Violation d'authentification et de Session • A6 - Mauvaise configuration de sécurité • A7 - Cross-site scripting (XSS) • A2 - Violation d'authentification et de Session • A6 - Mauvaise configuration de sécurité • A7 - Cross-site scripting (XSS) • Code source de la page (CTRL + U) • Avec du javascript • Session id • Cookie • Redirection page web • Super Globales • ($_GET / $_POST / $_ENV)
  22. @hellosct1 – Capitole du libre 2019 Attaque côté back (1/

    • A5- Contrôle d'accès cassé • A6- Mauvaise configuration de sécurité • A5- Contrôle d'accès cassé • A6- Mauvaise configuration de sécurité accès non autorisé aux objets par le biais de la modification des paramètres
  23. @hellosct1 – Capitole du libre 2019 Attaque côté back (2/

    • A5- Contrôle d'accès cassé • A6- Mauvaise configuration de sécurité • A5- Contrôle d'accès cassé • A6- Mauvaise configuration de sécurité Données sensibles non protégées correctement Problème des droits accès (contrôle d'accès) – http://urlSite.com/getpage – http://urlSite.com/admin_getpage
  24. @hellosct1 – Capitole du libre 2019 Solution • HTTPS •

    Chiffrer toutes les données sensibles • Ne stockez pas de données sensibles inutilement - jetez-les
  25. @hellosct1 – Capitole du libre 2019 Attaque Homme / machine

    (1/ Serveur de l'attaquant Serveur Requête XML Information Obtenir des requêtes structurées (dtd) • A4 - XML External Entity (XXE) • A4 - XML External Entity (XXE)
  26. @hellosct1 – Capitole du libre 2019 Solution • Choisir un

    format moins complexe – JSON • Corriger format utilisé XML – Les processeurs – Les bibliothèques • Verrou structuré supplémentaire – Externe XML – Requêtes structurées (dtd processin) • Validation des éléments entrée du site du serveur de la liste blanche • Vérifier les fonctionnalités de téléchargement de fichiers – XML ou XSL • Les outils SAST peuvent aider à détecter XXE dans le code source
  27. @hellosct1 – Capitole du libre 2019 Attaque Homme / machine

    (2/ • A8 - Désérialisation non sécurisée • A8 - Désérialisation non sécurisée class car [ public string color; } var redCarObj =new car(); redCarObj.color = 'rouge'; redCarObj Processus de sérialisation redCarObj sérialisé redCarObj processus de désérialisation redCarObj sérialisé . • Permet l'exécution de code à distance • Manipulation d'objets sensibles → sur les plates-formes affectées
  28. @hellosct1 – Capitole du libre 2019 Solution • Ne pas

    accepter les objets sérialisés – provenant de sources non fiables • Vérifier l'intégrité sur tous les objets sérialisés • Appliquer des contraintes de type strictes – Lors de la désertification • Isoler pour exécuter le code désérialisé • Exceptions et échecs de désérialisation de journaux • Restreindre la connectivité réseau – A partir de serveurs qui se désérialisent
  29. @hellosct1 – Capitole du libre 2019 Attaque : Les autres

    (1/ • A9 - Utilisation de composants connus vulnérables • A9 - Utilisation de composants connus vulnérables • Boîtes à outils Web • Widgets • Moteurs d'exécution • Serveurs web • Bibliothèques de framework • Etc. composants construits par d'autres Dépendances
  30. @hellosct1 – Capitole du libre 2019 Attaque : Les autres

    (2/ • A10 - Gestion de log insuffisante et de monitoring • A10 - Gestion de log insuffisante et de monitoring • Utilisation : Forum / CMS / ... • Manque • Surveillance • Alerte • Enregistrement • Scan de mot de passes • Mot de passe unique / utilisateurs
  31. @hellosct1 – Capitole du libre 2019 Solution • Prévoir que

    tous les échecs d'accès – soient enregistrés • Assurez-vous que les logs sont générés – Format (facilement) utilisable • Prévoir que les transactions de grande valeur – Piste d'audit, suivi... • Alerte efficace pour répondre dans des délais cours • Etablir un processus de réponse aux incidents
  32. @hellosct1 – Capitole du libre 2019 Outils de tests de

    sécurité automatisé • Plateforme de tests d'intrusion – Metasploit, Aircrack-ng • Tests résistence d'un password – John the ripper • Audit de monitoring, réseaux sans fil – Aircrack-ng • Sniffer, analyseur protocoles réseau & applicatif – Wireshark • Scanner de ports, vulnérabilités – Nmap • Récupération mot de passe – Cain & Abel • Emulation Navigateur web – Paros Proxy, charles proxy • Capture de requêtes, proxy applicatif – Zed Attack Proxy, Paros Proxy • Audit des applications web – Burp Suite, Wfuzz, spiderfoot, cerveau
  33. @hellosct1 – Capitole du libre 2019 Liens • OWASP https://www.owasp.org

    • OWASP Top 10 – 2017 https://www.owasp.org/images/7/72/OWASP_Top _10-2017_%28en%29.pdf.pdf
  34. @hellosct1 – Capitole du libre 2019 Plus loin... meetup lizard

    https://www.meetup.com/fr-FR/lizard_secu/