Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

La securite au coeur des projets web

26 views

Published on

Présentation effectuée au RMLL 2018 sur "La securite au coeur des projets web" par Christophe Villeneuve .
A partir de cette conférence, vous allez mieux comprendre l'importance de la sécurité dans les projets webs et de se protéger

Published in: Internet
  • Be the first to comment

  • Be the first to like this

La securite au coeur des projets web

  1. 1. La sécurité au cœur des projets web de demain @hellosct1 @hellosct1@mamot.fr 8 juillet 2018 Christophe Villeneuve
  2. 2. .RMLL 2018 Qui ??? Christophe Villeneuve mozilla reps - firefox os - B2GOS - ausy - afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – Libre@toi – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – elephpant - owasp -security 93
  3. 3. .RMLL 2018 Ce qu'il vous attend... ● La sécurité projets Web c'est… Quoi ? ● Le rapport comme support aux projets ● Outillages
  4. 4. .RMLL 2018 Qu'est ce que la sécurité web, pourquoi ?
  5. 5. .RMLL 2018 Pourquoi sécurité web ? ● Branche sécurité informatique → Lié à l’internet ● 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
  6. 6. .RMLL 2018 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
  7. 7. .RMLL 2018 Une date à retenir ● 25 mai 2018 : RGPD – Règlement Général sur la Protection des Données ● Mise en place par Union Européenne ● But : – Harmoniser et normaliser les différentes lois qui existent dans les pays de l’UE ● En réalité : – une fuite de données, un piratage ou la simple consultation de données ● Obligation d'alerter la CNIL mais aussi aux personnes impactées
  8. 8. .RMLL 2018 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é
  9. 9. .RMLL 2018 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
  10. 10. .RMLL 2018 Les attaques sur internet Source : IBM Software Group, Rational Software
  11. 11. .RMLL 2018 Niveau de protection Pare feu applications Serveur Web IPS [1]Firewall [1] Systeme prévention intrusion
  12. 12. .RMLL 2018 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 – Stockage des informations sensibles ● Partage de fichiers – Périphériques hardware ● Serveurs à l'abandon ● Vulnérabilités web – Voir les rapports OWASP
  13. 13. .RMLL 2018 CVE Security (1/3) ● Base de données des vulnérabilités (source d'informations) ● OS / Langages / CMS / Framework / Navigateurs... © https://www.cvedetails.com/
  14. 14. .RMLL 2018 CVE Security (2/3) ● Représentation annuelle
  15. 15. .RMLL 2018 CVE Security (3/3)
  16. 16. .RMLL 2018 CRM Intranet Website Tracker Service Auth. Web Service Serveur Web Firewall Base de données Access Control Architecture d'une application Web
  17. 17. .RMLL 2018 CRM Intranet Website Tracker Service Auth. Web Service Serveur Web Firewall Base de données Access Control Points sensibles pour un attaquant XSS CSRF Click Jacking XML/JSON Injection SQL Injection Direct Object ReferenceToken Directory Traversal Packet Sniffing Paramètre facilfication
  18. 18. .RMLL 2018
  19. 19. .RMLL 2018 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
  20. 20. .RMLL 2018 Owasp (2/2) ● Guide de développement – https://www.owasp.org/index.php/Projects/OWASP_Developmen t_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_Revi ew_Project ● Exemple d'application Webgoat – https://www.owasp.org/index.php/Category:OWASP_WebGoat_P roject ● Guide développeur – https://www.owasp.org/index.php/OWASP_Guide_Project
  21. 21. .RMLL 2018 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 MHausse Baisse Identique NouveauBaisse 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
  22. 22. .RMLL 2018 Etre plus malin
  23. 23. .RMLL 2018 Les vulnérabilités Web : Le symbole (1/2) <
  24. 24. .RMLL 2018 Les vulnérabilités Web : Le symbole (2/2) &lt ;
  25. 25. .RMLL 2018 Correspondance des caractères dangereux Caractères Decimal Hexadecimal HTML Character Set Unicode ''  (double quote) " " &quot; u0022 ' (simple quote) ' ' &apos: u0027 & (ampersand) & & &amp; u0026 < (inférieur) < < &lt; u003c > (supérieur) > > &gt; u003e
  26. 26. .RMLL 2018 Pouvons-nous résoudre ce problème? Différentes techniques d'attaques
  27. 27. .RMLL 2018 Attaque : apprenti sorcier
  28. 28. .RMLL 2018 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)
  29. 29. .RMLL 2018 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 d'injection ● A1 - Failles d'injection
  30. 30. .RMLL 2018 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
  31. 31. .RMLL 2018 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)
  32. 32. .RMLL 2018 Attaque côté front : scénario 1 ● Arborescence ● Arborescence includes, inc, lib,etc,ini, conf admin, adm, admnistrateur, administrator, erreurs, classes hidden, protected, archives,bills,factures● Données cachées ● Données cachées
  33. 33. .RMLL 2018 Attaque côté front : scénario 2 ● URL ● URL Copier / Coller → Disque durCopier / Coller → Disque dur <form action="http://URL.com/ma-page-de-traitement" method="post"> </form>
  34. 34. .RMLL 2018 Attaque côté front : scénario 3 ● Absence de protection <?php echo "Un petit risque de <script>alert ('hack')</script>"; ?> ● Avec une protection <?php echo htmlentities("Un petit risque de <script>alert ('hack')</script>"); ?>
  35. 35. .RMLL 2018 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
  36. 36. .RMLL 2018 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
  37. 37. .RMLL 2018 Solution ● HTTPS ● Crypter toutes les données sensibles ● Ne stockez pas de données sensibles inutilement - jetez-les
  38. 38. .RMLL 2018 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)
  39. 39. .RMLL 2018 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
  40. 40. .RMLL 2018 Attaque Homme / machine (2/ ● A8 - Désérialisation non sécurisée ● A8 - Désérialisation non sécurisée ● Permet l'exécution de code à distance ● Manipulation d'objets sensibles → sur les plates-formes affectées 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é
  41. 41. .RMLL 2018 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
  42. 42. .RMLL 2018 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
  43. 43. .RMLL 2018 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
  44. 44. .RMLL 2018 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
  45. 45. .RMLL 2018 Assistance
  46. 46. .RMLL 2018 Outils ● 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
  47. 47. .RMLL 2018 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
  48. 48. Merci @hellosct1 @hellosct1@mamot.fr

×