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.

Comprendre la securite web

240 views

Published on

Présentation effectuée au Rencontres Mondiales du Logiciel Libre (RMLL) 2017 par Christophe Villeneuve sur "Comprendre la securite web".
Vous allez voir pourquoi la sécurité ne doit pas être pris à la légère. Mais heureusement des solutions existes

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Comprendre la securite web

  1. 1. Comprendre la sécurité web Christophe Villeneuve @hellosct1
  2. 2. 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
  3. 3. RMLL 2017 – 4 Juillet 2017 Alors… La sécurité La sécurité... c'est pour les autres Les attaques !!! ah ah ah.. je rigole
  4. 4. RMLL 2017 – 4 Juillet 2017 Humour : La sécurité... Ca ne sert rien C'est de la vente forcée Ce n'est pas pour moi
  5. 5. Les menaces
  6. 6. RMLL 2017 – 4 Juillet 2017 La première menace ● La navigation sur internet ● Le téléchargement ● Vos identifiants ● Vos courriels (emails) ● Etc... C'est vous
  7. 7. RMLL 2017 – 4 Juillet 2017 Les risques ● Ne connaissent pas – L'étendue des risques liés à la sécurité de leur site ● Significations du terme « piratage » ● Des sites listent les failles, alertes… ● Et surtout : – Vol d'informations – Usurpation d'identité – Indisponibilité de service – Défiguration de site – Désinformation
  8. 8. RMLL 2017 – 4 Juillet 2017 Site 'alerte' de vulnérabilités (1/2) ● CVE – Commun Vulnerabilites and Exposures ● Dictionnaire des informations publiques relavites – Aux vulnérabilités de sécurité ● Base de données des Vulnérabilités (source d'informations) ● Concerne – CMS / Framework – OS – Navigateurs – Logiciels – ...
  9. 9. RMLL 2017 – 4 Juillet 2017 Site 'alerte' de vulnérabilités (2/2) (C) https://www.cvedetails.com/browse-by-date.php
  10. 10. RMLL 2017 – 4 Juillet 2017 Les vulnérabilités reconnues ● Insuffisance des tests de sécurité ● Configuration par défaut ● Pas de cryptage des données sensibles ● Pas de mises à jour du système ● La sécurité apparaît lors des catastrophes ● Surveillance inefficace ● Contrôle insuffisant de l'accès par des tiers
  11. 11. RMLL 2017 – 4 Juillet 2017 Les différents types d'attaques ● Matériels ● Périphériques ● Smartphones ● Internet des Objets ● Le web● Logiciels
  12. 12. RMLL 2017 – 4 Juillet 2017 Les points faibles… les bases applicatives
  13. 13. RMLL 2017 – 4 Juillet 2017 Les vulnérabilités Web : Le symbole (1/2) <
  14. 14. RMLL 2017 – 4 Juillet 2017 Les vulnérabilités Web : Le symbole (2/2) &lt ;
  15. 15. RMLL 2017 – 4 Juillet 2017 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
  16. 16. RMLL 2017 – 4 Juillet 2017 Oui mais pas que çà.
  17. 17. RMLL 2017 – 4 Juillet 2017 STEGANOGRAPHIE L'art de cacher les choses à la vue de tous Trouver la courbe la plus longue dans l'image Q
  18. 18. RMLL 2017 – 4 Juillet 2017 Code sécurisé ✔ Défense en profondeur ✔ Limité les accès de données à l'extérieur ✔ Maximiser les droits 3 points à connaître
  19. 19. RMLL 2017 – 4 Juillet 2017 Mais... Quoi affiché !!! ✔ Erreur 404 ✔ Erreur 500 ✔ Fichier Log Un minimum d'informations lors d'un crash
  20. 20. RMLL 2017 – 4 Juillet 2017 Minimum de sécurité... 1 / 3 ✔ Mettre une bonne stratégie de mot de passe ✔ Jpassword – Keepass... ✔ Ne pas le stocker en clair ✔ Pensez au captcha ou au jeton ✔ Force le mode SSL / TLS ✔ Limité le délais pour modifier son profil utilisateur ✔ Identification session ✔ Authentification coté serveur ✔ Pas d'authentification en JS / Ajax Le contrôle : Authentification
  21. 21. RMLL 2017 – 4 Juillet 2017 Minimum de sécurité... 2 / 3 ✔ Gestion des sessions aléatoire (JSESSIONID / $_SESSION) ✔ Minimum d'informations visibles (ex URL) ✔ Eviter les données sensibles sur le réseau (VS scanner de réseau) ✔ Cookie sécurisé (onglets des navigateurs) ✔ Limiter la fin de session pour les projets sensibles (ex 5 minutes) ✔ Bloquer les doubles logins / accès ✔ 1 Authentification = 1 utilisateur = 1 connexion BDD → Pour l'Open Source Le contrôle des accès
  22. 22. RMLL 2017 – 4 Juillet 2017 Minimum de sécurité... 3 / 3 ✔ Contrôler le cache ✔ Penser à vider le cache ✔ Fermer fenêtre ✔ Fermer Navigateur ✔ Fermer Application Logique de code... Pas sûr
  23. 23. RMLL 2017 – 4 Juillet 2017 Les autres solutions
  24. 24. RMLL 2017 – 4 Juillet 2017 OWASP ● OWASP : Open Web Application Security Project ● Communauté pour la sécurité des applications Webs ● Publications : TOP 10 / Cheat sheets / Owasp : secure Contrat ● Outils : Owasp Zed attack Proxy / ESAPI : API for / AppSensor :: a IDS / IPS ● Jeux : Owasp Cornucopia / Owasp Snake
  25. 25. RMLL 2017 – 4 Juillet 2017 TOP 10 : OWASP (web) 1/3 ✔ Failles d'injection ✔ Cross-Site Scripting (XSS) ✔ Violation d'authentification et de Session ✔ Référence directe non sécurisée à un objet ✔ Falsification de requête (CSRF) ✔ Mauvaise configuration de sécurité ✔ Stockage cryptographique non sécurisé ✔ Manque de restriction d'accès URL ✔ Communications non sécurisées ✔ Redirections non validées ✔ Failles d'injection ✔ Violation d'authentification et de Session ✔ Cross-Site Scripting (XSS) ✔ Référence directe non sécurisée à un objet ✔ Mauvaise configuration de sécurité ✔ Données sensibles accessible ✔ Manque de sécurité au niveau des rôles ✔ Falsification de requête (CSRF) ✔ Utilisation de composants connus vulnérables ✔ Redirections non validées 2010 X ✔ Fuite d'information et Traitement d'erreur Incorrect ✔ Exécution de Fichier Malicieux N X N 2013 ✔ Communications non sécuriséesX N Z Z N Z XHausse Baisse Identique NouveauBaisse SortieRenommé
  26. 26. RMLL 2017 – 4 Juillet 2017 TOP 10 : OWASP (web) 2/3 ✔ Failles d'injection ✔ Violation d'authentification et de Session ✔ Cross-Site Scripting (XSS) ✔ Contrôle d'accès cassé (catégorie 2004) ✔ Mauvaise configuration de sécurité ✔ Données sensibles accessible ✔ Protection d'attaque insuffisante ✔ Falsification de requête (CSRF) ✔ Utilisation de composants connus vulnérables ✔ API sous-protégées 2013 2017 rc 1 ✔ Redirections non validéesX N Z XHausse Baisse Identique NouveauBaisse SortieRenommé ✔ Failles d'injection ✔ Violation d'authentification et de Session ✔ Cross-Site Scripting (XSS) ✔ Référence directe non sécurisée à un objet ✔ Mauvaise configuration de sécurité ✔ Données sensibles accessible ✔ Manque de sécurité au niveau des rôles ✔ Falsification de requête (CSRF) ✔ Utilisation de composants connus vulnérables ✔ Redirections non validées ✔ Communications non sécuriséesX N Z Z N N
  27. 27. RMLL 2017 – 4 Juillet 2017 TOP 10 : OWASP (3/3) ● 1. Verify for Security Early and Often Vérifier la sécurité tôt et souvent ● 2. Parameterize Queries Paramétrer les requêtes ● 3. Encode Data Encoder les données ● 4. Validate All Inputs Valider toutes les entrées ● 5. Implement Identity and Authentication Controls Implémenter des contrôles d'identité et d'authentification 2016 Top 10 Proactive Controls suggestions ● 6. Implement Appropriate Access Controls Mettre en œuvre des contrôles d'accès appropriés ● 7. Protect Data Protéger les données ● 8. Implement Logging and Intrusion Detection Implémentez l'enregistrement et la détection d'intrusion ● 9. Leverage Security Frameworks and Libraries Tirer parti des cadres de sécurité et des bibliothèques ● 10. Error and Exception Handling. Gestion des erreurs et des exceptions.
  28. 28. RMLL 2017 – 4 Juillet 2017 Au niveau Site / Blog... //
  29. 29. RMLL 2017 – 4 Juillet 2017 Injection
  30. 30. RMLL 2017 – 4 Juillet 2017 ✔ Configuration non à jour ✔ Pas de maintenance ✔ Mise à disposition des fonctions ✔ Exec ✔ System ● Autre manière de prise en main du système ● Serveur Zombie ● Principe de l'attaque Conséquence Injection de ligne de commandes OWASP : A1 - Injection en ligne de commande
  31. 31. RMLL 2017 – 4 Juillet 2017 Désactiver dans php.ini – exec – passthru – shell_exec – system – proc_open – popen – curl_exec – curl_multi_exec – parse_ini_file – show_source Affiche le nom de l'utilisateur <?php echo exec('whoami'); ?> Par conséquent : safe_mode = Off allow_url_fopen=Off allow_url_include=Off OWASP : A1 - Injection en ligne de commande
  32. 32. RMLL 2017 – 4 Juillet 2017 ✔ Envoie du code SQL ✔ Formulaire ✔ GET / POST ✔ Cookies ✔ ... ✔ Contournement authentification ✔ Récupération des données de la base ✔ Récupération de fichiers ✔ Exécution de codes Principe de l'attaque Conséquence Injection SQL OWASP : A1 - Injection SQL
  33. 33. RMLL 2017 – 4 Juillet 2017 Utilisation du SQL ● Risque : Requête avec des simples quotes SELECT * FROM 'users' WHERE 'username'='$login' AND 'password'='$pass' ● Saisie : $login = hello $pass = hello SELECT * FROM 'users' WHERE 'username'='hello' AND 'password'='hello' ● Saisie : $login = ' OR '1'='1' $pass =  ' OR '1'='1' SELECT * FROM 'users' WHERE 'username'='' OR '1'='1'' AND 'password'='' OR '1'='1'' ● Saisie : $login = ' OR 1=1"); drop table users; $pass = SELECT * FROM 'users' WHERE 'username'='' OR 1=1"); drop table users;' AND 'password'='' TRUE TRUE TRUE Sauf si BDD lecture OWASP : A1 - Injection SQL
  34. 34. RMLL 2017 – 4 Juillet 2017 Se protéger contre injection SQL ● addslashes() – Ajoute des antislashs dans une chaîne SELECT * FROM 'users' WHERE 'username'=' ' OR '1'='1' ' AND 'password'=' ' OR '1'='1' ' mysqli_real_escape_string() – Protège les caractères spéciaux ● pdo_quote() – Place des guillemets simples autour d'une chaîne entrée les guillemets simples ' les guillemets doubles " les slashes / les caractères NULL OWASP : A1 - Injection SQL
  35. 35. RMLL 2017 – 4 Juillet 2017 Provenance coté front ● Navigation ● Formulaire – Champs : Input, upload,... ● Des API Couche Métier OWASP : A1 – Injection API
  36. 36. RMLL 2017 – 4 Juillet 2017 ✔ Trouver ✔ des données stockés / archivés en clair ✔ Espace privée non partagée ✔ Communication avec la banque ✔ Déterminer les algorithmes de chiffrement faible ✔ Cible principale ✔ Mot de passes ✔ Données sensibles non chiffrées ✔ Carte bleu Principe de l'attaque Conséquence Exposition de données sensibles OWASP : A1 / A6 / A10
  37. 37. RMLL 2017 – 4 Juillet 2017 ✔ Envoie du code SQL ● Formulaire ● GET / POST ● Cookies ● ... ✔ Contournement authentification ✔ Récupération des données de la base ✔ Récupération de fichiers ✔ Exécution de codes Principe de l'attaque Conséquence API Métier : connexion LDAP OWASP : A1 – Injection API
  38. 38. RMLL 2017 – 4 Juillet 2017 Mobiles / Tablettes
  39. 39. RMLL 2017 – 4 Juillet 2017 TOP 10 : Mobile Risk ✔ 1-Commandes côté serveur faible ✔ 2-Stockage de données non sécurisé ✔ 3-Protection insuffisante de la couche de transport ✔ 4-Fuite de données involontaire ✔ 5-Mauvaise autorisation et authentification ✔ 6-Cryptographie brisée ✔ 7-Injection côté client ✔ 8-Décisions de sécurité via les entrées non approuvées ✔ 9-Gestion incorrecte des sessions ✔ 10-Manque de protections binaires ✔ 1-Utilisation inappropriée de la plate- forme ✔ 2-Stockage de données non sécurisé ✔ 3-Communication insécurisée ✔ 4-Authentification non sécurisée ✔ 5-Cryptographie insuffisante ✔ 6-Autorisation non sécurisée ✔ 7-Qualité du code client ✔ 8-Code de falsification ✔ 9-Ingénierie inverse ✔ 10-Fonctionnalité exubérante 2014 2016 Z N Z XHausse Baisse Identique NouveauBaisse SortieRenommé
  40. 40. RMLL 2017 – 4 Juillet 2017 TOP 10 : Mobile Risk 2016 ● Utilisation inappropriée de la plate-forme – Les fonctionnalités inutiles - La sécurité – Accès aux contacts... ● Stockage de données non sécurisé – Stockage des données non sécurisé – Fuites de données involontaires ● Communication insécurisée – SSL incorrectes – communication en clair des informations sensibles... ● Authentification non sécurisée – identification pour l'utilisateur – Faiblesse dans la gestion des sessions... ● Cryptographie insuffisante – Problème lié à Cryptographie (pas été effectuée correctement) ● Autorisation non sécurisée – Défaillance dans l'autorisation – navigation forcée... ● Qualité du code client – Problème débordements de tampon – faire du code inutile... ● Code de falsification – Couvre les correctifs binaires – Modification de l'utilisation prévue du logiciel (par un attaquant)... ● Ingénierie inverse – Analyse du noyau binaire – possible d'exploiter d'autres vulnérabilités ● Fonctionnalité exubérante – Fonctionnalités backdoor cachées – des données dans les commentaires
  41. 41. RMLL 2017 – 4 Juillet 2017 Internet des Objets
  42. 42. RMLL 2017 – 4 Juillet 2017 TOP 10 : IoT Vulnerabilities ✔ 1 -Interface Web Insecure ✔ 2 -Authentification / Autorisation insuffisante ✔ 3 - Services réseau insécurisés ✔ 4 - Le manque de chiffrement de transport ✔ 5 - Problèmes de confidentialité ✔ 6 - Interface non sécurisée ✔ 7 - Interface mobile sans sécurité ✔ 8 - Configuration de sécurité insuffisante ✔ 9 - Logiciels / logiciels non sécurisés ✔ 10 - Faible sécurité physique 2015
  43. 43. RMLL 2017 – 4 Juillet 2017 L'avenir proche
  44. 44. RMLL 2017 – 4 Juillet 2017 Les tendances de l'IoT ● La protection de sécurité – Equipement vers Cloud (= chip to cloud) ● Sécurité et vie privée● Délégation de gestion aux utilisateurs ● La mort du mot de passe – Approche à grands pas
  45. 45. RMLL 2017 – 4 Juillet 2017 Images des outils
  46. 46. RMLL 2017 – 4 Juillet 2017 Outils et Technologies Automated security verification - Vulnerability scanners - Static Analysis Tools - Fuzzing Manual security verification - Penetration testing tools - Code Review tools Security architecture - Esapi Secure coding - AppSec Libraries - Esapi Reference Implémentation - Guards and Filters AppSec Management - Reporting Tools AppSec Education - Flawed App - Learning environnements - Live CD - Site Generator
  47. 47. RMLL 2017 – 4 Juillet 2017 En résumé : une politique de sécurité (1/2) ● Ne pas se cantonner : – Garantir les droits d'accès aux données – Accès aux ressources avec des systèmes d'authentifications ● Anticiper les risques futurs – Améliorer – Déployer – Evolution ● Suivre les mises à jours → Si vous utilisez une solution externe
  48. 48. RMLL 2017 – 4 Juillet 2017 En résumé : une politique de sécurité (2/2) ● Politique de sécurité – Identifier les besoins en termes de sécurité, les risques – Elaborer des règles et des procédures Services de l'organisation, matériels utilisés… – Surveiller et détecter les vulnérabilités →du système d'information, applications… En informer – Détecter les actions à entreprendre → Voir les bonnes personnes à contacter en cas d'une menace
  49. 49. RMLL 2017 – 4 Juillet 2017 Sources ● Web – https://www.owasp.org/index.php/Top10 – https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project ● Mobile – https://www.owasp.org/index.php/OWASP_Mobile_Security_Project – https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10 ● IoT – https://www.owasp.org/index.php/Top_10_IoT_Vulnerabilities_(2014) ● OWASP – https://www.owasp.org
  50. 50. Merci Questions Christophe Villeneuve @hellosct1 Supports : - OWASP - OWASP France - Sébastien Gioria - C. Villeneuve

×