Anda di halaman 1dari 23

Scurit des applications Web

ENG111 : Expos dentrainement Ralis par : Abderrahim Jbali

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

Les fondamentaux de la scurit web.

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

Anatomie dune application Web


Les 2irewall autorisent les flux ,""- sur le port 01 et ,""-5 sur le port 788. cependant les ris$ues sont prsent 6 plusieurs ni&eaux:

Types dattaque et intrusion

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

nterprtation des !"Ls


Les +RLs utilises dans le cadre dune application !eb sont du t#pe : -ttp.//www.domaine.fr/c-emin/fic-ier.ext0param12x3param42y ( -ttp.// : protocole utilis ( www.domaine.fr : adresse du ser&eur 92:%N; ( c-emin : arborescence de rpertoires sur le ser&eur !eb 5 fic-ier.ext : fichier lu ou excut 9son extension ext est tr)s importante; ( param1 et param4 : param)tres dexcution. interprts soit au ni&eau des composants mtiers. soit directement au ni&eau de la base de donnes 4hacune de ces parties est susceptible d<tre atta$ue : Protocole : on peut par exemple essa#er de remplacer le protocole https:>> par http:>> afin de dsacti&er une authentification par certificat client = Ser$eur : on peut le remplacer par son adresse /- ou par les noms de domaines dautres sites hber*s sur le m<me ser&eur. afin da&oir acc)s 6 dautres parties du site = (-emin : on peut tenter de na&i*uer dans larborescence pour accder 6 des parties du site non autorises ou pour remonter dans larborescence par lutilisation de ? > > > @. ou en utilisant des &ulnrabilits particuli)res 9le bu* +nicode d//5. par exemple; =

nterprtation des !"Ls

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:

nterprtation des !"Ls


-our contrer les atta$ues sur les +RLs . il con&ient de prendre les mesures sui&antes : = = = = = = = 5curiser le s#st)me dexploitation et le ser&eur !eb 9appli$uer en particulier les derniers patches de scurit. chrooter le ser&ice. A; /nstaller larborescence !eb sur une partition ddie 4ontrBler strictement larborescence !eb et supprimer les rpertoires inutiles %sacti&er le ? director# browsin* @ sur lensemble du site !eb 5upprimer tous les filtres. interprteurs de scripts. 4G/ et autres excutables inutiles 5upprimer tous les fichiers inutiles sur un ser&eur de production. notamment les pa*es dexemples Appli$uer des permissions dacc)s strictes sur les fichiers au ni&eau du ser&eur !eb mais aussi du s#st)me de fichiers En particulier. lutilisateur anon#me ne doit a&oir $ue des permissions en lecture sur les pa*es stati$ues +tiliser un filtre d+RLs 9par exemple le module modCrewrite pour Apache ou le filtre /5A-/ +RL5can pour //5; et appli$uer des r)*les strictes afin de contrBler. de rcrire ou dinterdire toutes les +RLs contenant des caract)res dan*ereux comme les caract)res +nicode /nstaller un re&erse prox# 9module modCprox# dApache. par exemple; Enfin. en&isa*er linstallation dun /%59s#st)me de dtection dintrusion; sur la %DE hber*eant le ser&eur !eb et>ou le re&erse prox#. afin de dtecter les atta$ues classi$ues comme la remonte dans larborescence !eb

= =

#au$ais contr%le des donnes entres par lutilisateur


Le contrBle des donnes entres par lutilisateur au ni&eau de la partie client de lapplication 9 Ja&a5cript. Applet ( Ja&a. etcA; est insuffisant:
( ( (

-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 .

SELECT user FROM table_users WHERE champ_login=login AND champ_password=password

un atta$uant saisit la chaFne sui&ante dans le champ Lo*in :

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

Attaques sur les identifiants de session

,""- 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

(ross Site Scriptin) *+SS,


Principe . Atta$uer les utilisateurs de lapplication plutBt $ue lapplication elle(m<me En&oi dune pa*e hostile 6 un utilisateur contenant du code mal&eillant. ce code est excut sur le poste de lutilisateur dans son contexte de scurit 6xemple. Lexemple le plus simple est celui $ui consiste 6 pro&o$uer une erreur ,""- 717 cheT les &ictimes 5i le site www ban$ue com ne filtre pas de faUon correcte les donnes en&o#es par les utilisateurs. un atta$uant peut saisir le texte sui&ant sur une pa*e accde par dautres utilisateurs : VA ,RE2Khttp:>>www ban$ue com>VscriptW alert9document cooNie;V>scriptWXW4licN ,ereV>aW Les internautes rece&ront la pa*e sui&ante sils ont cli$u sur le lien ci(dessus : V,"DLW717 -a*e Not 2ound:VscriptWalert9document cooNie; V>scriptWV>,"DLW Le script contenu dans cette pa*e derreur 717 &a pro&o$uer lafficha*e des cooNies relatifs au site www ban$ue com /l suffit 6 un atta$uant de les rcuprer pour se faire passer ensuite pour lutilisateur l*itime aupr)s du site de la ban$ue

(ross Site Scriptin) *+SS,


Prcautions @ prendre pour contrer ce type dattaques . (%t ser$eur. = = Daintenir le ser&eur !eb 6 Gour 9correctifs de scurit; 4ontrBler la &alidit des saisies des utilisateurs. notamment les balises VscriptW. les incohrences du t#pe Vim* srcKXGa&ascript:A XW. etcA 4e contrBle peut *alement <tre fait au ni&eau des anti&irus cBt ser&eurs effectuant *alement un contrBle du le flux ,""-

(%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

9$elopper et dployer une application web scurise

2ormation et sensibilisation /dentification des besoins et apprciation des ris$ues 4onception et implmentation

Dormation et sensibilisation

5ensibiliser toutes les parties prenantes dun proGet !eb:

#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

dentification des besoins et apprciation des risques


P-ase fondamentale . -rise en compte des caractristi$ues fonctionnelles pou&ant a&oir un impact sur la scurit %finition des besoins fonctionnels en terme de scurit: ou&erture sur /nternet. sensibilit des donnes manipules. accessibilit O7h>O7. traUabilit. obli*ations l*ales. populations dutilisateurs cas dutilisation.A !tilisation dune mt-odolo)ie de modlisation des menaces et destimation des risques scurit . 5assurer $ue lensemble des ris$ues a bien t pris en compte /dentifier des solutions et mesures de scurit appropries en fonction de la probabilit et de limpact des ris$ues potentiels identifis

(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;

<rification de la scurit des applications Web

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

<rification de la scurit des applications Web

'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

#erci pour $otre attention

Anda mungkin juga menyukai