Il y a quelques jours, un buzz a fait le tour de la Toile : votre compte de micro-blogging Twitter peut être en quelque sorte piraté. Il s'agit d'une technique, le Twitt-Jacking, relayée en avant première par un blogueur, puis par certains journaux en ligne. Une astuce vient d'être publiée afin d'éviter ce type de problème.
Concrètement, il est possible, grace à une astuce CSS/HTML, de cacher une iframe pointant vers Twitter.com avec un bouton. Lorsque l'adepte de Twitter clique dessus, son statut Twitter est mis à jour... avec les informations que le pirate souhaite. On peut alors penser à des campagnes de spam immenses, à des mises à jour Twitter avec des liens vers des sites malsains, ou autres. Dans un billet publié récemment, un passionné de sécurité informatique a dévoilé que cette faille peut être sécurisée très facilement.
Une solution simple pour sécuriser Twitter
A l'heure de la rédaction de cet article, Twitter n'est toujours pas sécurisé face à cette attaque de type CSRF (Cross-Site Request Forgeries).
Felix Aimé vient de publier un billet sur son blog, et donne une astuce, simple, pour sécuriser Twitter. Il faut naturellement, sécuriser le code. Pour ce faire, il serait judicieux de mettre un champ en hidden avec une valeur aléatoire envoyée en même temps que la mise à jour du statut Twitter. Ainsi, grâce aux sessions, le site garde en mémoire cette valeur. Lorsque la page reçoit le statut, la valeur cachée est comparée à celle en mémoire. S'il n'y en a pas où si cela n'est pas bonne, elle refuse le changement de statut. Cette valeur doit réellement être aléatoire et être
hashée.
Les Cross-Site Request Forgeries, toujours trop présentes
Les sites ne sont que très rarement sécurisés au niveau des failles de type
Cross-Site Request Forgeries. Ces types de failles utilisent l'utilisateur comme déclencheur, celui-ci devient complice sans en être conscient. C'est pour cela d'ailleurs que certains experts se refusent d'appeler cela du "piratage". L'attaque étant actionnée par l'utilisateur, un grand nombre de systèmes d'authentification sont contournés. Pour protéger des sites face à ce type d'attaque, pensez à éviter d'utiliser des requêtes HTTP GET pour effectuer des actions. Vérifiez l'adresse url du script appelant (referrer), utilisez des jetons de validité dans les formulaires et surtout, demandez des confirmations à l'utilisateur pour les actions critiques !