Upload
christophe-villeneuve
View
131
Download
0
Embed Size (px)
Citation preview
Ubuntu paris 1610 -
Comprendre la sécurité web
Christophe Villeneuve@hellosct1
Le 12 novembre 2016
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
Ubuntu paris 1610 -
Alors… La sécuritéLa sécurité... c'est pour les autres
Les attaques !!! ah ah ah.. je rigole
Ubuntu paris 1610 -
Humour : La sécurité...
Ca ne sert rien
C'est de la vente forcée
Ce n'est pas pour moi
Les menaces
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
Ubuntu paris 1610 -
CVE security (1/3)
● Base de données des Vulnérabilités (source d'informations)
● CMS / Framework
● OS
● Navigateurs
Ubuntu paris 1610 -
CVE security (2/3)
https://www.cvedetails.com/product/20550/Canonical-Ubuntu-Linux.html?vendor_id=4781
Ubuntu paris 1610 -
CVE security (3/3)
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
Ubuntu paris 1610 -
Les différents types d'attaques
● Matériels ● Périphériques ● Smartphones
● Internet des Objets
● Le web● Logiciels
Ubuntu paris 1610 -
Les points faibles… les bases applicatives
Ubuntu paris 1610 -
Les vulnérabilités Web : Le symbôle
<
Ubuntu paris 1610 -
Les vulnérabilités Web : Le symbôle
< ;
Ubuntu paris 1610 -
Correspondance des caractères dangereux
Caractères Decimal Hexadecimal HTML Character Set
Unicode
'' (double quote) " " " \u0022
' (simple quote) ' ' &apos: \u0027
& (ampersand) & & & \u0026
< (inférieur) < < < \u003c
> (supérieur) > > > \u003e
Ubuntu paris 1610 -
Oui mais pas que çà.
Ubuntu paris 1610 -
STEGANOGRAPHIE
L'art de cacher les choses à la vue de tous
Trouver la courbe la plus longue dans l'image
Q
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
Ubuntu paris 1610 -
Mais... Quoi affiché !!!
✔ Erreur 404 ✔ Erreur 500
✔ Fichier Log
Un minimum d'informations lors d'un crash
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
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
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
Ubuntu paris 1610 -
Les autres solutions
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
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é
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 QueriesParamétrer les requêtes
● 3. Encode DataEncoder les données
● 4. Validate All InputsValider 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
ControlsMettre en œuvre des contrôles d'accès appropriés
● 7. Protect DataProté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.
Ubuntu paris 1610 -
Au niveau Site / Blog...
//
Ubuntu paris 1610 -
Injection
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
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
<?phpecho exec('whoami');
?>
Par conséquent :
safe_mode = Offallow_url_fopen=Offallow_url_include=Off
OWASP : A1 - Injection en ligne de commande
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
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
TRUESauf si BDD lecture
OWASP : A1 - Injection SQL
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
Ubuntu paris 1610 -
Provenance coté front● Navigation
● Formulaire
– Champs : Input, upload,...● Des API Couche Métier
OWASP : A1 – Injection API
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
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
Ubuntu paris 1610 -
Mobiles / Tablettes
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é
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
Ubuntu paris 1610 -
Internet des Objets
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
Ubuntu paris 1610 -
L'avenir proche
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
Ubuntu paris 1610 -
Images des outils
Ubuntu paris 1610 -
Outils et TechnologiesAutomated 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
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)
Merci
Questions
Christophe Villeneuve@hellosct1
Supports :
- OWASP- OWASP France- Sébastien Gioria- C. Villeneuve
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
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
Merci
Questions
Christophe Villeneuve@hellosct1
Supports :
- OWASP- OWASP France- Sébastien Gioria- C. Villeneuve