Vous êtes sur la page 1sur 138

La Sécurité des Applications Web

Dr. Neila RJAIBI

AU: 2018-2019
Dr. Neila Rjaibi

• Maître-assistante, à FSJEGJ
• Docteur IAG -ISG Tunis
• Chercheur à SMART Lab, ISG Tunis
• Email: Rjaibi_neila@yahoo.fr
• Domaine de Recherche en Thèse : Quantification de la
sécurité, métriques de sécurité, gestion de risque de
sécurité
• Articles, ouvrages et Citations : Google Scholar
Citations, ResearchGate, LinkedIn

Dr. Rjaibi Neila


Références de base du cours
– OWASP Documentations (owasp.org)
– IBM Initiatives for education: Big Data University

Dr. Rjaibi Neila


Les Formations & Certifications (IBM)
• IBM lance son initiative DNA: Digital Nation Africa, qui offre
des formations en ligne entièrement gratuites dans
plusieurs domaines d'actualité (Cloud computing, IA,
Blockchain, Data Science, etc.)

• il vous suffit d'être en Tunisie, et de créer un compte à ce


lien: https://developer.ibm.com/africa

• AfricaSkillsAcademy: www.ibm.biz/meauniversity

• Dr. Jamil Dimassi (jdimassi@tn.ibm.com) IBM University


Relations Leader -North West Africa

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
Objectifs du cours
La Sécurité des Applications Web:
la Sécurité Applicative

1. Sécurité Applicative
2. Le Projet OWASP
3. OWASP TOP 10 des menaces (Cas Pratiques)
4. Le Logiciel AppScan d’IBM
5. Quantification de la sécurité
6. Gestion des risques

Dr. Rjaibi Neila


1. La Sécurité Applicative
Définitions
Systè e d’i for atio SI

 SI: L’e se le des o e s essai es à l’ la o atio , au


t aite e t, au sto kage, à l’a he i e e t et à l’e ploitatio
des informations

“I ep se te u pat i oi e esse tiel de l’e t ep ise

la o fide tialit et la dispo i ilit de l’i fo atio o stitue


u e jeu t s i po ta t pou la o p titi it de l’e t ep ise

Dr. Rjaibi Neila


Définitions

La sécurité du système d’i for atio


 Ensemble de mesures de sécurité physique, logique,
administrative et de mesures d'urgence, mises en place dans
une organisation, en vue d'assurer:
La confidentialité des données de son système d'information
 La protection de ses biens informatiques

la continuité des services

OFFICE QUEBECOIS DE LA LANGUE FRANCAISE. Sécurité informatique : définition. In : BVc

Dr. Rjaibi Neila


Intrusions/Les firewalls (Pare-feu )
Dispositif qui protège un système informatique connecté à Internet
des tentatives d'intrusion qui pourraient en provenir

- Matériel / logiciel

- Rôle : filtrage du trafic non autorisé

- Action: rejet ou accepter

- Selon : Protocole, @IPsource et destination, Ports source destination et les Flags (SYN,
ACK, FIN,…)

- Politique de filtrage
* Accepter tout sauf
* Refuser tout sauf

Dr. Rjaibi Neila


Virus / Antivirus
• Un virus informatique est un logiciel malveillant (fichier
exécutable) écrit dans le but de se dupliquer sur d'autres
ordinateurs.

• Il peut aussi avoir comme effet de nuire en perturbant plus ou


moins gravement le fonctionnement de l'ordinateur infecté.

• Il peut se répandre à travers tout moyen d'échange de


données numériques comme l'Internet, les disquettes, les CD,
les clefs USB, etc

Dr. Rjaibi Neila


© Copyright IBM Corporation 2014

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Le problème avec les applications Web

Dr. Rjaibi Neila


Dr. Rjaibi Neila
.

Les exigences de la sécurité


informatique (security requirements: SR)

Authentification : vérifier l’identité des personnes qui veulent manipuler


l’information

Confidentialité : L’information ne peut être connue que par les personnes


autorisées

Disponibilité : L’information doit être utilisable à la demande

Intégrité : L’information ne doit pas être altérée ou détruite par accident


ou malveillance
L’absence de possibilité de contestation d’une action une fois
Non répudiation : celle-ci est effectuée

Dr. Rjaibi Neila


Qui représente un danger ?
Des utilisateurs

Pirate : celui qui distribue et vend des logiciels protégés sous


copyright
 Hacker : Celui qui visite des ordinateurs qui ne lui
appartiennent pas sans leurs causer des dommages mais pour
personnaliser son système
 Cracker :celui qui veut casser un système et causer des
dommages
Les espions: Pirate payé par une entreprise ou un organisme
concurrent pour récolter (de façon frauduleuse) des
informations sur un domaine précis

Dr. Rjaibi Neila


Terminologies de base
• Lesvulnérabilités: ce sont les failles de sécurité dans un ou plusieurs systèmes. Tout
système vu dans sa globalité présente des vulnérabilités, qui peuvent être
exploitables ou non. (UNE FAIBLESSE DU SYSTEME)

• Lesattaques (exploits): elles représentent les moyens d'exploiter une


vulnérabilité. Il peut y avoir plusieurs attaques pour une même vulnérabilité
mais toutes les vulnérabilités ne sont pas exploitables.

• Lesmenaces : ce sont des adversaires déterminés capables de monter une attaque


exploitant une vulnérabilité. (UN DANGER)

• Lesintrusions : L'intrusion est le fait pour une personne ou un objet de pénétrer,


dans un espace (physique ou logique) défini où sa présence n'est pas souhaitée.

Dr. Rjaibi Neila


Pourquoi les systèmes sont-ils vulnérables ?

Vulnérabilité
Faille ou bug pou a t t e utilis pou o te i u i eau d’a s illi ite à
u e essou e d’i fo atio s ou des p i il ges sup ieu s à eu o sid s
comme normaux pour cette ressource

La vulnérabilité caractérise les composants du système(matériel, logiciel,


les règles, les procédures, personnel sus epti les d’ t e atta u es a e
succès

Une vulnérabilité est exploitée par une menace pour causer une perte

Exemples de vulnérabilités :
 Utilisation des mots de passe non robustes
Présence de comptes non protégés par mot de passe

Dr. Rjaibi Neila


Pourquoi les systèmes sont-ils vulnérables ?
 La sécurité est cher et diffi ile: Les o ga isatio s ’o t pas de udget pou ça

 La sécurité ne peut être sûr à 100%, elle est même souvent inefficace

 La politique de sécurité est complexe et basée sur des jugements humains

 Les organisations acceptent de courir le risque, la s u it ’est pas u e p io it

 De nouvelles technologies (et donc vulnérabilités) émergent en permanence

 Les systèmes de sécurité sont faits, gérés et configurés par des hommes

 …

Dr. Rjaibi Neila


Comment trouver les vulnérabilités
avant les pirates?
• Faire plus de balayages de vulnérabilités?
• Fai e da a tage de tests d’i t usio ?
• Faire des révisions de code! (Outils automatisés
pour faciliter la tâche )
– Analyse statique du code (SAST)
– Analyse dynamique des requêtes (DAST)
– Analyse hybride (IAST)
 Intégrer la sécurité plus tôt dans le cycle de
développement

Dr. Rjaibi Neila


Types d’atta ue
Une attaque peut être de type passive ou active.

Attaque passive
les attaques passives consistent à écouter sans modifier les données ou le
fonctionnement du réseau. Elles sont généralement indétectables.

Attaque active
les attaques actives consistent à modifier des données ou des messages, à
s'introduire dans des équipements réseau ou à perturber le bon
fonctionnement de ce réseau. Noter qu'une attaque active peut être
exécutée sans la capacité d'écoute.

Dr. Rjaibi Neila


Les effets d’u e atta ue
Attaque passive : ’est la moins dangereuse
- Ne odifie pas l’i fo atio
- Co sultatio de l’i fo atio

Attaque active : e t pe d’atta ue est dangereux


- Modifie l’ tat d’u e i fo atio , d’u se eu ou d’u e
communication
- Connexion frauduleuse à un host ou un réseau
- Altération des messages en transit sur un réseau (Denis de
service)

Dr. Rjaibi Neila


Le projet OWASP
la sécurité des applications
web
La visibilité de la sécurité

Dr. Rjaibi Neila


L’OWA“P
• OWASP : Open Web Application Security Project
• Indépendant des fournisseurs et des gouvernements.
• Objectif principal : produire des outils, documents et
standards dédiés à la sécurité des applications Web.
• Toutes les documentations, standards, outils sont fournis sous
le modèle de l’open-source.
• Organisation :
– Réunion d’e pe ts indépendants en sécurité informatique
– Communauté mondiale(plus de 100 chapitres) réunie en une fondation américaine pour supporter
son action. L’adh sio est gratuite et ouverte à tous
– En France : une association; pour supporter les problèmes juridiques francais.

• Le poi t d’e t e est le iki http:// .o asp.o g

Dr. Rjaibi Neila


O ga isatio de l’OWA“P
OWASP

OWASP
Conferences
OWASP Governance
OWASP
Wiki

OWASP
Tools OWASP
Chapter OWASP Foundation (501c3)
OWASP Leaders
Lists
Board of
Directors Board of Operations Technical
OWASP Books OWASP Project (Williams, Wichers, Advisors Director Director
Brennan, Cruz, and (McNamee) (Casey)
Leaders Deleersnyder)

OWASP
Community

Dr. Rjaibi Neila


Finances and Grants
OWASP Grants
OWASP Autumn of Code
2006
$20,000 budget

100%
OWASP Spring of Code 2007
$117,500 budget

OWASP Summer of Code


2008
$126,000 budget
55%

OWASP Foundation
45%

Dr. Rjaibi Neila


OWASP Is Alive!

2009 …
2007

2005

2003

2001

Dr. Rjaibi Neila


L’OWA“P
 420 000 pages vues par mois
 15 000 téléchargements par mois
 11 335 membres sur les listes
 3 687 utilisateurs du Wiki
 1 500 MAJ du Wiki par mois
 110 chapitres mondiaux
 100 membres individuels
 48 outils/projets/documents
 38 membres entreprise
 25 projets fondés et soutenus dans
la communauté
 1 employé

Dr. Rjaibi Neila


•3,913 total articles
OWASP KnowledgeBase •427 presentations
•200 updates per day
•179 mailing lists
•180 blogs monitored
•31 doc projects
•19 deface attempts
•12 grants

Dr. Rjaibi Neila


OWASP Tools •and
• Vulnerability
Technology
Penetration Testing • ESAPI
Scanners Tools
• Static Analysis • Code Review Tools
Tools
• Fuzzing
Automated
Manual Security Security
Security
Verification Architecture
Verification

• AppSec Libraries • Reporting Tools • Flawed Apps


• ESAPI Reference • Learning
Implementation Environments
• Guards and Filters • Live CD
• SiteGenerator
AppSec AppSec
Secure Coding
Management Education

Dr. Rjaibi Neila


OWASP en France
• U Co seil d’Ad i ist atio asso iatio loi 1901) :
– Président/évangéliste/relations publiques : Sébastien
Gioria
– Vice-Président et responsable du projet de traduction :
Ludovic Petit
– Secrétaire et Responsable Juridique : Estelle Aimé
• Un Bureau :
– Le CA
– Romain Gaucher : chercheur au NIST
– Mathieu Estrade : développeur apache

Dr. Rjaibi Neila


Les publications
• Toutes les publications sont disponibles sur le site
de l’OWA“P: http://www.owasp.org
• L’e se le des documents est régi par la licence
GFDL (GNU Free Documentation License)
• Les documents sont issus de différentes
collaborations :
– Projets universitaires
– Recherche & développements des membres

Dr. Rjaibi Neila


Les publications majeures
• Le TOP 10 des vulnérabilités applicatives
• Le guide de o eptio d’appli atio s We
sécurisées
• Le FAQ de la sécurité des applications
• Le guide « les 10 commandements sur
l’ itu e d’u e appli atio non sécurisée »

Dr. Rjaibi Neila


Les Guides
• 100% Libres.
• Issus de l’e p ie e de illie s d’e pe ts à t a e s le o de
• OWASP guide
– U ou age pou la atio d’appli atio s We s u is es à l’i te tio
des :
• Développeurs
• Architectes
• …
– I lus les eilleu s p ati ues da s diff e ts la gages PHP, Ja a, .Net, …
– Plusieurs centaines de pages
• OWASP Testing guide
– Ou age d di à l’audit s u it des appli atio s We à l’i te tio des
pen-testeurs principalement.

Dr. Rjaibi Neila


OWASP Enterprise Security API (ESAPI)
• Un framework de sécurité pour les
développeurs
• Permettre de créer une
application Web Sécurisée

 Classes Java
 Disponible sur le site de
l’OWASP
 En cours de portage pour le
SoC 2008 sur .NET et PHP
WebGoat - WebScarab
• WebGoat :
– Application Java serveur (JSP, JEEE) non sécurisés.
– Sert a démontrer les failles, leur principe et a éduquer

• WebScarab :
– Appli atio Ja a pe etta t d’effe tue des tests de
sécurité :
• Sur les applications Web
• Sur les WebServices

Dr. Rjaibi Neila


Quelques outils
• Outil de génération de données aléatoires(Fuzzer) permettant
d’i je te des do es pou les tests
– JBroFuzz :
• Fuzzer destiné à tester les applications Web
– WS Fuzz :
• Fuzzer destiné à tester les WebServices.
• Sprajax
– Outil destiné a tester la sécurité des applications AJAX
• Et ie d’aut es :
 http://www.owasp.org/index.php/Category:OWASP_Project

Dr. Rjaibi Neila


Le Top 10
• Liste les 10 vulnérabilités des applications Web
les plus rencontrées
• Mis a jour tous les ans
• D’i po ta tes o ga isatio s l’o t adopt es da s
leurs référentiels
• Federal Trade Commission (US Gov)
• US Defense Information Systems Agency
• VISA (Cardholder Information Security Program) – PCI/DSS
• Le NIST
• Des opérateurs Télécoms

Dr. Rjaibi Neila


Dr. Rjaibi Neila
L’OWA“P TOP des
Menaces
Version 2013

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Evolution du top 10 des menaces

Dr. Rjaibi Neila


A1 – Injection

Injecter dans la requête SQL en cours


un morceau de requête non prévu par
le système
Affecte le serveur
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
A1 – Injection

• Attaque classique et populaire ( N° 1 TOP 10


d'OWASP)
• les sites qui peuvent être vulnérables à cette
attaque sont ceux qui se basent sur une base
de données SQL

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
Dr. Rjaibi Neila
Dr. Rjaibi Neila
Dr. Rjaibi Neila
A1 : E e ple su l’i je tio “QL
"SELECT * FROM
Account Summary
Account:
accounts WHERE

Knowledge Mgmt
Communication
Administration

Bus. Functions

Legacy Systems
acct=‘’ OR 1=1--

Human Resrcs
E-Commerce
Application Layer

Transactions

Web Services
SKU:

Directories
Databases
Accounts
Acct:5424-6066-2134-4334

Finance
HTTP

Billing
HTTP SQL
response
DB Table

’"
Acct:4128-7574-3921-0192
request query Acct:5424-9383-2039-4029
APPLICATION 
 

ATTACK

Acct:4128-0004-1234-0293
Custom Code
. L’appli atio fou i u fo ulai e

2. L’atta ua t e oi so atta ue
dans les données du formulaire
App Server
.L’appli atio t a sf e les
Web Server données à la requête SQL
Hardened OS
4. Le SGBD lance la requête
Network Layer

o te a t l’atta ueet e oie le


sultats à l’appli atio .
Firewall
Firewall

. L’appli atio e oie e sultat à


l’utilisateu

Dr. Rjaibi Neila


A1 – Injection
L’i je tio

• Envoyer à une application des données générant un comportement non


attendu.

Les Interpréteurs

• Utilisent les chaines et les interpretent comme des commandes


• SQL, OS Shell, LDAP, XPath, Hibernate, etc…

L’i je tio “QL est toujou s o u e

•E o e t d’appli atio s so t se si les


• M e s’il est t s si ple de s’e aff a hi ….

Impact

• “ou e t t s s e. Le plupa t du te ps l’e se le des do es de la ase


sont lisibles ou modifiables.
• Cela peut e alle jus u’au s h a de la ase, les o ptes ou u a s O“….

Dr. Rjaibi Neila


A1 – Comment se protéger
Au niveau du code PHP
• On peut tout simplement échapper les caractères
spéciaux contenus dans les chaines de caractères
soumises en utilisant des fonctions PHP
comme addslashes() ou mysql_real_escape_string().
• vérifier si la chaine représente un tel caractère par la
fonction preg_match()
• Faire une authentification en deux temps:
– Au lieu de vérifier le login et le mot de passe dans la même
requête, on sépare ce traitement en deux. On demande
d'abord le login, et si celui-ci est correcte on demande
ensuite le mot de passe

Dr. Rjaibi Neila


A1 – Comment se protéger
Au niveau de la configuration du serveur
• Appel au fichier de configuration du moteur PHP nommé php.ini. Il
s'agit d'un fichier texte qui contient un ensemble de directives qui
permettent de personnaliser certains aspects du comportement du
moteur PHP. Pour cette partie on va tout simplement changer la
directive magic_quotes_gpc comme ceci:
– magic_quotes_gpc = On
– Cette directive va tout simplement échapper automatiquement les
caractères spéciaux présents dans les chaines de caractères entrantes
(qui proviennent des formulaires, barre URL et cookies). Elle agit en
fait comme la fonction addslashes() mais d'une manière
automatisées.

• References
– Plus de détails sur
http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

Dr. Rjaibi Neila


A2 - Violation
d’authe tifi atio

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
A2 - Violatio d’authe tifi atio

• Cette attaque a été forgée par les pirates pour


pouvoir voler les cookies de la victime.
• il peut tout simplement usurper son identité (
ID) auprès du site qui a généré ce cookie là. Il
peut alors se passer de l'authentification et
accéder directement à l'espace personnel de
la victime.

Dr. Rjaibi Neila


Exemple 1: Session hijacking

• Un attaquant peut chercher à voler (détourner)


une session Web en apprenant le comportement
de la victime. ID de session secrète.

• La o aissa e de l’ID de sessio d’u utilisateu


peut permettre à un attaquant de se faire passer
pour son identité. connexion authentifiée avec le
serveur Web

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
E e ple : Illust atio d’u e au aise authe tifi atio
1 Utilisateur envoie ses

Knowledge Mgmt
Communication
Administration

Bus. Functions
identifiants

E-Commerce
Transactions
Accounts
Finance
www.boi.com?JSESSIONID=9FA1DB9EA...
Le site it l’URL
Custom Code
(i.e., ise da s l’URL de l’ID de 2
session)

3 L’utilisateu li ue su u lie ve s
http://www.hacker.com dans un forum

L’atta ua t ega de les logs Referer su


www.hacker.com 4
L’atta ua t peut utilise le
Et découvre le JSESSIONID
5 JSESSIONID sur le site
boi.com pour son méfait

Dr. Rjaibi Neila


A2 – Mau aise gestio des sessio s et de l’authe tifi atio
HTTP est un protocole sans état

• Les identifiants doivent donc être passés a chaque requête.


• Il faut utiliser SSL pour toute authentification

Failles da s la gestio de l’authe tifi atio

• Des ID de sessions sont utilisés pour maintenir la session dans HTTP.


• Cela suffit à u atta ua t, ’est aussi i t essa t u’u ide tifia t
• Les ID de sessions sont souvent exposés dans les sessions réseau, dans les
o se s ookies , da s les logs, ….

Atte tio au po tes d o es…

• Changement de mot de passe, se souvenir de mon passe, oubli de mot de passe,


questions secretes, logout, email, …

Impact

• Vol de session ou compromission de comptes utilisateur

Dr. Rjaibi Neila


A2 – Contre Mesure
• V ifie l’a hite tu e !
– L’authe tifi atio doit t e si ple, e t alis e et sta da dis e
– Utiliser le mécanisme standard de gestion des cookies du Framework (ils sont
globalement fiable)
– Utiliser constamment SSL pour protéger les identifiants de connexion et de
sessions
• V ifie l’i pl e tatio
– Vérifier le certificat SSL (SSLv2, e go iatio , hiff e e t fai le, …
– E a i e toutes les fo tio s elati es a l’authe tifi atio
– Vérifier que la déconnexion supprime bien la session !
– Utilise l’OWA“P WebScarab pou teste l’i pl e tatio sessionID analysis)

• Il faut jamais sauvegarder un id de session dans une structure de donnée

• Il faut générer à chaque fois un nouveau id de session donc le pirate ne


peut pas l’ide tifie

Dr. Rjaibi Neila


SSL (système de chiffrement)
• Secure Sockets Layer
• Protocole de sécurisation des échanges sur Internet, devenu Transport Layer
Security en 2001
• le grand nombre de banques et de sites de commerce électronique l'utilisant
pour protéger les transactions
• Développé à l'origine par Netscape
• HTTP Implémentés au-dessus de SSL/TLS a donné le protocole HTTPS
– HTTPS: L'HyperText Transfer Protocol Secure, plus connu sous l'abréviation HTTPS —
littéralement « protocole de transfert hypertexte sécurisé » — est la combinaison du HTTP
avec une couche de chiffrement comme SSL ou TLS.
– En 2009, TLS est utilisé par la plupart des navigateurs Web. L'internaute peut reconnaître
qu'une transaction est chiffrée à plusieurs signes :
– l'URL dans la barre d'adresse commence par https ( https://...) et non http ;
– Affichage d'une clé ou d'un cadenas, dont l'emplacement varie selon le navigateur

Dr. Rjaibi Neila


A3 - Cross-Site Scripting XSS

Dr. Rjaibi Neila


XSS
• L'attaque XSS vise comme cible le client plutôt
que le serveur.
• Elle se sert d'un script Javascript qui sera
exécuté chez le client pour détourner le
fonctionnement de son navigateur

Dr. Rjaibi Neila


Example – www.altoromutual.com
Entrer la recherche d’u e chaîne de caractère

Dr. Rjaibi Neila


-La chaîne de recherche apparaît dans la requête GET et sur la page de résultats
-Le ode sou e pou ait pe ett e l’i je tio de HTML ou Ja a“ ipt

Dr. Rjaibi Neila


-L'injection de formatage HTML modifie l'aspect du texte de retour
-Voir la source révèle que les balises HTML sont injectées dans la page.

Dr. Rjaibi Neila


• Injected Script peut ouvrir une nouvelle fenêtre (cela pourrait être un site Web de
canular)
• U ou el o glet s'ou e o t a t la ou elle page. Cela pou ait t e utilis pou le
phishing

Dr. Rjaibi Neila


E e ple d’u e atta ue a tuelle

Dr. Rjaibi Neila


A3 – Cross-Site Scripting (XSS)
Se retrouve à chaque audit/pentest

• Des do es e a t d’u atta ua t so t e o au a igateu d’u utilisateu

Ces données peuvent être

• Stockées en base (côté serveur)


• R fl hies depuis u e e t e d’u e page We ha p de fo ulai e, ha p a h , URL,

• Envoyé directement à un client Riche (Javascript, Flash, …

Virtuellement toute application Web est vulnérable

• Essayez cela dans votre navigateur – javascript:alert(document.cookie)

Impact

• Vol des sessions utilisateur, des données sensibles, récrite de la page Web, redirection
e s u site d’ha eço age ou aut e ode al eilla t
• De a i e plus g a e : i stallatio d’u p o X““ pe etta t à u atta ua t
d’o se e le poste lie t oi de fo e l’utilisateu e s u site pa ti ulie

Dr. Rjaibi Neila


A3 :Cross-Site Scripting Illustré
L’atta ua t d ouv e le s ipt vul a le
1

Application disposant
de faille XSS
L’atta ua t e t e u s ipt
malicieux sur la page
web(stocké) ou bien utilise un
lien(réfléchi) permettant
d’e vo e ve s la page

Knowledge Mgmt
Communication
Administration

Bus. Functions
E-Commerce
Transactions
La victime se rend sur la page

Accounts
2

Finance
Custom Code

Le “ ipt s’e e ute su le


navigateur de la victime
sa s u’il e le sa he

3
L’atta ua t eçoit le ookie ou aut e l e t di e te e t

Dr. Rjaibi Neila


A3 – Contre mesures
• Internet Explorer, par exemple, par défaut en mode de protection
empêche les scripts XSS de s'exécuter lorsqu'ils sont présents

• Recommandations
– Supprimer la faille 
• Ne pas i lu e de o te u fou i pa l’utilisateu da s la page de so tie !!!
– Défenses possibles
1. E ode toutes les e t es et so ties utilisateu s utilisez l’OWA“P E“API pou l’e odage
de sortie) http://www.owasp.org/index.php/ESAPI
2. Effectuer de la validation de type « white liste » pour les données utilisateurs entrantes qui
sont inclues dans une page.
3. Pour des grosses portions de code HTML fournie par un utilisateur, utiliser le filtre OWASP
Anti-Sammy de a i e à etto e l’HTML
Voir: http://www.owasp.org/index.php/AntiSamy
• Référence
– Pour effectuer un encodage propre, ce référer à http://www.owasp.org/index.php/XSS_(Cross
Site Scripting) Prevention Cheat Sheet (AntiSamy

Dr. Rjaibi Neila


A4 - Références directes
non sécurisées à un objet

A de à ’i po te uel fi hie
Exemple 1

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
Dr. Rjaibi Neila
Exemple 2:Référence directe non sécurisée à un objet illustrée

• L’atta ua t ote le
paramètre acct = 6065
https://www.onlinebank.com/user?acct=6065 ?acct=6065

• Il modifie celui-ci de la
manière suivante
?acct=6066

• L’atta ua t isualise u
autre compte.

Dr. Rjaibi Neila


A4 – Référence directe non sécurisée à un objet
Comment accéder aux données privées

• Mau aise est i tio d’a s à u e URL

Des erreurs classiques

• Atte d e u i ue e t de l’utilisateu des a s à des o jets


autorisés
• Cacher des références des objets
• Ce i ’est u’u e te tati e de o t ôle d’a s su la p se tatio
• U atta ua t ’a u’a odifie les aleu s des pa a t es…

Impact

• Un utilisateur accède à des données ou des fichiers interdits

Dr. Rjaibi Neila


A4 – Contre Mesure
• Eliminer la référence directe.
– La remplacer par une valeur temporaire aléatoire (e.g. 1, 2, 3)
– L’E“API fou it des fo tio s pou ela
• IntegerAccessReferenceMap & RandomAccessReferenceMap
http://app?file=Report123.xls Report123.xls
Access
http://app?file=1
Reference
http://app?id=9182374 Map Acct:9182374
http://app?id=7d3J93
• Valide la f e e di e te à l’o jet
– Vérifier que le contenu est correctement formaté.
– V ifie ue l’utilisateu a le d oit d’effe tue l’a s à l’o jet.
– V ifie ue le ode d’a s à l’o jet est auto is e.g., read, write, delete)

Dr. Rjaibi Neila


A5 - Mauvaise
configuration du serveur

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
A5: Quoi ?
• Accès non autorisé à des comptes , des données, ou des
fonctionnalités accessibles à cause d’u e mauvaise
configuration utilisateur

• Une mauvaise configuration de la sécurité peut se produire


dans toutes les composantes de l'application Web y
compris la plate-forme (systèmes d'exploitation), le serveur
Web, la base de données,

• En cours d'exécution, les informations d'identification du


compte d'administrateur par défaut sont actives et révèlent
des répertoires et fichiers en ligne.

Dr. Rjaibi Neila


Exemple 1: Essayer les caractères spéciaux typique

Dr. Rjaibi Neila


Exemple 2: Accès au Répertoire

Dr. Rjaibi Neila


Mauvaise configuration illustrée

Knowledge Mgmt
Communication
Administration

Bus. Functions
E-Commerce
Transactions
Accounts
Finance
Database

Custom Code

App Configuration

Development
Framework

App Server
QA Servers
Web Server

Hardened OS
Insider Test Servers

Source Control

Dr. Rjaibi Neila


Préventions

• Configurez le serveur Web pour refuser de


lister les répertoires.

• Téléchargez un correctif de sécurité spécifique


en fonction du problème existant sur votre
serveur Web ou application Web (patch).
– Les applications Web doivent avoir une mise à
jour : On pense aux réseau, aux système et aux plateformes, les environnements de développement

Dr. Rjaibi Neila


A5 – Contre Mesure
• Vérifier la gestion de la configuration de sécurité de vos systèmes.
– Ayez des guidelines de renforcement de la sécurité.
• L’auto atisatio est elle e t utile da s e as
– Cou i toute la platefo e et l’appli atio
– Ga de a l’esp it d’a oi des pat hs pou TOU“ les o posa ts
• Cela i lue les li ai ies, et pas seule e t l’O“, les se eu s et appli atio s.
– A al se l’i pa t des ha ge e ts e s u it

• Pou ez ous effe tue des aste s de ot e o figu atio appli ati e ?
– Mettre en place un reporting des builds dans le processus sécurité
– “i ous e pou ez ifie la o figu atio appli ati e, l’appli atif ’est pas
sécurisé

• V ifie l’i pl e tatio


– Les scans découvrent généralement les configurations par défaut et les
problèmes du à des patchs de retard

Dr. Rjaibi Neila


OWASP A6 - Stockage
cryptographique non sécurisé

Exposition de données sensibles

Sensitive Data Exposure

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Exemple 1: Attribut de sécurité manquant dans
un cookie de session cryptée (SSL)

• Toutes les informations telles que les cookies, les jetons de


session ou les informations d'identification de l'utilisateur
sont envoyés au serveur sous forme de texte clair, peuvent
être volés et utilisés plus tard pour usurpation d'identité ou
usurpation d'identité

Dr. Rjaibi Neila


Exemple 2: Cryptage non appliqué
• La page de connexion est disponible sur HTTP
et HTTPS

Dr. Rjaibi Neila


Exemple 3: Paramètre de requête (GET) utilisé
dans la demande SSL
• En raison de la sensibilité des requêtes
hiff es, il est sugg d’utilise HTTP POST
sa s pa a t e da s la haî e d’URL lorsque
cela est possible, afin d’ ite la di ulgatio
d'URL et des paramètres à des tiers.

Dr. Rjaibi Neila


Exemple 4: Paramètre __VIEWSTATE
non chiffré

Dr. Rjaibi Neila


Le paramètre _VIEWSTATE
• Le paramètre _VIEWSTATE est utilisé par ASP .NET pour
gérer l'état de contrôle.

• VIEW“TATE ’est hiff u’e ase et est do


facilement décrypté. Si cela contient des informations
sensibles, alors il est possible que cela peut être compromis
ou corrompu

• Ce paramètre pourrait potentiellement contenir des


informations sensibles telles que noms d'utilisateur, mots
de passe, nom d'ordinateur et / ou emplacements de
fichiers sensibles.

Dr. Rjaibi Neila


Exemple 5: Divulgation d'informations sensibles
dans les commentaires HTML

• Bie ue l’ajout de o e tai es g au soit t s


utile, certains programmeurs ont tendance à laisser des
données importantes, telles que: les noms de fichiers
liés à l'application Web, anciens liens ou liens qui
n'étaient pas destinés à être parcourus par les
utilisateurs, ancien code fragments, etc.

• Un attaquant qui trouve ces commentaires peut


mapper la structure de l'application et fichiers, exposer
les parties cachées du site et étudier les fragments de
code

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Exemple 6: Mauvaise restriction d’URL illustrée
• L’atta ua t note dans l’URL
https://www.onlinebank.com/user/getAccounts que le rôle est affiché
/user/getAccounts

• Il modifie directement l’URL


(le rôle)
/admin/getAccounts, ou
/manager/getAccounts

• L’atta ua t dispose de
privilèges supplémentaires

Dr. Rjaibi Neila


Prévenir l'exposition des données sensibles

• Crypter toutes les données sensibles au repos et en transit.


• Ne stockez pas de données sensibles inutilement. Jeter le plus tôt
possible.
• Les données que vous n'avez pas ne peuvent pas être volées.
• Assurez- ous d’utilise des algorithmes standard forts et des clés fortes, et
la gestion des clés est en place. Pensez à utiliser la norme FIPS 140
modules cryptographiques validée .
• Assurez-vous que les mots de passe sont stockés avec un algorithme
spécialement conçu pour protection par mot de passe, telle que bcrypt,
PBKDF2 ou scrypt.
• Désactiver la saisie semi-automatique sur les formulaires collectant des
données sensibles et désactiver la mise en cache pour les pages contenant
des données sensibles.

Dr. Rjaibi Neila


A6 – Contre Mesure
• Pour tout URL il faut 3 éléments :
– Rest ei d e l’a s au seuls utilisateu s authe tifi s sauf si l’URL est pu li ue).
– Re fo e les pe issio s as es su les ôles ou l’utilisateu si l’URL est p i e
– Bloquer toute requête à des pages non autorisées ( (e.g., fichiers de config, de log, code
source, etc.)

• V ifie l’a hite tu e


– Utiliser un modèle positif simple à tous les niveaux
– “’assu e d’a oi u od le d’a s à tous les i eau .

• V ifie l’i pl e tatio


– Ou lie l’app o he auto atis e
– V ifie ue ha ue URL de l’appli atio est p ot g e pa :
• Un filtre externe, comme en J2EE (web.xml)
• Ou par un morceau de VOTRE code – Voi la thode E“API’ isAuthorizedForURL()
– V ifie ue la o figu atio du se eu ’auto ise pas les e u tes e s les t pes de
fichiers ou extensions non autorisés.
– Utiliser un proxy type WebScarab pour forger des requêtes non autorisées.

Dr. Rjaibi Neila


A7 - Ma ue de Rest i tio d’a s URL

Missing Function Level Access Control

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
A7: Qu'Est-ce que c'est?

• Les applications Web peuvent avoir des


utilisateurs avec différents niveaux de privilèges
de compte.

• Dans ce cas, l’authe tifi atio de base des


utilisateurs peut ne pas suffire à empêcher un
utilisateur d’o te i des fonctions de compte
privilégiées de niveau supérieur et accès à des
informations restreintes.

Dr. Rjaibi Neila


Quelles sont les implications?

• “i l’a s au fo tio s de p i il ge des


comptes était contrôlé dans le code.

 un pirate qui a compromis un utilisateur de


niveau inférieur pourrait tenter d'accéder aux
fonctions et données du compte privilégié en
devinant les appels des fonctions supérieures.

Dr. Rjaibi Neila


Exemple 1 : Accès direct aux pages d'administration

• Un attaquant peut accéder à des pages en devinant


son nom : Exemple: admin.php, admin.aspx,
admin.cgi, admin.html, etc.

• Example request for a page named


ad i /ad i .asp ":
• (https://www.altoromutual.com/admin/admin.aspx)
– Page defaults to the Admin login page /admin/login.aspx

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Exemple 2:
Deux principaux types de cette vulnérabilité;

• L’ l vatio ve ti ale des p ivil ges est le cas où un


utilisateur de privilège inférieur accède à des fonctions ou
du contenu réservés pour des privilèges plus élevés
Exemple: les utilisateurs d'Internet Banking peuvent accéder
aux fonctions administratives du site.

• Élévation horizontale des privilèges, où un utilisateur


normal accède à des fonctions ou contenus réservés à
d'autres utilisateurs normaux
Exemple: L'utilisateur Internet bancaire A accède au compte
bancaire de l'utilisateur B

Dr. Rjaibi Neila


L’ l vatio ve ti ale des p ivil ges

Dr. Rjaibi Neila


Élévation horizontale des privilèges
Identifier les numéros d'utilisateurs identifiés lors de l'attaque
verticale

Dr. Rjaibi Neila


• Utiliser un outil de proxy ou de sabotage pour modifier
les numéros de compte (Proxy or Tamper tool)

Dr. Rjaibi Neila


• Tamper Data permet à l'identifiant du compte à
modifier avant la soumettre

Dr. Rjaibi Neila


• BINGO! L'accès est acquis à un autre compte
d'utilisateur

Dr. Rjaibi Neila


Exemple 3: Redirection illustrée
1 L’atta ua t e voi à la vi ti e via u e ail ou u e page
Web de son choix le lien.
From: Internal Revenue Service
Subject: Your Unclaimed Tax Refund
L’appli atio edi ige la
Our records show you have an 3 victime vers le site de
unclaimed federal tax refund. Please
l’atta ua t
click here to initiate your claim.

Knowledge Mgmt
Communication
Administration

Bus. Functions
E-Commerce
Transactions
Accounts
La vicitime clique sur le lien contenant une donnée

Finance
2 non validée.

Custom Code

Request sent to vulnerable


site, including atta ke ’s
destination site as parameter.
Redirect sends victim to
attacker site Evil Site

Le site malveillant installe des éléments sur


http://www.irs.gov/taxrefund/claim.jsp?year=2006& … le navigateur ou récupère des données
&dest=www.evilsite.com 4

Dr. Rjaibi Neila


Prévention du contrôle d'accès
• Le mécanisme d'application des applications devrait
refuser tout accès par défaut
• Exiger des attributions explicites à des rôles
spécifiques pour accéder à chaque fonction.
• Si la fonction est impliquée dans un flux de travail,
vérifiez que les conditions sont dans le bon état pour
permettre l'accès.
• Ne vous fiez pas à la couche de présentation pour
contrôler le flux vers des fonctions non autorisées.
• Vous devez également implémenter des contrôles dans
le contrôleur ou la logique applicative.

Dr. Rjaibi Neila


A8 - Falsification de requête intersite
CSRF

Cross-site request forgery (CSRF)

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Quel est le risque de sécurité?

• CSRF est une attaque permettant à un pirate


d’e ute une action sur le site vulnérable au
nom de la victime.

• L’atta ue est possible lorsque le site


vulnérable ne valide pas correctement
l'origine de la demande.

Dr. Rjaibi Neila


Exemple 1

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
Prévention (CSRF)
• P ot ge ot e site We o t e le is ue d'atta ue
par la CSRF
 Insérer des jetons aléatoires dans les formulaires et
les URL utilisés dans les transactions
 Configurez des mécanismes de vérification externes
(par exemple, courrier électronique ou téléphone)
pour la vérification. Exemple (les banques en Tunisie,
e ails …
Utilisez uniquement la méthode POST lors de l'envoi
de données sensibles au serveur Web.
Dans Microsoft® ASP.NET, définisse une
ViewStateUserKey (elle fournit un mécanisme
similaire aux jetons aléatoires)

Dr. Rjaibi Neila


Dr. Rjaibi Neila
A8 – Cross Site Request Forgery (CSRF)
Cross Site Request Forgery

• C’est u e atta ue ou le a igateu de la i ti e g e u e e u te e s u e


application Web vulnérable
• Cette ul a ilit est aus e pa la apa it u’o les a igateu s à envoyer
auto ati ue e t des do es d’authe tifi atio sessio ID, IP address, comptes de
domaine windows, ..) dans chaque requête.

Imaginez

• Que se passerait-il si un hacker pouvait utiliser votre souris pour effectuer des clicks
sur votre site de banque en ligne a votre place.
• Que pourrait-il faire ?

Impact

• Initiation de transactions (transfert de fonds, logoff, odifi atio de do es, …


• Accès à des données sensibles
• Changement des mots de passes/identifiants

Dr. Rjaibi Neila


CSRF démystifié
• Le problème
– Les navigateurs Web incluent automatiquement la plupart des identifiants
dans chaque requête.
– Que ela soit des e u tes e a t d’u fo ulai e, d’u e i age ou d’u
autre site.
• Tous les sites basés uniquement sur les identifiants
automatiques sont vulnérables
– App o i ati e e t % des sites le so t…
• C’est uoi u ide tifia t auto ati ue?
– Cookie de session
– Heade d’authe tifi atio HTTP
– Une adresse IP
– Les certificats SSL client
– L’authe tifi atio de do ai e Wi do s.

Dr. Rjaibi Neila


CSRF illustré
L’atta ua t pose so pi ge su u site i te et (ou via u e-mail)
1

Application vulnérable au
Un tag chaché <img> CSRF
contient une attaque
vers un site vulnérable

Knowledge Mgmt
Communication
Administration

Bus. Functions
Transactions

E-Commerce
Accounts
Finance
Tout en étant logguer sur le site vulnérable, la victime
2 pa ou t le site de l’atta ua t.
Custom Code

3
Le site vulnérable ne voie
Le tag <img> tag chargé que des requêtes
par le navigateur envoie légitimes et effectue
une requête GET l’a tio de a d e
(contenant des identifiants
sur le site vulnérable)
Dr. Rjaibi Neila
A8 – Contre Mesure
• Ajouter un jeton, non envoyé automatiquement, a toutes les requêtes sensibles.
– Cela e d i possi le pou l’atta ua t de sou ett e u e e u te alide.
• (sauf si en plus il y a une faille XSS)
– Ces jetons doivent être surs cryptographiquement.
• Options
– “to ke u seul jeto da s la sessio et l’ajoute a tous les fo ulai e et lie s
• Champ caché: <input name="token" value="687965fdfaew87agrde"
type="hidden"/>
• Utiliser un URL : /accounts/687965fdfaew87agrde
• Utiliser un jeton de formulaire: /accounts?auth=687965fdfaew87agrde …
– Atte tio a e pas e pose le jeto da s l’entete referer
• Utiliser de préférence un champ caché.
– Utiliser un jeton unique par fonction.
– Il est e o a d d’ajoute u se o d i eau d’authe tifi atio pou u e t a sa tio
sensible
• Ne pas laisser un attaquant stocker des attaques sur le site
– E ode p op e e t les do es d’e t es
– Cela permet de limiter la majorité des interpréteurs de liens
Voir www.owasp.org/index.php/CSRF_Prevention_Cheat_Sheet pour plus de détails

Dr. Rjaibi Neila


A9 - Composantes vulnérables

Using components with known


vulnerabilities

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Qu'Est-ce que c'est?
• Toute partie de l’appli atio Web développée par un tiers - u’elle
soit binaire ou code source, open source ou commercial - requiert
une vulnérabilité

• Presque toutes les applications Web utilisent des composantes


open source, tels que la bibliothèque OpenSSL, qui fournissait la
plupart et la majorité du cryptage des site Webs d'Internet. TLS /
SSH (HTTPS).

• Veiller à ce que les composants d'applications Web tiers ne


contiennent pas de données connues. Le test de vulnérabilités
nécessite un processus continu de surveillance des nouvelles des
versions de correctifs de sécurité et un programme d'analyse des
vulnérabilités.

• Comme ils sont connus et documentés, les attaquants peuvent


facilement les exploiter.

Dr. Rjaibi Neila


Dr. Rjaibi Neila
Dr. Rjaibi Neila
Prévention: Utilisation de composants avec des
vulnérabilités connues
• La plupart des fournisseurs ne créent pas de correctifs de vulnérabilité pour les
anciennes versions. Ils corrigent le problème dans la prochaine version. Donc,
’est iti ue de passer à ces nouvelles versions
• Les projets logiciels doivent avoir un processus en place pour:
– Identifiez tous les composants et les versions que vous utilisez
– Surveiller la sécurité de ces composants dans les bases de données
publiques, le mailing du projet, listes de diffusion, et les tenir à jour.
– Éta lissez des politi ues de s u it gissa t l’utilisatio des o posa ts,
par exemple en exigeant que pratiques de développement logiciel, réussite
des tests de sécurité et licences.

• Le as h a t, e isagez d’ajoute des e eloppes de s u it autou des


composants, désactiver les fonctionnalités inutilisées et / ou sécuriser les
aspects faibles ou vulnérables du composant.

Dr. Rjaibi Neila


A10- Redirections et renvois non
validés

Unvalidated Redirects and Forwards

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Qu'Est-ce que c'est?
• Les applications Web traitent fréquemment les redirections
vers d'autres pages à l'aide de paramètres.
• Si ces paramètres ne sont pas valides, un attaquant peut en
profiter en créant une redirection vers une page
malveillante, ce qui peut tromper les victimes dans la
divulgation des mots de passe et des données sensibles.

Quelles sont les implications?


Un attaquant pourrait créer un lien dans un email de phishing
malveillant, où ce lien utilise un nom de domaine canular pour le
site Web cible.

Dr. Rjaibi Neila


Exemple: Phishing via la redirection d'URL
• E odifia t la aleu de l’URL e s u site al eilla t, un attaquant peut
lancer avec succès une arnaque par hameçonnage et voler les
informations d'identification de l'utilisateur.
• Le fait que le nom du serveur dans le lien modifié soit identique à celui du
site d'origine aide l'attaquant en donnant à ses tentatives de phishing une
apparence fiable.

Dr. Rjaibi Neila


Protection insuffisante lors du
transport des données illustré

Partenaire métier
Victime externe
Custom Code Backend Systems

Employées
1 2
Vols de données Vol de données via le
via le réseau réseau interne
externe

Attaquant externe Attaquant interne


Dr. Rjaibi Neila
A10 – Contre Mesure
• Utiliser les mécanismes de protection appropriés
– Utiliser TLS pour tout transport de données sensible.
– Chiffrer les messages avant transmission.
• E.g., XML-Encryption
– Signer les messages avant transmission
• E.g., XML-Signature
• Utiliser les mécanismes correctement !
– Utiliser des algorithmes surs ! (désactiver les vieilles versions de SSL et
les chiffrements faibles…
– Gérer correctement les clefs/certificats.
– Vérifier les certificats SSL avant l’utilisatio .
– Voir http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
pour plus de details

Dr. Rjaibi Neila


Conclusion
En résumé : comment adresser ces risques
• Développer du code sécurisé !
– Suivre les bonnes pratiques du Guide OWASP sur la construction sécurisée d’u e
application Web.
• http://www.owasp.org/index.php/Guide
– Utiliser l’OWA“P Appli atio “e u it Verification Standard comme un guide permettant
de définir les mécanismes de sécurité
• http://www.owasp.org/index.php/ASVS
– Utiliser les composants de sécurité standard et s’adapta t le ieu a ot e e t ep ise
• Pa e e ple utilise l’OWA“P E“API o e u e fo datio a VO“ o posa ts sta da ds
• http://www.owasp.org/index.php/ESAPI

• Auditer les applications


– Fai e appel a u e uipe e p i e t e pou a al se et audite l’appli atio .
– Auditer les applications vous-même grâce au guide de l’OWA“P
• OWASP Code Review Guide:
http://www.owasp.org/index.php/Code_Review_Guide
• OWASP Testing Guide:
http://www.owasp.org/index.php/Testing_Guide

Dr. Rjaibi Neila


Projet

OWASP Mobile Security Project


Le projet OWASP de sécurité du
mobile

Vous aimerez peut-être aussi