Comprendre la securite web

139 vues

Publié le

Comprendre la sécurité web - Présentation effectuée à "Ubuntu Paris 1610" par Christophe Villeneuve.
La sécurité est une affaire de tous. Il est indispensable d'en prendre comprendre les concepts et de se protéger

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

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
139
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
5
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Comprendre la securite web

  1. 1. Ubuntu paris 1610 - Comprendre la sécurité web Christophe Villeneuve @hellosct1 Le 12 novembre 2016
  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. Ubuntu paris 1610 - Alors… La sécurité La sécurité... c'est pour les autres Les attaques !!! ah ah ah.. je rigole
  4. 4. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - 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... ● Vol d'informations ● Usurpation d'identité ● Indisponibilité de service ● Défiguration de site ● Désinformation
  7. 7. Ubuntu paris 1610 - CVE security (1/3) ● Base de données des Vulnérabilités (source d'informations) ● CMS / Framework ● OS ● Navigateurs
  8. 8. Ubuntu paris 1610 - CVE security (2/3) https://www.cvedetails.com/product/20550/Canonical-Ubuntu-Linux.html?vendor_id=4781
  9. 9. Ubuntu paris 1610 - CVE security (3/3)
  10. 10. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - Les différents types d'attaques ● Matériels ● Périphériques ● Smartphones ● Internet des Objets ● Le web● Logiciels
  12. 12. Ubuntu paris 1610 - Les points faibles… les bases applicatives
  13. 13. Ubuntu paris 1610 - Les vulnérabilités Web : Le symbôle <
  14. 14. Ubuntu paris 1610 - Les vulnérabilités Web : Le symbôle &lt ;
  15. 15. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - Oui mais pas que çà.
  17. 17. Ubuntu paris 1610 - STEGANOGRAPHIE L'art de cacher les choses à la vue de tous Trouver la courbe la plus longue dans l'image Q
  18. 18. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - Mais... Quoi affiché !!! ✔ Erreur 404 ✔ Erreur 500 ✔ Fichier Log Un minimum d'informations lors d'un crash
  20. 20. Ubuntu paris 1610 - Minimum de sécurité... 1 / 3 ✔ Mettre une bonne stratégie de mot de passe (Jpassword) ✔ 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. Ubuntu paris 1610 - 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 Le contrôle des accès
  22. 22. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - Les autres solutions
  24. 24. Ubuntu paris 1610 - 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 cornicoppia / Owasp Snake
  25. 25. Ubuntu paris 1610 - TOP 10 : OWASP (web) 1/2 ✔ 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. Ubuntu paris 1610 - TOP 10 : OWASP (2/2) ● 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.
  27. 27. Ubuntu paris 1610 - Au niveau Site / Blog... //
  28. 28. Ubuntu paris 1610 - Injection
  29. 29. Ubuntu paris 1610 - ✔ 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
  30. 30. Ubuntu paris 1610 - 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
  31. 31. Ubuntu paris 1610 - ✔ 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
  32. 32. Ubuntu paris 1610 - 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
  33. 33. Ubuntu paris 1610 - 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
  34. 34. Ubuntu paris 1610 - Provenance coté front ● Navigation ● Formulaire – Champs : Input, upload,... ● Des API Couche Métier OWASP : A1 – Injection API
  35. 35. Ubuntu paris 1610 - ✔ 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 cryptage 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
  36. 36. Ubuntu paris 1610 - ✔ 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
  37. 37. Ubuntu paris 1610 - Mobiles / Tablettes
  38. 38. Ubuntu paris 1610 - 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 Version RC Z N Z XHausse Baisse Identique NouveauBaisse SortieRenommé
  39. 39. Ubuntu paris 1610 - TOP 10 : Mobile Risk 2016 (rc) ● 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
  40. 40. Ubuntu paris 1610 - Internet des Objets
  41. 41. Ubuntu paris 1610 - 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 2014
  42. 42. Ubuntu paris 1610 - L'avenir proche
  43. 43. Ubuntu paris 1610 - 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
  44. 44. Ubuntu paris 1610 - Images des outils
  45. 45. Ubuntu paris 1610 - 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
  46. 46. Ubuntu paris 1610 - 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)
  47. 47. Merci Questions Christophe Villeneuve @hellosct1 Supports : - OWASP - OWASP France - Sébastien Gioria - C. Villeneuve
  48. 48. Ubuntu paris 1610 - 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. Ubuntu paris 1610 - 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

×