Plan
Les fondamentaux de la scurit web Anatomie dune application !eb "#pes datta$ue et intrusion %&elopper et dplo#er une application web scurise 'rification et audit de la scurit des applications !eb
Applications web sont omniprsentes et incontournables dans lacti&it des entreprises et des administrations: ( Acc)s &ia un na&i*ateur web ( +tilisation dans un en&ironnement technolo*i$ue ou&ert : ,""-. /- port 01 2acilit de dploiement et de mis en 3u&re
( (
En&ironnement expos et &ulnrable 4ible pri&il*ie des pirates :/ntrusion. -irata*e. &ols dinformation
5olutions classi$ues 6 la scurit web: installation de certificats. mise e place dun firewall ( 4es solutions ne sont plus suffisantes pour la scurit des applications web
Ncessit de procder 6 des nou&elles mthodes de scurisation et ce dans les tapes en amont de la mise en li*ne des applications !eb
(
2a
Les diffrentes sortes datta$ues sur les applications !eb sont les sui&antes :
nterprtation des !"Ls #au$ais contr%le des donnes entres par lutilisateur n&ection de code S'L Attaques sur les identifiants de session (ross Site Scriptin) *+SS, Autres attaques
4omme le montre cet exemple la manipulation des param)tres des +RLs et de leur contenu peut permettre lacc)s 6 toute larborescence du ser&eurs web et m<me obtenir un 5hell:
= =
-ossibilit de contournement par le biais dun prox# intrusif : en&oi de re$u<te ,""directement au ser&eur !eb %sacti&ation du Ja&a5cript : tous les contrBles des donnes par Ja&a5cript seront omis -ossibilit de dcompilation des applets Ja&a
(onstat. Ne Jamais faire confiance 6 du code $ui tourne cot client pour contrBler les donnes entres par lutilisateur "ecommandations . = Ncessit dun double contrBle cBt client plus cBt ser&eur = 4ompta*e du nombre de param)tres et de leur nom = Neutralisation des caract)res spciaux = 4ontrBle de la lon*ueur des donnes = 'alidation du t#pe des donnes 9date. chaFne. nombre; = 4ontrBle de linter&alle de &alidit des donnes 9dans labsolu; = 'rification de la &alidit relle des donnes 9en relatif. dans une base de donnes; = Limitation du nombre de saisies de donnes par unit de temps
n&ection S'L
/nGection 5:L est une cons$uence dun mau&ais contrBle des donnes entres par lutilisateur: Principe )nral . +tilisation des caract)res ? H @ et ? I @ pour enchainer plusieurs re$u<tes 5:L 6 la suite lune de lautre. pour tenter de rcuprer des donnes confidentielles. ou a&oir acc)s 6 des parties de lapplication $ui ne sont pas autorises 6xemple .
AdministrateurI ((
La re$u<te excute finalement sera la sui&ante: 5ELE4" user 2RJD tableCusers !,ERE champClo*inKAdministrateurI (( AN% champCpasswordKpassword Le rsultat est un contournement de lauthentification : on se retrou&e lo*u en tant $uAdministrateur
n&ection S'L
Leaucoup de techni$ues dinGection 5:L existent: Attaques de syntaxe. utilisation de parentaise. point &ir*ule. dlimiteurs de commentaire >M ou (( Attaques smantique. &isant le sens de la re$u<te afin de *nrer des erreurs 5:L au ni&eau du 5GL% et les faires retourner 6 la personne mal&eillante "ecommandations . (onfi)uration ser$eur S789. = 5uppression des comptes inutiles crs par dfaut et cration de comptes a&ec des pri&il)*es rduits 9tous les utilisateurs authentifis ne doi&ent pas utiliser le m<me compte pour effectuer toutes les transactions dans la base de donnes; = 5uppression des procdures stocNes prsentes par dfaut = Application de permissions dacc)s en lecture. suppression. excution sur les tables. les procdures stocNes et les autres obGets de la base de donnes (onstruction des requ:tes S'L. = Rdi*er les re$u<tes a&ec une s#ntaxe stricte et un t#pa*e s#stmati$ue9chaFnes entoures de ? H @ par exemple ;. = +tilisation de fonction de substitution et dexpressions r*uli)res = Ne pas laisser les re$u<tes 5:L dans les pa*es du 5cript
,""- est un protocole dconnect. le reconnaissance dun client par un ser&eur entre deux connections se fait &ia un identifiant de Session
,""->1 1 O11 JP %ate: Don. 1Q Jun O118 11:78:OQ GD" 5er&er: Apache>1 8 OR 5et(4ooNie: sessionK;;;1W<+S9WAA(A8=6#>78 8;?+ I pathK> 4ontent("#pe: text>html
dentifiant de session est chan* au ni&eau du : 4ooNie S +RL( 4hamps cach dun formulaire "isque . Anal#se dun *rand nombre didentifiants de session successifs peut mener 6 la dtermination des &ulnrabilits dans la mthode de *nration de ces identifiants par Exemple : partie fixe et partie &ariable. Geux de caract)res faible "ecommandations. 'rifier la $ualit du *nrateur alatoire et ltendu de lespace de &aleurs $ui doit <tre suffisamment *rande /l est parfois prfrable dcrire soi(m<me une fonction de *nration des identifiants de session plus robuste. mais $ui de&ra <tre &rifie soi*neusement /l est touGours prfrable de pr&oir une dure maximale de &alidit dune session
(%t client. = Daintenir les na&i*ateurs et clients mail 6 Gour 9correctifs de scurit; I = %urcir leur confi*uration le plus possible
Autres attaques
(ontr%le daccAs bas sur le -eader BTTPC"6D6"6" . A &iter : la manipulation des headers 6 laide dun prox# intrusif est facile #anque de raut-entification . Le man$ue de rauthentification au ni&eau de certaines fonctionnalits criti$ues 9comme le chan*ement du mot de passe de lutilisateur. par exemple; permet sou&ent 6 un atta$uant de prendre le contrBle dun compte #au$aise )estion du contexte utilisateur . La mau&aise *estion du contexte utilisateur peut permettre une au*mentation pro*ressi&e de pri&il)*es conduisant 6 la prise de contrBle total de lapplication par un atta$uant /l con&ient de contrBler strictement et 6 cha$ue pa*e le contexte de scurit 9lutilisateur est(il authentifi Y :uels droits poss)de(t(il Y; #an in t-e middle. +ne atta$ue dite Zman in the middle[ consiste 6 intercepter les re$u<tes du client et 6 les rela#er &ers le ser&eur distant l*itime et in&ersement 6 intercepter les rponses du ser&eur et 6 les rela#er &ers le client /l est possible au passa*e. si ncessaire. de modifier 6 la &ole les donnes fournies par le client et>ou les rponses du ser&eur Le seul mo#en de se prmunir contre ce t#pe datta$ue est dimposer une authentification cBt client par lutilisation de certificats clients \ ]1^ Le ser&eur intercepteur ne pourra alors plus se faire passer pour le client aupr)s du ser&eur distant l*itime car il ne dispose pas de la cl pri&e du client
2ormation et sensibilisation /dentification des besoins et apprciation des ris$ues 4onception et implmentation
Dormation et sensibilisation
#aitrise dou$ra)e . /dentifier les enGeux de scurit en exprimant clairement les besoins #aitrise dEu$re et quipe de d$eloppement. 2ormation au mcanismes de base de scurit spcifi$ues aux applications web Respect des bonnes prati$ues 'eille scurit
(onception et implmentation
P-ase conception . %finir a&ec prcision les mcanismes de scurit $ui permettront latteinte des obGectifs dfinis prcdemment %ocumenter ces descriptions formelles Principe . %fense en profondeur : plusieurs li*nes de dfense 9si la premi)re li*ne est dfaillante ou franchie par un atta$uant une O )me &oir une 8 )me li*ne est en place pour prot*er les ressources; P-ase implmentation. +n rfrentiel documentaire $ui prsente les bonnes prati$ues de d&eloppement scuris +ne checN(list $ui permet de sauto(contrBler et de sassurer $ue rien na t oubli %es A-/ ou un frameworN ? scurit @ $ui &itent da&oir 6 recrer des mcanismes de scurit de base 9authentification. filtra*e des donnes. etc ; +ne attention particuli)re doit <tre porte sur lutilisation dA-/ ou de frameworN internes ou externes $ui doi&ent <tre &alids ou audits afin de sassurer $uils ne portent pas de &ulnrabilits ou de code mal&eillant
F "ecette G de la scurit
P-ase qui succAde @ limplmentation et la ralisation . 'rification de la scurit de lapplication 'alidation de mani)re pra*mati$ue $ue lapplication se comporte de mani)re scurise face aux atta$ues 9&oir ci(apr)s le chapitre sur la &rification de la scurit;
Pourquoi $rifier 0 Application web : ensemble de bri$ues lo*icielles complexes -robabilit derreurs de conception. implmentation ou int*ration -r&oir des tra&aux de re&ue dans le c#cle de &ie dune application !eb (omment $rifier 0 1 ( Audit des spcifications : 4onsidrer des scnarios de menaces et &aluer comment les mcanismes pr&us sont 6 m<me de prot*er lapplication Ne permet pas de se prmunir contre d&entuels probl)mes dimplmentation O ( Audit de code : Anal#se du code afin de &rifier : Respect des bonnes prati$ues de scurit et des r)*les de contrBle mtier interne %celer les failles de scurit 8 ( "est dintrusion : 4onfronter lapplication 6 une situation datta$ue relle en simulant les actions dune personnes mal intentionne: "est en boite noire ."est en boite blanche. "est en boite *rise /ncon&nient : ne peut <tre ralis $u6 la fin du c#cle de d&eloppement 7 ( Re&ue de linfrastructure dhber*ement : 4ontrBle de la confi*uration de la plate forme dhber*ement 8 ( Automatisation : +tilisation doutil commerciaux ou open source de test dintrusion /ncon&nients : Lass sur des mod)les prdfinies de test Ne permettent pas didentifier des failles tr)s spcifi$ues
'uand $rifier la scurit dune application Web 0 (onstat. La 5curit des applications web est &rifie Guste a&ant la mise en production &oir apr)s: 4oup de correction le& Approc-e. -lanifier les &rifications tout au lon* du c#cle de d&eloppement et aussi lors d &olutions ou daGout de fonctionnalits
Re&ue ? papier @ d)s la conception I Audit de code d)s limplmentation I "ests dintrusion au moment des tests utilisateur I Re&ue dinfrastructure a&ant la mise en production