Académique Documents
Professionnel Documents
Culture Documents
EXTRAIT
ISSU DE L’OFFRE
RÉSUMÉ
L'audit est une brique nécessaire de l'implémentation de la roue de Deming, représentative du cycle d'amélioration continue.
Dans un contexte Web, l'audit de sécurité doit vérifier que les phases amont sont bien implémentées en vue d'émettre les
recommandations nécessaires pour corriger des vulnérabilités éventuellement découvertes. Cet article présente les
principales approches et outils utilisés lors des audits de sécurité techniques dans le domaine des applications Web.
ABSTRACT
Auditing is an essential step when implementing Deming wheel. In a Web context, security audits have to check that prior
phases are correctly implemented in order to improve them thanks to appropriate recommendations. This article aims at
presenting main principles and recommended tools for technical security audits related to Web applications.
1. Contexte et évolutions Nota : se reporter au Pour en savoir plus pour disposer d’une liste de sites Web
spécialisés à consulter.
logicielles
1.1 Failles applicatives des sites Web
La figure 1 décrit l’ensemble des classes de vulnérabilités les
plus courantes des sites Web qui ont été auditées par la société Les applications Web sont la cible de nombreuses attaques, avec
Whitehat Security. Nous pouvons constater que de nombreuses des impacts importants sur les sites Web attaqués (perte d’image
failles dépassent un taux de 20 % de présence, ce qui est tout à fait de marque, compromission de données métiers ou de données
inquiétant. La figure 2, quant à elle, repose sur les mêmes clients...).
principes, mais les données sont issues de la société TrustWave. En effet, les failles applicatives sur les services Web sont à la
fois :
Des corrélations entre ces deux études sont observables.
– les plus exposées, de par leur accessibilité depuis tout
Comme, par exemple, sur la présence forte des failles de type
l’Internet ;
« Cross-Site Scripting » et « Cross-Site Request Forgery ». La des-
cription complète de chacune de ces failles sera réalisée au § 2. – les moins protégées par l’infrastructure, car seuls les pare-feu
applicatifs sont capables, en partie, de détecter et/ou prévenir
l’exploitation de ces failles de sécurité orientées Web ;
– peuvent héberger des données sensibles, telles que des
Par ailleurs, le document détaillé de l’étude de Whitehat
données clients, ou représentent un vecteur de business important
Security souligne que :
comme, par exemple, le commerce électronique.
– les organisations de taille importante ont le nombre
moyen de vulnérabilités par application le plus élevé (13 Les Google Dorks présentés au § 2.2.1, les scans récurrents via
contre 11 pour le meilleur) ; des outils automatisés de recherche de vulnérabilités comme pré-
– les organisations de taille importante ont le taux de mise sentés au § 3.3, les attaques manuelles ciblées, et bien d’autres,
en place des correctifs le moins élevé (54 % contre 62 % pour nous permettent de constater que la moindre faille de sécurité
le meilleur). exposée peut être rapidement découverte, puis exploitée. Le
contexte de l’Internet actuel fait que tout site Web est forcément
Ces résultats pourraient s’expliquer par la complexité de
une cible, que ce soit par des mécanismes automatisés (vous êtes
mise en œuvre des préceptes de sécurité dans la chaîne
alors un parmi d’autres) ou de manière plus ciblée (activisme,
complète, lorsque l’organisation est de taille importante. intelligence économique...). Il suffit de se rappeler des épisodes
Percentage likelihood that at least one serious* vulnerability will appear in a website
55 %
53 %
33 %
26 % 26 %
23 % 22 %
14 % 13 %
11 % 11 % 9% 8% 7% 4%
Information Cross-Site Content Brute force Cross-site Fingerprinting Insufficient Session URL Insufficient Directory Abuse of Prédictable SQL HTTP
Leakage Scripting Spoofing Request Transport Fixation Redirector Authorization Indexing Fonctionality Resource injection Response
Forgery Layer Abuse Location Splitting
Protection
1 SQL Injection 15 %
2 Miscellaneous Logic Flaws 14 %
3 Insecure Direct Object Reference 28 %
4 Cross-Site Scripting (XSS) 82 %
5 Faillure to Restrict URL Access 16 %
6 Cross-Site Request Forgery 72 %
7 Other Injection 7%
8 Insecure File Uploads 10 %
9 Insecure Redirects 24 %
10 Various Denial of Service 11 %
ciblant Sony et d’autres, menant alors à des compromissions de Il est donc nécessaire de prendre en compte les aspects sécurité
données personnelles. Mais aussi, de consulter la base de réfé- à toutes les étapes du cycle de vie logiciel (Software Development
rence qui recense tout un ensemble d’incidents rendus publics, Life-Cycle ).
pour rapidement prendre conscience des risques inhérents à Sur le plan technique et organisationnel, une approche classique
l’exposition sur Internet. est de réaliser des audits de code source récurrents par des outils
d’analyse de code source statique (« boîte blanche ») durant les
Parmi quelques exemples publics récents, nous pouvons citer les phases de développement et de qualification. Cette approche peut
plus notoires : être avantageusement complétée par des outils en « boîte noire »
– LinkedIn s’est fait dérober une partie de la base de mots de qui apportent une autre vision (celle-ci plus proche de la vue de
passe composée d’environ 6 millions de ses utilisateurs en juin 2012 ; l’attaquant) de l’architecture auditée (une fois l’application stable
– LivingSocial s’est fait dérober les données personnelles de près déployée dans un environnement réaliste).
de 50 millions de ses utilisateurs en avril 2013 ; Ce ne sont, bien sûr, qu’une partie de l’implémentation de la
– Twitter.com et New York Times se sont faits compromettre sécurité dans le cycle de vie logiciel. De nombreuses publications
leur nom de domaine par la « Syrian Electronic Army » en août 2013 ; décrivent les principes plus en profondeur, comme le Microsoft
– la compromission du compte Facebook de Mark Zuckerberg Software Development Life-Cycle, le Building Security In Maturity
(son fondateur) par un individu voulant être récompensé financiè- Model et le Open Software Assurance Maturity Model (Consulter la
rement par la découverte de la faille qui a été finalement exploitée en liste de nombreux sites Internet dans le Pour en savoir plus ).
août 2013 ; Fluidifier ce cycle de développement logiciel consiste à s’aider
– Vodafone Germany s’est fait dérober les informations bancaires d’outils automatiques afin de dégrossir le travail des auditeurs
d’environ 2 millions de ses clients en septembre 2013. sécurité. Ils pourront alors se concentrer sur les parties où les
outils sont reconnus comme étant non efficaces. Les coûts
Nous sommes en permanence inondés de ces avis de sécurité humains étant souvent bien plus élevés que les coûts d’acquisition
qui ne représentent, bien entendu, que la partie visible de ou de fonctionnement des outils, le but est de couvrir plus
l’iceberg. Bon nombre de failles de sécurité sont exploitées efficacement une plus grande surface d’applications !
silencieusement, et ce n’est qu’a posteriori qu’elles sont parfois
découvertes...
Encadré 1 – Découverte des failles de sécurité en amont
Vis-à-vis des applications Web, le Verizon Data Breach Découvrir des failles de sécurité en amont, durant les pha-
Investigation Report de 2012 fait état que : ses de développement ou de qualification, et donc les corriger
« Web applications abound in many larger companies, and au plus tôt, est évidemment moins coûteux que de les corriger
remain a popular (54 % of breaches) and successful (39 % of en phase de production. En effet, c’est effectivement moins
records) attack vector ». coûteux de corriger en amont si l’on part du principe que
toute faille de sécurité peut être exploitée (et dans ce cas, ren-
trent en compte les coûts de gestion d’incident, les impacts
juridiques, contractuels et légaux...). De la même manière,
1.2 Évolutions logicielles en cours appliquer un correctif en urgence sur des applications en
production induit des coûts importants humains, et des
Dans ce contexte hostile, les services Web doivent cependant risques supplémentaires en termes de disponibilité de
évoluer sans cesse (figure 3). Ce qui est nécessaire pour survivre l’application. Il ne faut pas se priver de toute possibilité de
dans un contexte extrêmement concurrentiel. Ces évolutions logi- découverte de vulnérabilité en amont des développements !
cielles sont forcément sensibles, puisqu’elles peuvent à tout
De nombreuses études corroborent cet état de fait, dont celle
moment introduire des failles de sécurité. Or, seule l’intégration
des préceptes de sécurité dans un cycle de vie logiciel peut mener du NIST qui estime que les coûts de correctifs, après mise en
production, sont environ six fois plus élevés que si le correctif
à une réduction des risques liés à des failles fonctionnelles ou à
des failles d’implémentation. avait été mis en œuvre durant la phase de développement.
Banking 14 % 29 % 43 % 14 %
At least daily
Financial
27 % 36 % 18 % 9% 9% Weekly
Services
Healthcare 17 % 17 % 33 % 33 % Monthly
Insurance 33 % 67 % Quarterly
Les points décrits dans l’encadré 1 sont assimilés dans une « OWASP Top 10 Mobile Risks » prenant en compte les nouvelles
organisation où le cycle de développement logiciel est suffisam- problématiques de sécurité qui en découlent.
ment mature. Ce n’est malheureusement pas la généralité. L’audit Enfin, l’institut System Administration, Networking, and Security
de sécurité peut être réalisé pour certaines « fausses bonnes (SANS ) a publié un recensement des erreurs les plus dangereuses
raisons », telles qu’être conforme à une exigence réglementaire ou dans le développement, appelé le « CWE/SANS Top 25 Most
contractuelle. Malheureusement, dans ce dernier cas, la volonté de Dangerous Software Errors ». Généraliste, il complète efficace-
respecter les aspects contractuels supplante la volonté réelle ment le Top 10 OWASP qui, lui, est orienté Web.
d’avoir un niveau de sécurité en amélioration continue.
Nota : consulter les adresses des sites Internet dans le Pour en savoir plus.
Toutefois, dans ce contexte d’insécurité, les audits de sécurité de
ses applications Web, mais aussi de ses infrastructures et organi-
sations, semblent nécessaires afin de réduire les risques. Mais tout
est une question de coûts et de moyens mis en œuvre pour assu- 2.2 OWASP Top 10
rer un bon niveau de sécurité des applications Web. Le niveau de
sécurité dépend d’un tout, que ce soit au niveau : Le « OWASP Top 10 » est composé des risques suivants :
– des développements applicatifs ; – A1 Injection ;
– de la configuration des accès ; – A2 Broken Authentication and Session Management ;
– du socle d’hébergement.
– A3 Cross-Site Scripting (XSS ) ;
Par conséquent, un audit complet est toujours nécessaire afin de – A4 Insecure Direct Object References ;
couvrir un maximum de risques. Les aspects organisationnels ne
– A5 Security Misconfiguration ;
sont pas à négliger, bien au contraire, puisqu’eux seuls permettent
de garantir un niveau de sécurité conforme aux attentes (les réfé- – A6 Sensitive Data Exposure ;
rentiels) dans le temps. – A7 Missing Function Level Access Control ;
Cet article aborde tout d’abord les risques de sécurité Web, puis – A8 Cross-Site Request Forgery (CSRF ) ;
les techniques et outils de recherche de vulnérabilités Web, et – A9 Using Components with Known Vulnerabilities ;
enfin un retour d’expérience. – A10 Unvalidated Redirects and Forwards.
La tableau 1 représente l’évolution entre l’OWASP Top 10 2010
Remarque et l’OWASP Top 10 2013. Nous constatons que la liste évolue avec
des catégories qui apparaissent et d’autres qui sont parfois mutua-
Le lecteur est invité à se reporter à l’article [H 5 130] où sont lisées. Le but est en effet d’être le plus cohérent possible avec les
recensées de nombreuses notions relatives au domaine de l’audit évolutions constatées dans le domaine de la sécurité applicative
de sécurité technique lesquelles ne sont alors pas reprises ici. Web, d’où ces évolutions.
Dans cette partie, nous décrirons l’ensemble de ces classes de
risques, exemples à l’appui. Ce qui donnera au lecteur une exhaus-
2. Risques de sécurité Web tivité des failles de sécurité les plus présentes dans un contexte
Web. Nous en profiterons pour détailler avec précision certaines
vulnérabilités très répandues.
Cette partie présente les principales classes de risques de sécurité
Web. Tout d’abord sont abordés leurs principes, mais aussi, sur cer-
taines classes de risques les plus courantes, le fonctionnement plus Top 10 OWASP (traduction française)
de détaillé de l’exploitation de telles failles de sécurité. Une traduction française est disponible sur le site OWASP
(dont l’adresse Web figure dans le Pour en savoir plus ).
2.1 À propos Cependant, pour des raisons de simplicité et d’ubiquité, nous
garderons la terminologie anglaise pour les titres des
L’Open Web Application Security Project (OWASP ) est une différentes catégories de risques.
communauté ouverte dont le but est de développer et maintenir
des outils et documents destinés à aider les organisations à
concevoir et développer des applications Web sécurisées.
Cette communauté est financée par la fondation OWASP depuis 2.2.1 A1 Injection
2001, avec l’objectif de rendre indépendants les travaux de la « Une faille d’injection, telle l’injection Structured Query
communauté vis-à-vis de toute pression commerciale. Le finance- Langage (SQL ), Operating System (OS ) et Lightweight Directory
ment de cette fondation est réalisé grâce à une participation Access Protocol (LDAP ), se produit quand une donnée non fiable
financière des nombreux membres qui la composent (entreprises est envoyée à un interpréteur en tant qu’élément d’une commande
et individuels). Pour information, la fondation a disposé d’un ou d’une requête. Les données hostiles de l’attaquant peuvent
budget 2012 d’un peu plus de 900 000 $. duper l’interpréteur afin de l’amener à exécuter des commandes
Parmi les différents travaux engagés par l’OWASP, nous fortuites ou accéder à des données non autorisées. » (source : Top
pouvons citer le « OWASP Top 10 » qui est la référence sur les 10 OWASP, traduction française).
risques les plus importants en sécurité des applications Web. Ne Toutes les classes d’injection sont donc présentes dans cette
présentant « que » les 10 risques les plus importants, il est à noter catégorie. Cela étant, les injections de commandes sont tout de
que tous les types de vulnérabilités Web ne sont pas présents même de plus en plus rares. Subsistent par contre, de manière
dans ce document. La première édition avait été rendue publique assez importante, les injections SQL.
en 2003. Nous disposons aujourd’hui de la 5e version sortie en
2013. Ce document a pour but d’éduquer les entités réalisant du ■ Détails sur l’injection SQL
développement Web, afin de les sensibiliser sur les risques les L’injection SQL est une classe de vulnérabilités consistant à
plus critiques, tout en donnant les informations nécessaires pour détourner des requêtes SQL légitimes via une injection de code
implémenter des mesures correctives ou préventives. SQL qui sera alors interprétée et exécutée par la base de donnée.
Dans le domaine du développement d’applications sur mobiles Plus généralement, comme toute faille liée à l’injection, il s’agit de
qui est maintenant incontournable, l’OWASP a aussi diffusé un mélanger des « données » avec du « code ». Dans le cas de
AU SOMMAIRE
www.techniques-ingenieur.fr