Retour des flammes: La police australienne piratée

La police fédérale australienne vient de traverser une crise de sécurité, au sein d’un combat « titanesque » contre un groupe de pirates. Lancée sur les traces d’un site regroupant des milliers de personnes autour de technique de « hacking », la police a fini par mettre la main sur de nombreuses preuves, mais a du subir un retour de flammes conséquent.

Le site en question est le forum « r00t-y0u », célèbre dans le monde des pirates puisqu’on y trouve des outils et des techniques pour permettre différentes fraudes via Internet notamment. Tout récemment, les habitués du forum ont eu la surprise de voir un message sur la page d’accueil : un joli texte écrit par la police elle-même et déclarant que le site était sous la surveillance des forces de l’ordre et que les adresses IP des membres avaient été enregistrées. Au moment de la publication du message, les identifications étaient en cours. Bien entendu, le forum n’était plus accessible.

74607-hackers
Mais selon des informations révélées par The Age, les pirates ont réagi. Peu de temps après la saisie du forum, un hacker s’est introduit dans les ordinateurs de la police, et c’est là que les choses deviennent « amusantes ». L’AFP (Australian Federal Police) a indiqué qu’il n’y avait eu qu’une seule machine touchée, mais l’auteur de la manipulation s’en est clairement donné à cœur-joie au rayon moquerie.

Passablement excité/agacé/vexé/amusé, le hacker ne serait autre que l’administrateur de r00t-y0u, un dénommé H1t3m, très connu dans le monde du piratage informatique. Il s’est introduit dans l’un des serveurs de l’AFP et leur a littéralement ri au nez en se moquant de leur configuration Windows mal paramétrée et surtout de leur base de données MySQL… qui ne possédait aucun mot de passe.

Via un site de publication anonyme de documents (Pastebin.com), le hacker a lancé un message de la police leur indiquant qu’il n’y avait pas de quoi parader après le blocage du forum r00t-y0u : au lieu d’une communauté internationale de pirates chevronnés, ils avaient surtout pris quelques « script kiddies » dans leurs filets, autrement dit des pirates débutants. Dans un autre message, il fournissait des captures d’écran prouvant qu’il avait bien pénétré le serveur de la police.

Pour la police, il n’y a aucun danger. Le serveur en question était apparemment un pot de miel, c’est-à-dire un leurre pour attirer les pirates. Les données contenues dans la base n’étaient que d’anciennes fausses identités ou des informations relatives à d’anciens cas de piratages. Mais cela n’a pas empêché le hacker de continuer à rire, indiquant qu’il ne lui avait fallu que 30 à 40 minutes pour entrer dans le serveur et se servir dans la base de données.

Actuellement, les identifications de l’AFP sont toujours en cours et les accusations officielles restent à déposer. Pour l’instant, H1t3m, si c’est bien lui, court toujours.

Source : PCIntact

Introduction aux frameworks JavaScript

Un framework JavaScript c’est quoi?

javascriptUn framework JavaScript est un ensemble d’applications et de fonctionnalités regroupés, c’est une sorte de boite à outils qui contient toutes les tâches répétitives et courantes, grâce aux frameworks, vous pouvez gagner beaucoup de temps dans vos développements, vous pouvez facilement manipuler le DOM, faire des requêtes AJAX, des animations et des effets superbes sur vos pages, et vous aurez tout le temps de vous concentrer sur des taches plus complexes et assez intéressantes ;)

Actuellement il existe plus de 500 frameworks JavaScript , ces frameworks qui ne cessent d’évoluer depuis l’apparition du WEB2.0

Faire du WEB2.0!

Il faut savoir que le WEB2.0 est concrètement basé sur le JavaScript du point de vue technique! particulièrement grâce à sa capacité de faire des appels asynchrones vers les serveurs WEB via l’objet XMLHttpRequest, inventé par Microsoft en 2001, ce dernier permet aux visiteurs d’accéder aux nouveaux contenus sans avoir à cliquer ou rafraichir la page, cette fonctionnalité a été implémenté dans le DHTML pour donner naissance au WEB2.0.

Cette expérience a permis de donner une nouvelle vision au WEB, qui est devenu de plus en plus dynamique, réactif et innovant

Pallier aux déficiences des navigateurs actuels

S’assurer que son code javascript est compatible avec tous les navigateurs modernes est l’une des tâches les plus pénibles pour un développeur WEB (cross-browsing), d’où le grand avantage des frameworks javascript: vous n’avez plus à gérer les dépendances entre les différents navigateurs (sélecteurs, gestion des évènements, méthodes de manipulation DOM..), votre framework javascript le fera à votre place et vous facilitera la vie ;)

Quel framework JavaScript utiliser?

Voici une liste des frameworks JavaScript les plus populaires :

Vu la qualité des outils proposés par les différents frameworks, il est difficile de recommander un en particulier, mais personnellement je préfère jQuery puis mootools grâce à leurs qualité de documentation, leurs communautés très large, et leurs simplicité!

Vous pourriez préférer d’autres mais je vous invite à les essayer tous et utiliser celui avec lequel vous vous sentez plus à l’aise!

Se protéger contre les attaques CSRF Injection

CSRF Injection (Cross Site Request Forgeries) est une classe d’attaque propre aux applications WEB qui a toujours existé mais qui reste moins connue! Son exploitation par un attaquant malveillant peut avoir des conséquences dramatiques sur un système d’information.

Dans ce billet, je vais vous expliquer ce que c’est une attaque de type CSRF Injection, avec des exemples d’exploitation illustrés ainsi que des mesures de protection qui peuvent être implémentées.

CSRF c’est quoi?

Une attaque CSRF se repose sur l’exploitation de la confiance d’une application WEB vis à vis ses clients, l’objectif de cette dernière est de forcer le navigateur à envoyer une requête “forgée” à l’insu d’un internaute connecté à son compte avec les privilèges de ce dernier, autrement dit : « Je n’ai pas les droits pour faire une action, je m’arrange alors pour que l’utilisateur ayant les privilèges nécessaires la fasse à ma place (sans qu’il soit au courant bien entendu) ».

Ce type d’attaque n’est pas difficile à mettre en œuvre, il peut être mené par n’importe qui par un simple lien ou script caché dans un email ou une page WEB, on suivant le lien contrefait le navigateur de la victime exécutera le code avec les permissions qu’a ce dernier sur le site vulnérable (forum, blog, espace membre..).

Quelques exemples d’exploitation:

Pour illustrer la facilité de la mise en œuvre d’une attaque CSRF avec des exemples concrets: Je vais prendre l’exemple d’un forum qui n’a pas penser à se protéger contre ce type de faille, son administrateur connecté à son espace admin visite une page contenant l’un de ces codes :

Exemple avec des requêtes GET

Suppression de tous les topics d’un forum
[code lang=’html’][/code]
Suppression d’un utilisateur :
[code lang=’html’][/code]
Donner les drois d’administrateur à l’utilisateur haxor
[code lang=’html’]Hello master[/code]

Comment ça marche?

Lorsque l’administrateur du forum visite une page contenant l’un de ces codes, son navigateur va essayer de charger l’image se trouvant à l’adresse indiquée par la balise “<img>” sans se douter que ce n’est pas une image. Le serveur du forum va donc exécuter la page et supprimer tous les messages vu que c’est la requête a été exécutée par la cible!

En partant sur le même principe le deuxième et troisième exemples illustrent l’utilisation des balises HTML avec différents attributs où le but est toujours de forcer le navigateur à appeler une page web du site victime via une requête HTTP de type GET, cette page sera interprétée par le serveur ce qui mènera à des actions non désirés par le client possédant des droits privilégiés!

Exemple avec une requête POST

On suppose que sur notre forum nous avons un formulaire de modification de mot de passe et qu’on souhaite forger une requête HTTP de type POST pour forcer le navigateur à poster les données afin de modifier le mot de passe du client (toujours à son insu bien entendu).

Voici à quoi le code du formulaire peut ressembler

[code lang=’html’]

Entrez votre nouveau mot de passe :

Confirmer le nouveau mot de passe :


[/code]

L’objectif est d’effectuer une requête HTTP de type POST vers la page changepasswd.php avec les champs new_password et new_password_confirm pré-remplis, avec le nouveau passe souhaité par l’attaquant, la technique se repose sur 3 étapes :

  1. Création d’une première page qui contient le formulaire pré-rempli avec comme “action” l’url du site victime
  2. Mettre en place un code javascript pour soumettre le formulaire au chargement de la page
  3. Créer une deuxième page pour cacher la première dans un <iframe> afin de cacher ce qui se passe derrière ;)

D’où le code de la première page (on la nome csrfpost.html) est :

[code lang=’html’]



[/code]

Le code de la deuxième page devrai contenir un <iframe> caché avec d’éventuel contenu pour que la victime ne se doute pas!

[code lang=’html’]
Hello master

[/code]

De cette manière l’iframe appelera la page csrfpost.html qui postera la requête post forgée vers la page http://www.victime.ltd/user/changepasswd.php et qui de son tour sera exécutée par le serveur du site vulnérable, et le password sera modifié par un nouveau ( “pwn3d” dans notre cas)!

Faites gaffe lorsqu’on vous incite à visiter un lien quelconque, et si jamais vous avez suivis un lien et que le contenu de la page ne vous dit rien; examinez le code source! il y a de fortes possibilités qu’il s’agit d’une attaque CSRF.

Comment se protéger ?

Il est assez difficile de détecter une attaque CSRF même en utilisant un antivirus ou un firewall, alors là l’antivirus c’est vous! L’objectif est d’empêcher le navigateur à effectuer des requêtes à l’insu du client ou sans accord préalable de ce dernier.
Pour cela voici des mesures à prendre en compte :

  • Ne pas suivre les liens suspects
  • Ne pas sauvegarder vos identifiants dans votre navigateur
  • Toujours se déconnecter à la fin d’utilisation de vos comptes
  • Visiter les liens suspects dans un onglet de navigation privée
  • Désactiver l’interprétation du code HTML dans vos client WEBMail

Comment sécuriser son code?

Si vous êtes développeur, voici quelques bonnes pratiques à implémenter dans vos codes:

  • Toujours utiliser des pages de confirmation et demander la validation du client avant toute action critique
  • Utiliser des jetons de sécurité (tokenid) dans tous vos pages sensibles (voir l’exemple)
  • Vérifier l’URL de provenance (HTTP_REFERER) pour prévenir des requêtes POST forgées (voir l’ exemple)

Utiliser des jetons:

L’utilisation d’un jeton de sécurité est primordiale pour une application qui se respecte, personnellement je trouve que c’est la meilleure solution pour se protéger contre les attaques CSRF!

Pour les requêtes HTTP de type GET:

On devrai avoir 2 pages, une page de confirmation qui servira à la génération d’une clé aléatoire (jeton) et la stocker dans une variable de session, ainsi tous les liens qui servent d’effectuer des actions sensibles porteront ce jeton dans une variable GET, le contenu de cette variable sera vérifié dans la deuxième page qui exécute l’action.

Exemple de page de confirmation avec une requête GET :

[code lang=’php’]

Etes vous sûre de vouloir supprimer l’utilisateur toto ??
Annuler
[/code]

Dans la page supprimer_utilisateur.php

[code lang=’php’]

[/code]

Pour les requêtes HTTP de type POST

Quant aux requêtes HTTP de type POST c’est toujours le même principe que pour GET sauf qu’au lieu de passer le jeton en paramètre dans le lien on le met dans un champs caché de type “hidden”.

On reprend l’exemple mentionné en haut mais cette fois-ci sécurisé =)

[code lang=’php’]

Entrez votre nouveau mot de passe :

Confirmer le nouveau mot de passe :



[/code]

Ne faites jamais confiance à aucune données récupérée coté client tant que les données n’ont pas été validés =)

Vérification de l’url de provenance :

La vérification de l’url de provenance vous aidera à mieux vous protéger contre les CSRF avec des requêtes POST comme dans l’exemple expliqué en haut, ce n’est pas une protection sûre et peut être contournée si l’attaque provient du même site, mais ça permet comme même d’éviter plusieurs ennuies ;)

Bref, il suffit de placer le code suivant dans les fichiers qui effectuent des actions sensibles (changement de mot de passe, suppression de données, etc..)

[code lang=’php’]
if (!empty($_SERVER[‘HTTP_REFERER’])){
if (!ereg($_SERVER[‘HTTP_HOST’], $_SERVER[‘HTTP_REFERER’])){
die(“Vous ne pouvez pas venir ici!”);
}
}
else{
die(“Désolé, Vous ne venez pas d’ici”);
}
[/code]

Conclusion

La faille CSRF Injection reste parmi les classes d’attaques les plus dangereuses sur le WEB vu son exploitation instantanée et les importants dégâts qu’elle peut engendrer! Je détaillerai dans un prochain billet l’exploitation avancée de cette dernière

Je rappelle que des gros sites ont étaient victimes de ce type t’attaque, je cite: Gmail, MySpace, Windows Live Mail, Skyrock, Dynadot et bien d’autres .. sinon j’espère que ce tuto vous a été utile et vous a appris de nouvelles choses ;)

Allez, bonne journée à tous!

Twitter victime d’une attaque DDOS

« Nous nous défendons actuellement contre une attaque par déni de service, et vous tiendront informés prochainement », explique Biz Stone , le Co-fondateur du célèbre service de micro-blogging Twitter, avant de signaler deux heures plus tard, la reprise du service. « Le site est de retour, mais nous sommes toujours en train de nous défendre et de récupérer de cette attaque », explique-t-il alors, tandis que le site reste inaccessible !.

Des millions d’utilisateurs sont donc privés de leurs outil de socialisation et doivent attendre que le problème soit résolu pour mettre de nouveaux messages!

Ce n’est pas la première attaque de ce genre sur Twitter, le site a subit une première attaque de déni de service le 8 mai 2009 qui a rendue ce dernier inaccessible pendant une heure, le site a également été victime de piratage par un hacker intitulé Hacker Croll qui a réussi à accéder aux différente boites mail des employés de Twitter, y compris celle de Evan Williams, le fondateur de Twitter, et celle de son épouse Sara Morishige Williams!

Des captures d’écran ont été publiées sur le blog de korben

UPDATE : Twitter a récuperé de l’attaque après 2 heures de mise hors service!