Vous êtes sur la page 1sur 38

ISET de Djerba

LICAR

BEN JAMAA Soufiene

Atelier 3 OWASP Top 10 2013 Risques Scurit des Applications

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
3

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
4

A1

Injection SQL

mysql_real_escape_string()
mysql_real_escape_string() doit toujours tre utilise pour protger vos donnes avant d'envoyer une requte MySQL. mysql_real_escape_string() sert principalement protger les donnes rcupres depuis un formulaire avant de les entrer dans la BDD et donc d'viter les attaques par injection MYSQL. Si magic_quotes_gpc est active, appliquez d'abord la fonction stripslashes() vos donnes. Utiliser cette fonction sur des donnes qui ont dj t protges, les protgera une deuxime fois.

Exercice
Crer une fonction PHP permettant de scuris vos formulaires contre les attaque de type Injection SQL. Vous devez traiter le cas o le magic_quotes_gpc est active ou non.

Correction

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
8

A2

Violation de Gestion d'Authentification et de Session

Regroupe les vulnrabilits permettant un attaquant de sapproprier lidentit dun utilisateur. Objectifs :
- Accder des fonctionnalits rserves certaines personnes. - Accder des donnes confidentielles.

Parades :
- Gnrer une nouvelle session priodiquement. - Empcher le dtournement de Session avec jeton stock. - Fermeture automatique dune session aprs une priode d'inactivit.
9

A2

Violation de Gestion d'Authentification et de Session

Violation de gestion dauthentification

Vol de session

10

Exercice
Crer une fonction permettant de gnrer une nouvelle session priodiquement. Crer une fonction permettant dempcher le dtournement de session avec le mcanisme dun jeton stock. Crer une fonction permettant de fermer automatiquement une session aprs une priode d'inactivit.

11

Correction

12

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
13

A3

Cross-Site Scripting (XSS)

Attaque par injection, consistant insrer du code au sein dune application rpute fiable, pour quil sexcute sur le poste client.
Objectifs :
- Dfiguration / blocage de site. - Redirection dutilisateurs vers un autre site. - Vol de session.

Parades :
- Vrifier les donnes en entre. - Retraiter les donnes issues de la base de donnes avant de les afficher.
14

A3

Cross-Site Scripting (XSS)

15

Exercice
Crer une fonction permettant dvitez les failles XSS sur votre site.

16

Correction

17

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
18

A4

Rfrences directes non scurises un objet

Faille permettant un attaquant daccder directement des objets (fichiers, rpertoires, enregistrements de base de donnes) sans autorisation.
Objectifs :
- Accder des informations confidentielles. - Prendre le contrle dun serveur.

Parades :
- Vrifier les accs chaque ressources. - Remplacer par une valeur temporaire alatoire les rfrences directes aux objets (ID, noms de fichiers).
19

A4

Rfrences directes non scurises un objet

20

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
21

A5

Mauvaise configuration Scurit

Cette faille regroupe toutes les vulnrabilits lies des problmes de configuration, sur tous les lments de la couche applicative (serveurs, langage, framework, composants).
Objectifs :
- Accder des informations confidentielles. - Prendre le contrle dun serveur.

Parades :
- Ne pas attribuer aux composants plus de droits que ncessaire. - Etudier rigoureusement la configuration.
22

A5

Mauvaise configuration Scurit

23

Apache - fichier .htaccess Les principales raisons d'utilisation des fichiers .htaccess sont :
Grer l'accs certains fichiers. Ajouter un mime-type. Protger l'accs un rpertoire par un mot de passe. Protger l'accs un fichier par un mot de passe. Dfinir des pages d'erreurs personnalises.
24

Apache - fichier .htaccess


Accs restreint pour un dossier
AuthName "Repertoire priv" AuthType Basic Require valid-user AuthUserFile /prive/comptes/.pspr.txt

Empcher listing d'un rpertoire


DirectoryIndex index.php index.html index.htm /erreurs/403.php Options -Indexes

Page d'erreur personnalise


ErrorDocument 404 /util/erreur404.php?destinataire=admin@chez.com ErrorDocument 403 "Nous sommes dsol mais cette page n'est pas pour vous..." ErrorDocument 401 http://www.unsite.com/mot-de-passe-exige.htm

25

Apache - fichier .htaccess


Types Mime personnaliss
AddType image/x-photoshop PSD AddType application/x-httpd-php php3 AddType application/x-httpd-php htm AddType application/vnd.google-earth.kml+xml kml AddType text/css css AddType text/cache-manifest manifest AddType image/svg+xml svg AddType multipart/x-gzip gz,gzip,svgz

Empcher l'accs fichier particulier


<Files ".ht*"> deny from all </Files>
26

Apache - fichier .htaccess


Le fichier robots.txt
On utilise ce fichier pour interdire un moteur de recherche d'indexer un dossier ou un fichier. Mais ne dclarez pas dans ce fichier robots.txt un rpertoire ou un fichier qui doit rester secret non seulement des moteurs de recherche mais aussi des pirates !! Tout le monde peut lire le contenu du fichier robots.txt et donc trouver l'adresse de votre dossier/fichier secret. Pour garder un dossier l'abri des regards des robots indexeurs et des pirates, il est plus efficace de le protger avec un mot de passe htaccess.

27

Configuration de php.ini
safe_mode=On
Option de PHP qui permet de scuriser le systme , afin d'viter les interactions entre PHP et le systme. En cas d'activation , PHP n'autorisera pas les excutions de programmes externe , ou l'accs des fichiers d'autres utilisateurs.

display_errors = Off
Cette directive dtermine si les erreurs doivent tre affiches l'cran ou non.

log_errors = On
activer le log des erreurs.

register_globals = Off
dsactiver les variables globales.

28

Configuration de php.ini
magic_quotes_gpc = Off
Paramtre qui filtre les paramtres HTTP GET et POST et ajoute des / devant les apostrophes guillemets et caractre null.

disable_functions=exec,passthru,shell_exec,system,proc_open,po pen,curl_exec,curl_multi_exec,parse_ini_file,show_source
dsactiver les fonctions dangereux.

allow_url_fopen = Off

viter le file include

file_uploads = Off
dsactiver l'upload de fichiers via HTTP

29

Configuration de php.ini Configuration PHP


<?php
ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 'Off'); ini_set('log_errors', 'On'); ini_set('error_log','/usr/local/apache/logs/error_log');

?>

30

Configuration de php.ini

Remarque:
si la configuration est tablie plusieurs applications gnrent des erreurs comme Joomla, PHPBB, PHPNUKE, Drupal, WORDPRESS etcessayer de faire modifier les applications et pas l'inverse.

31

Configuration de php.ini

Vrification de la configuration
Security Information: PhpSecInfo

32

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
33

A6

Exposition de donnes sensibles

Cette faille regroupe toutes les vulnrabilits lies la protection des donnes sensibles Objectifs :
- Accder des donnes confidentielles. - Usurpation didentit.

Parades :
Utiliser des algorithmes de chiffrement forts. Ne pas stocker dinformations inutiles. Utiliser le protocole TLS sur toute la chaine. Les cls de dcryptage doivent tre stockes sparment des donnes.

34

A6

Exposition de donnes sensibles

Technique du grain de sel

35

OWASP Top 10 2013


A1 Injection A2 Violation de Gestion d'Authentification et de Session A3 Cross-Site Scripting (XSS) A4 Rfrences directes non scurises un objet A5 Mauvaise configuration Scurit A6 Exposition de donnes sensibles A7 Manque de contrle daccs au niveau fonctionnel A8 - Falsification de requte intersite (CSRF) A10 Redirections et renvois non valids A9 - Utilisation de composants avec des vulnrabilits connues
36

A7

Manque de contrle daccs au niveau fonctionnel

Cette faille permet un attaquant daccder des pages ou fonctions dune application Web sans y avoir droit. Objectifs :
- Excuter des fonctionnalits sans en avoir les droits. - Accder des donnes confidentielles.

Parades :
- Vrifier les droits daccs sur chaque page de linterface et avant dexcuter chaque fonctions (logique mtier). - Par dfaut, refuser les accs.
37

A7

Manque de contrle daccs au niveau fonctionnel

38