Johanne Ulloa

csrf

Qu’est-ce qu’une attaque XSS/CRSF et comment s’en prémunir

by admin on avr.22, 2009, under attacks, csrf, xss

Qu’est-ce qu’une attaque XSS/CSRF ?

Ce type d’attaque cible l’utilisateur en utilisant une vulnérabilité du serveur WEB. Le but étant de forcer le navigateur de la cible (l’utilisateur) à envoyer des requêtes au serveur. Ces requêtes paraitront donc tout à fait légitimes aux yeux du serveur et la cible réalisera donc des actions à son insu.

Comment cette attaque est réalisée ?

Les attaques XSS/CSRF sont généralement exécutées en 4 phases :

Phase 1 :  L’injection de code sur le serveur vulnérable

Lors de cette phase, le pirate injecte le code (qui peut-être html, css ou javascript) sur le serveur Web. Rappelons que si le serveur Web n’est pas sensible à l’injection de code ou qu’il est protégé par un WAF, l’attaque ne pourra être menée. (à bon entendeur …)

Phase 2 : obtention du code malveillant

Le navigateur obtient le code malveillant injecté précédemment par le pirate. Bien souvent, ce code est hébergé sur un serveur tier, dans ce cas, le but de la phase 1 sera d’injecter un lien vers ce code malveillant.

Phase 3 and 4:  Execution du code

Lors de celle phase, le navigateur exécute le code malveillant. Bien souvent, ce code consiste dans un premier temps à récupérer le cookie de session de l’utilisateur de façon à l’utiliser dans les requêtes qui seront forgées par la suite. Ceci permettra de rendre ces requêtes tout à fait légitimes au regard de l’application Web.

XSS CSRF 4

Que faire contre ce type d’attaques ?

Il est possible d’agir sur le serveur et sur le client

Côté serveur :

  • Il faut prendre en compte la sécurité applicative lors des phases de développement. Principalement en contrôlant les « input » de l’utilisateur. C’est-à-dire que tout ce qui pourra être envoyé à l’application par l’utilisateur devra être « nettoyé » et validé.
  • Pour empêcher que le cookie de session soit accessible via javascript, il est possible de les marquer avec le flag : HTTPOnly.
  • Utiliser un Firewall Applicatif Web de façon à prémunir le serveur Web des injections de code.

Coté client :

  • Je vous recommande fortement l’usage de Firefox et du plugin NoScript. Ce plugin pemet de n’activer javascript qu’à la demande.  Son rapport « Sécurité apporté/Contraintes d’utilisation » est très bon.
Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

    Archives

    All entries, chronologically...