Présentation effectuée à la création numérique "Alchimie 12" par Christophe Villeneuve sur "Comprendre la sécurité web en 2017".
Vous allez voir pourquoi la sécurité ne doit pas être pris à la légère. Mais heureusement des solutions existes
6. La première menaceLa première menace
●
La navigation sur internet
●
Le téléchargement
●
Vos identifiants
●
Vos courriels (emails)
●
Etc...
C'est vous
7. 10 novembre 2017
Les risquesLes 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. 10 novembre 2017
Site 'alerte' de vulnérabilités (1/2)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. 10 novembre 2017
Site 'alerte' de vulnérabilités (2/2)Site 'alerte' de vulnérabilités (2/2)
(C) https://www.cvedetails.com/browse-by-date.php
10. 10 novembre 2017
Les vulnérabilités reconnuesLes 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. 10 novembre 2017
Les différents types d'attaquesLes différents types d'attaques
●
Matériels ●
Périphériques ●
Smartphones
●
Internet des
Objets
●
Le web●
Logiciels
18. 10 novembre 2017
Code sécurisé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. 10 novembre 2017
Mais quoi affichéMais quoi affiché
Un minimum d'informations lors d'un crash
✔
Erreur 404 ✔
Erreur 500
✔
Fichier Log
20. 10 novembre 2017
Minimum de sécurité (1/3)Minimum de sécurité (1/3)
Le contrôle : Authentification
✔
Mettre une bonne stratégie de mot de passe
✔
xPassword – 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
21. 10 novembre 2017
Minimum de sécurité (2/3)Minimum de sécurité (2/3)
Le contrôle des accès
✔
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
22. 10 novembre 2017
Minimum de sécurité (3/3)Minimum de sécurité (3/3)
Logique de code... Pas sûr
✔
Contrôler le cache
✔
Penser à vider le cache
✔
Fermer fenêtre
✔
Fermer Navigateur
✔
Fermer Application
24. OWASPOWASP
●
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. 10 novembre 2017
TOP 10 : OWASP (web) 1/3TOP 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. 10 novembre 2017
TOP 10 : OWASP (web) 2/3TOP 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 2
✔
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. 10 novembre 2017
TOP 10 : OWASP (3/3)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.
30. 10 novembre 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 commandesInjection de ligne de commandes
OWASP : A1 - Injection en ligne de commande
31. 10 novembre 2017
Désactiver dans php.iniDé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. 10 novembre 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 SQLInjection SQL
OWASP : A1 - Injection SQL
33. 10 novembre 2017
Utilisation du SQLUtilisation 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. 10 novembre 2017
Se protéger contre injection SQLSe 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. Provenance coté frontProvenance coté front●
Navigation
●
Formulaire
– Champs : Input, upload,...
●
Des API Couche Métier
OWASP : A1 – Injection API
36. 10 novembre 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 sensiblesExposition de données sensibles
OWASP : A1 / A6 / A10
37. 10 novembre 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 LDAPAPI Métier : connexion LDAP
OWASP : A1 – Injection API
39. 10 novembre 2017
TOP 10 : Mobile RiskTOP 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. 10 novembre 2017
TOP 10:Mobile Risk 2016 (1/TOP 10:Mobile Risk 2016 (1/
●
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)
●
41. 10 novembre 2017
TOP 10:Mobile Risk 2016 (2/TOP 10:Mobile Risk 2016 (2/
●
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
45. 10 novembre 2017
Les tendances de l'IoTLes 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
47. 10 novembre 2017
Outils et TechnologiesOutils 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
48. 10 novembre 2017
En résumé :En résumé :
une politique de sécurité (1/2)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
49. 10 novembre 2017
En résumé :En résumé :
une politique de sécurité (2/2)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
50. 10 novembre 2017
SourcesSources
●
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