Comprendre la sécurité web
Christophe Villeneuve
@hellosct1
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
RMLL 2017 – 4 Juillet 2017
Alors… La sécurité
La sécurité... c'est pour les autres
Les attaques !!! ah ah ah.. je rigole
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
Les menaces
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
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
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
– ...
RMLL 2017 – 4 Juillet 2017
Site 'alerte' de vulnérabilités (2/2)
(C) https://www.cvedetails.com/browse-by-date.php
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
RMLL 2017 – 4 Juillet 2017
Les différents types d'attaques
●
Matériels ●
Périphériques ●
Smartphones
●
Internet des
Objets
●
Le web●
Logiciels
RMLL 2017 – 4 Juillet 2017
Les points faibles… les bases applicatives
RMLL 2017 – 4 Juillet 2017
Les vulnérabilités Web : Le symbole (1/2)
<
RMLL 2017 – 4 Juillet 2017
Les vulnérabilités Web : Le symbole (2/2)
&lt ;
RMLL 2017 – 4 Juillet 2017
Correspondance des caractères dangereux
Caractères Decimal Hexadecimal HTML
Character Set
Unicode
''  (double quote) &#34; &#x22; &quot; u0022
' (simple quote) &#39; &#x27; &apos: u0027
& (ampersand) &#38; &#x26; &amp; u0026
< (inférieur) &#60; &#x3C; &lt; u003c
> (supérieur) &#62; &#x3E; &gt; u003e
RMLL 2017 – 4 Juillet 2017
Oui mais pas que çà.
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
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
RMLL 2017 – 4 Juillet 2017
Mais... Quoi affiché !!!
✔
Erreur 404 ✔
Erreur 500
✔
Fichier Log
Un minimum d'informations lors d'un crash
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
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
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
RMLL 2017 – 4 Juillet 2017
Les autres solutions
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
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é
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
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.
RMLL 2017 – 4 Juillet 2017
Au niveau Site / Blog...
//
RMLL 2017 – 4 Juillet 2017
Injection
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
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
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
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
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
RMLL 2017 – 4 Juillet 2017
Provenance coté front
●
Navigation
●
Formulaire
– Champs : Input, upload,...
●
Des API Couche Métier
OWASP : A1 – Injection API
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
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
RMLL 2017 – 4 Juillet 2017
Mobiles / Tablettes
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é
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
RMLL 2017 – 4 Juillet 2017
Internet des Objets
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
RMLL 2017 – 4 Juillet 2017
L'avenir proche
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
RMLL 2017 – 4 Juillet 2017
Images des outils
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
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
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
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
Merci
Questions
Christophe Villeneuve
@hellosct1
Supports :
- OWASP
- OWASP France
- Sébastien Gioria
- C. Villeneuve

Comprendre la securite web

  • 1.
    Comprendre la sécuritéweb Christophe Villeneuve @hellosct1
  • 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.
    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.
    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.
  • 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.
    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.
    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.
    RMLL 2017 –4 Juillet 2017 Site 'alerte' de vulnérabilités (2/2) (C) https://www.cvedetails.com/browse-by-date.php
  • 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.
    RMLL 2017 –4 Juillet 2017 Les différents types d'attaques ● Matériels ● Périphériques ● Smartphones ● Internet des Objets ● Le web● Logiciels
  • 12.
    RMLL 2017 –4 Juillet 2017 Les points faibles… les bases applicatives
  • 13.
    RMLL 2017 –4 Juillet 2017 Les vulnérabilités Web : Le symbole (1/2) <
  • 14.
    RMLL 2017 –4 Juillet 2017 Les vulnérabilités Web : Le symbole (2/2) &lt ;
  • 15.
    RMLL 2017 –4 Juillet 2017 Correspondance des caractères dangereux Caractères Decimal Hexadecimal HTML Character Set Unicode ''  (double quote) &#34; &#x22; &quot; u0022 ' (simple quote) &#39; &#x27; &apos: u0027 & (ampersand) &#38; &#x26; &amp; u0026 < (inférieur) &#60; &#x3C; &lt; u003c > (supérieur) &#62; &#x3E; &gt; u003e
  • 16.
    RMLL 2017 –4 Juillet 2017 Oui mais pas que çà.
  • 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.
    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.
    RMLL 2017 –4 Juillet 2017 Mais... Quoi affiché !!! ✔ Erreur 404 ✔ Erreur 500 ✔ Fichier Log Un minimum d'informations lors d'un crash
  • 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.
    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.
    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.
    RMLL 2017 –4 Juillet 2017 Les autres solutions
  • 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.
    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.
    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.
    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.
    RMLL 2017 –4 Juillet 2017 Au niveau Site / Blog... //
  • 29.
    RMLL 2017 –4 Juillet 2017 Injection
  • 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.
    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.
    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.
    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.
    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.
    RMLL 2017 –4 Juillet 2017 Provenance coté front ● Navigation ● Formulaire – Champs : Input, upload,... ● Des API Couche Métier OWASP : A1 – Injection API
  • 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.
    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.
    RMLL 2017 –4 Juillet 2017 Mobiles / Tablettes
  • 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.
    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.
    RMLL 2017 –4 Juillet 2017 Internet des Objets
  • 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.
    RMLL 2017 –4 Juillet 2017 L'avenir proche
  • 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.
    RMLL 2017 –4 Juillet 2017 Images des outils
  • 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.
    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.
    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.
    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.
    Merci Questions Christophe Villeneuve @hellosct1 Supports : - OWASP -OWASP France - Sébastien Gioria - C. Villeneuve