50
Ubuntu paris 1610 - Comprendre la sécurité web Christophe Villeneuve @hellosct1 Le 12 novembre 2016

Comprendre la securite web

Embed Size (px)

Citation preview

Page 1: Comprendre la securite web

Ubuntu paris 1610 -

Comprendre la sécurité web

Christophe Villeneuve@hellosct1

Le 12 novembre 2016

Page 2: Comprendre la securite web

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

Page 3: Comprendre la securite web

Ubuntu paris 1610 -

Alors… La sécuritéLa sécurité... c'est pour les autres

Les attaques !!! ah ah ah.. je rigole

Page 4: Comprendre la securite web

Ubuntu paris 1610 -

Humour : La sécurité...

Ca ne sert rien

C'est de la vente forcée

Ce n'est pas pour moi

Page 5: Comprendre la securite web

Les menaces

Page 6: Comprendre la securite web

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

Page 7: Comprendre la securite web

Ubuntu paris 1610 -

CVE security (1/3)

● Base de données des Vulnérabilités (source d'informations)

● CMS / Framework

● OS

● Navigateurs

Page 8: Comprendre la securite web

Ubuntu paris 1610 -

CVE security (2/3)

https://www.cvedetails.com/product/20550/Canonical-Ubuntu-Linux.html?vendor_id=4781

Page 9: Comprendre la securite web

Ubuntu paris 1610 -

CVE security (3/3)

Page 10: Comprendre la securite web

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

Page 11: Comprendre la securite web

Ubuntu paris 1610 -

Les différents types d'attaques

● Matériels ● Périphériques ● Smartphones

● Internet des Objets

● Le web● Logiciels

Page 12: Comprendre la securite web

Ubuntu paris 1610 -

Les points faibles… les bases applicatives

Page 13: Comprendre la securite web

Ubuntu paris 1610 -

Les vulnérabilités Web : Le symbôle

<

Page 14: Comprendre la securite web

Ubuntu paris 1610 -

Les vulnérabilités Web : Le symbôle

&lt ;

Page 15: Comprendre la securite web

Ubuntu paris 1610 -

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

Page 16: Comprendre la securite web

Ubuntu paris 1610 -

Oui mais pas que çà.

Page 17: Comprendre la securite web

Ubuntu paris 1610 -

STEGANOGRAPHIE

L'art de cacher les choses à la vue de tous

Trouver la courbe la plus longue dans l'image

Q

Page 18: Comprendre la securite web

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

Page 19: Comprendre la securite web

Ubuntu paris 1610 -

Mais... Quoi affiché !!!

✔ Erreur 404 ✔ Erreur 500

✔ Fichier Log

Un minimum d'informations lors d'un crash

Page 20: Comprendre la securite web

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

Page 21: Comprendre la securite web

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

Page 22: Comprendre la securite web

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

Page 23: Comprendre la securite web

Ubuntu paris 1610 -

Les autres solutions

Page 24: Comprendre la securite web

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

Page 25: Comprendre la securite web

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é

Page 26: Comprendre la securite web

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.

Page 27: Comprendre la securite web

Ubuntu paris 1610 -

Au niveau Site / Blog...

//

Page 28: Comprendre la securite web

Ubuntu paris 1610 -

Injection

Page 29: Comprendre la securite web

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

Page 30: Comprendre la securite web

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

Page 31: Comprendre la securite web

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

Page 32: Comprendre la securite web

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

Page 33: Comprendre la securite web

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

Page 34: Comprendre la securite web

Ubuntu paris 1610 -

Provenance coté front● Navigation

● Formulaire

– Champs : Input, upload,...● Des API Couche Métier

OWASP : A1 – Injection API

Page 35: Comprendre la securite web

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

Page 36: Comprendre la securite web

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

Page 37: Comprendre la securite web

Ubuntu paris 1610 -

Mobiles / Tablettes

Page 38: Comprendre la securite web

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é

Page 39: Comprendre la securite web

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

Page 40: Comprendre la securite web

Ubuntu paris 1610 -

Internet des Objets

Page 41: Comprendre la securite web

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

Page 42: Comprendre la securite web

Ubuntu paris 1610 -

L'avenir proche

Page 43: Comprendre la securite web

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

Page 44: Comprendre la securite web

Ubuntu paris 1610 -

Images des outils

Page 45: Comprendre la securite web

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

Page 46: Comprendre la securite web

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)

Page 47: Comprendre la securite web

Merci

Questions

Christophe Villeneuve@hellosct1

Supports :

- OWASP- OWASP France- Sébastien Gioria- C. Villeneuve

Page 48: Comprendre la securite web

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

Page 49: Comprendre la securite web

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

Page 50: Comprendre la securite web

Merci

Questions

Christophe Villeneuve@hellosct1

Supports :

- OWASP- OWASP France- Sébastien Gioria- C. Villeneuve