Techniques de Piratage Des Serveurs Web Et Contre-mesures

Embed Size (px)

Citation preview

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    1/37

    Principales techniques de

    piratage des serveurs webet contre-mesures

    ASIMM 2008-01-30

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    2/37

    Ordre du jour

    Introduction : volution du web

    Prparation dune attaque web

    Principales vulnrabilits et contre-mesures Vulnrabilits publiques

    Injection SQL ; injection de code

    Cross-site scripting (XSS)

    Cross-site request forgery (CSRF) Phishing

    Utilisations abusives

    Dni de service distribu

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    3/37

    volution du web

    Publication dinformation

    Principales menaces :Attaques contre lintgrit du site ( web defacement ) Attaques contre la disponibilit du site ( dni de service )

    VandalismePas de gains montaires

    change dinformation

    Principales menaces :Attaques contre les donnes des utilisateurs (vol didentit) Fraudes financires (intgrit financire des utilisateurs)

    Attaques contre la disponibilit du site ( dni de service )

    Crime organisAttaques souvent motives par largent

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    4/37

    Au cur du problme

    Une problmatique facile rsumer :

    Paramtres HTTP Paramtres de session (session ID, cookie) Contenus applicatifs

    La validation du contenu

    des requtes des utilisateurs

    Validation de la longueur (buffer overflow) Validation de la syntaxe (injections) Validation de la valeur

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    5/37

    Squence dune attaque web

    Phase de reconnaissance Recherche dinformation sur le site

    Technologies utilises

    Recherche de vulnrabilits Problmes dans le code

    Phase dexploitation Selon le but recherch

    Atteinte la disponibilit, lintgrit ou la confidentialitde linformation

    Usurpation didentit

    Etc.

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    6/37

    Phase de reconnaissance

    Requtes GET, HEAD ou OPTIONS telnet sur le port 80

    Outils spcialiss Certains outils sont faciles trouver ; ex. : TamperData, extension pour Firefox

    Netcraft

    OPTIONS / HTTP/1.0 HTTP/1.0 200 OK

    Allow: OPTIONS, TRACE, GET, HEAD

    Content-Length: 0

    Server: Microsoft-IIS/6.0Public: OPTIONS, TRACE, GET, HEAD, POSTDate: Thu, 10 Jan 2008 21:11:30 GMT

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    7/37

    Phase de reconnaissance

    Pages derreurs Erreurs 404

    Erreurs de serveur

    Not FoundThe requested URL /phonypath

    was not found on this server.

    Apache/1.3.36 Server atwww.example.com Port 80 Microsoft JET Database Engine

    error '80040e14'Syntax error in string inquery expression 'ProdID =''''.

    /store/details.asp, line 207

    Software error:You have an error in yourSQL syntax; check the manualthat corresponds to your

    MySQL server version for theright syntax to use near

    'date'' at line 41 at/home/login.cgi line 85.

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    8/37

    Phase de reconnaissance

    Code source des pages web Informations sur les outils utiliss

    Commentaires laisss par les dveloppeurs Pratique pour deviner des identifiants

    Penser regarder aussi le code Javascript !

    // modified by jsmith// 2006/11/28

    Code daccsjsmith?

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    9/37

    Phase de reconnaissance

    Contrles Javascript Si un champ est contrl avec Javascript, il y a peut-tre une

    faille exploiter

    Champs cachs dans les formulaires

    Quantity:

    if (elements['quantity'].value >= 255) {

    elements['quantity'].value='';alert('Invalid quantity');return false;

    }

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    10/37

    Informations de session

    Besoin de sessions continues avec les utilisateurs des fins didentification et dauthentification

    SessionID Dans une variable GET (dans lURL)

    Dans un cookie Ces valeurs peuvent tre manipules

    Le sessionID fait partie des informations soumises parlutilisateur, son intgrit doit tre valide

    Usurpation de compte

    Rejeu de transactions Vol et utilisation illgitime de cookie

    http://www.domaine.com/profile.cgi?id=1234

    id=1235

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    11/37

    Phase de reconnaissance

    Contre-mesures Masquer lidentit et la version du serveur web et du

    serveur applicatif (bannire)

    Contrler laffichage des messages derreur Dans un but de scurisation, mais aussi dergonomie

    Vrification du code et suppression des commentaires

    Utilisation de la gestion des jetons de sessions incluse

    dans le serveur applicatif Ne pas rinventer la roue

    Utilisation de SSL pendant toute la session Protection des jetons par SSL

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    12/37

    Vulnrabilits publiques

    Vulnrabilits Apache, IIS, etc. Atteinte lintgrit ou la disponibilit du service ;

    Atteinte la confidentialit du code source de

    certains programmes Exemple clbre : Code Red (2001)

    Utilisation dun buffer overflow dans IIS

    Dfiguration du site attaqu

    Utilisation du site attaqu pour poursuivre lattaque Code Red exploitait une vulnrabilit pour laquelle Microsoftavait publi un correctif un mois auparavant

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    13/37

    Vulnrabilits publiques

    Pas de contrle sur le code vulnrable Contre-mesures

    Maintenir les versions des systmes jour

    Souvent, les exploits apparaissent dans lesjours, voire les heures qui suivent la publicationdune vulnrabilit

    Masquer lidentit des programmes utiliss

    Dsactiver les extensions et les services nonrequis

    Filtrer le trafic rseau (firewall, IPS/IDS) Segmentation du rseau ; cration de zones

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    14/37

    Injection SQL

    Insertion de commandes SQL dans les champsdun formulaire web Divulgation/modification dinformation

    Contournement du mcanisme dauthentification

    Microsoft JET Database Engine error '80040e14'

    Syntax error in string in query expression '(UserID ='user' OR mail = 'user' )AND Pwd = ''''.

    /store/checkout.asp, line 96

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    15/37

    Injection SQL

    Tout commence par une

    Les caractres dchappement utiliser dpendent de latechnologie employe. Le caractre est universellement utilis pour les requtes SQL La combinaison -- est utilise dans MySQL pour dbuter un

    commentaire (ce qui suit est donc ignor)

    SELECT * FROM users_list_tableWHERE username='FIELD_USERNAME'AND password='FIELD_PASSWORD'

    SELECT * FROM users_list_tableWHERE username='admin'--'AND password= 'password'

    FIELD_USERNAME = admin' --FIELD_PASSWORD = password

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    16/37

    Contre-mesures Nettoyer les champs saisis par les utilisateurs avant

    de les inclure dans une requte SQL

    Sparer le code qui effectue le traitement logique etcelui qui soccupe de la prsentation de linformation Frameworks applicatifs et librairies spcialises

    Exemple : objets preparedStatementen Java pour effectuerles requtes aux bases de donnes

    Restreindre les droits daccs la base de donnesen fonction du besoin de lapplication

    Auditer le code rgulirement

    Injection SQL

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    17/37

    Injection de code

    Gnralisation du cas de linjection SQL Un dfaut de contrle dans le code

    applicatif peut conduire lexcution de

    code sur le serveur Exemples : insertion de code PHP,

    Procdures dappels systme SQL Server : xp_cmdshell PHP : system ()

    insertion dinstructions LDAP

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    18/37

    Cross-site scripting (XSS)

    galement un cas dinjection de codeAttaque du client (navigateur riche )

    Utilisateur soumet du code dans un contenuweb

    Par exemple, un forum de discussion ou un wiki

    Un autre utilisateur accde au contenu et

    excute le code malgr lui Utilisation typique : vol de cookie

    Usurpation de compte sur le site

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    19/37

    Cross-site scripting (XSS)

    alert('attention, danger');

    Insertion du code dans une page Certains sites acceptent lajout de contenu avec ducode HTML

    Attaque persistente

    Insertion du code dans une URL Envoi de lURL par courriel Attaque non-persistente

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    20/37

    Cross-site scripting (XSS)

    Vol de cookies Le script malveillant peut lire le cookie de

    lutilisateur pour le site vulnrable et lenvoyer une destination quelconque

    Site webwww.banque.com

    Cookie pourwww.banque.com

    www.banque.com/pagevulnerable?...

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    21/37

    Cross-site scripting (XSS)

    Des attaques de plus en plus labores Un site vulnrable : exemple.com

    Deux sites vulnrables : exemple.comet banque.com

    document.write(")

    document.location=http://banque.com/search?name=

    document.write(")

    Rfrence : documentation de XSS-proxy

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    22/37

    Cross-site scripting (XSS)

    Vol complet de session Attaques XSS 2.0

    document.location=http://banque.com/search?name=

    Rfrence : documentation de XSS-proxy

    IFRAME affichant le siteweb vis

    (banque.com)

    pirate.net/xss.jsbanque.com

    pirate.net

    Navigateur de la victime

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    23/37

    Cross-site scripting (XSS)

    Contre-mesures Nettoyer les contenus saisis par les utilisateurs avant

    de les accepter

    Sparer le code qui effectue le traitement logique etcelui qui soccupe de la prsentation de linformation

    Auditer le code rgulirement

    Sur une plateforme collaborative, naccepter que des

    commandes HTML inoffensives (*)

    (*) Les commandes HTML inoffensives ne le restent pas

    ncessairement pour toujours !

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    24/37

    Cross-site request forgery (CSRF)

    Pas de vulnrabilit au sens technique Utilisateur envoie un lien vers un site de

    confiance

    Un autre utilisateur clique sur le lien et lancela requte

    Si cet utilisateur est dj connect au site, larequte est excute

    Insertion de la requte dans un tag HTML Dans une image de taille nulle ou dans un script

    https://bourse.com/buy?symbol=GOOG&qty=1000

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    25/37

    Cross-site request forgery (CSRF)

    Contre-mesures Limiter la dure de validit des sessions IDs

    Renouvellement frquent des jetons de session

    Utilisation dalgorithmes de hash

    Exiger une confirmation de la part delutilisateur pour certaines transactions

    One-click transaction : convivial, maispotentiellement dangereux !

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    26/37

    Phishing

    Usurpation dun site web par un site frauduleux Le site web original nest pas (ou presque pas)

    affect

    Attaque dingnierie sociale Dirige contre les utilisateurs du site usurp

    Exploitation de la mconnaissance desdispositifs dauthentification par le grand public et du caractre vulnrable du courriel

    Les propritaires du site usurp doivent agir Protection de limage et de la rputation

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    27/37

    PhishingVrai logo de linstitution vise

    Lien frauduleux

    Liens vers le vrai site

    Faute dorthographe

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    28/37

    Phishing Le site web demande de linformation

    Identifiant / mot de passe

    Numro de carte de crdit

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    29/37

    Phishing

    Contre-mesures SPF : Protection contre lusurpation du nom

    de domaine dans lenvoi de courriels

    Faciliter le signalement de courriels suspects Formulaire sur votre site web Adresse de courriel

    Politique denvoi de courriels

    Personnaliser les envois Pas de courriels au format HTML Pas de liens dans les courriels Simplicit des marques et des symboles utiliss

    [email protected]

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    30/37

    Phishing

    Contre-mesures Ne pas demander leurs secrets aux

    utilisateurs (PIN, numro de carte, etc.)

    Design du site web Ne pas utiliser de programmes de redirection

    Ne pas utiliser de pop-ups

    Local referrers pour les images Utiliser des adresses simples

    https://tf553.login.eplatform-domaine.com/cgi-bin/in/login.srf?tr=widfs1.0&prs=10&ver=2.1&return=http:%

    2F%2Fwww.domaine.com%2Fdefault.aspx

    https://www.domaine.com/login

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    31/37

    Phishing

    Contre-mesures Surveillance dactivits suspectes

    Cellule de gestion dincidents

    Liens avec les autorits Collaborer avec les autorits en cas denqute

    Aide aux utilisateurs

    ducation et soutien prventif Soutien en cas dactivit frauduleuse

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    32/37

    Phishing

    Contre-mesures Utilisation dun secret partag

    Identifiant :

    Mot de passe :

    La terre estbleue comme

    une orange.

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    33/37

    Utilisation abusive du service

    Exemples Utilisation dun programme automatique qui simule

    lactivit dun tre humain Ticketmaster / Hannah Montana en 2007

    Spam bots Forums de discussion

    Blogs

    Corrlations avec des informations contenues sur

    dautres sites Netflix / IMDB en 2007

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    34/37

    Utilisation abusive du service

    Contre-mesures Politique dutilisation claire

    Surveillance des utilisateurs les plus actifs

    Limitation du spidering et des activits

    automatises Demander aux humains de prouver quils le sont

    Forcer les programmes automatiss se dmasquer Utilisation dune feuille de style pour cacher un champ de

    formulaire aux visiteurs humains

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    35/37

    DDoS

    Distributed Denial of service Utilisation dun grand nombre de machines

    pour submerger le serveur web de requtes

    botnets Objectifs Extorsion de fonds Message politique

    Contre-mesures Taille du tuyau et puissance des machines Maintenance de contacts avec les autorits Cellule de gestion dincidents

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    36/37

    Conclusion

    plateforme mondiale+ technologie ouverte

    Contexte internationalUtilisateurs difficiles retracerDifficile de faire appliquer la loi

    Protocole standard

    HTTPNavigateurs varis IE, Firefox, Safari, Opera

    + actifs convoits

    ______________________

    = cible dattaques

    Mme un site purement informationnel peutreprsenter un actif :Porte dentre vers le rseau dentreprise

    (ou vers dautres sites) Ressources informatiquesValeur de linformation proprement dite

    Le web :

  • 7/29/2019 Techniques de Piratage Des Serveurs Web Et Contre-mesures

    37/37

    Merci !

    Questions ?

    Christophe [email protected]