WEBlog de Félix Aimé

{ OpenSource Intelligence, Information Security, Information Warfare }

Category: Sécurité des systèmes d'information

Captcha-me if you can !

Ceux qui me connaissent savent à quel point je hais la publicité. Alors, lorsqu’une société lie la « sécurité informatique » à la publicité tout en arguant que leur solution possède « un niveau de sécurité équivalent à celui d’un Captcha classique », j’écris un article histoire de mettre les choses au clair.

Une société française qui fait ce qu’on appelle le « buzz » en ce moment, s’est amusée à réaliser – et l’idée, faut l’admettre, est très loin d’être bête – des captchas publicitaires. En gros, l’astuce est de recopier un superbe slogan publicitaire pour valider un formulaire – le captcha – histoire qu’il s’imprime bien dans notre mémoire. Cool, n’est-ce pas ?

Un captcha, qu’est ce que c’est ?

Un captacha est – pour faire simple – un système utilisé pour sécuriser un formulaire web (pour envoyer des commentaires, par exemple) contre le spam. En effet, le spam est généré par des programmes informatiques qui peuvent valider des formulaires automatiquement et donc, envoyer des messages en masse. Les captchas servent donc pour différencier un robot (un programme informatique) d’un humain (avec une réelle intelligence). Vous en avez tous vu, cela ressemble à ceci :

Aujourd’hui, il existe plusieurs types de captchas avec des niveaux de sécurité et de complexité différents. Voici une liste que je pense exhaustive : Des captchas full texte ; « drag’n’drop » (si, si : fail) ; audio ; vidéo ; à challenge ; images ; texte dans une image et de texte – bien déformé – dans une image.

Et les publicitaires arrivèrent.

L’idée de réaliser des Captchas publicitaires, d’un point de vue annonceur – et surtout psychologique, n’est assurément pas bête du tout. Cependant, on peut en dire autre chose d’un point de vue sécurité : la fonction première et réelle d’un tel système.

En effet, lier des slogans publicitaires à des captchas est aujourd’hui une mauvaise idée. Je m’explique. Tout d’abord, le service actuel (et je veux bien croire qu’il ne soit pas assez développé) ne propose pas des milliards de possibilités de publicités, contrairement à une chaine de caractères randomisée, ou, pour une meilleure interprétation mais un rendu moins significatif, les mots du dictionnaire.

Ainsi, il est possible, pour ce qu’on appelle « un pirate informatique » (en fait, dans ce cas là, un autre annonceur voulant spammer à ma méthode « old shool », sic.) de savoir, par le hash de cette dernière, quelle est l’image publicitaire qui est chargée. Voici un petit bout de code pour ce faire :

import re,hashlib,urllib2

server = "http://showcase-left.v1.api.adyoulike.com"

# hash => word to resolv.
resolv = {"c2dfef15b77b7e6e0802f186d805e524" : "meche lover"}

# Fonction lachement repris de :
# http://blog.nexua.org/python-a-day-1-remote-md5sum/
# Moi, j'l'aime bien.
def remote_MD5_sum(url, max_file_size=100*1024*1024):
    remote = urllib2.urlopen(url)
    md5 = hashlib.md5()
    total = 0

    while True:
        data = remote.read(4096)
        total += 4096

        if not data or total > max_file_size:
            break

        md5.update(data)

    return md5.hexdigest()

# Recuperation de la key
connMain = urllib2.urlopen(server + "/showcase/")
key = re.findall('/challenge/(.*)"><',connMain.read())[0]

# Recuperation du token
connToken = urllib2.urlopen(server + "/challenge/" + key)
token = re.findall('token : \'(.*)\',',connToken.read())[0]

# Recuperation MD5
hash = remote_MD5_sum(server+ "/image/" +token)

print "Token   : " + token
print "Key     : " + key
print "MD5     : " + hash
print "Phrase  : " + (resolv[hash])

Possédant une sortie à la con du type :

Token   : TfypawK258aYR2gpKpLqKqM_6cgEQ7hD
Key     : CMllh3nYbWscfzGE7g2ob10E3IDhWoff
MD5     : c2dfef15b77b7e6e0802f186d805e524
Phrase  : meche lover

Ce contournement pourrait lui-même être contourné sans changer l’image d’origine, tout simplement en la bourrant de commentaires Exifs randomisés à chaque appel de cette dernière. Toutefois, cette protection ne suffirait pas car elle pourrait elle-aussi contournée facilement en calculant l’entropie ou la valeur RVB de certaines zones de l’image. Bref, sauf changer à chaque génération le slogan de la publicité, ou la publicité (visuelle) elle-même – ce qui va à l’encontre même du principe de publicité, il est alors impossible de réaliser un système sûr, basé sur une publicité : même pas besoin d’OCR les enfants !

De l’avenir des Captchas publicitaires.

Comme nous l’avons vu, cette idée, bien que sympa pour certains annonceurs aux premiers abords, possède un réel problème de sécurité. Régies publicitaires, ne vous inquiétez pas, l’entropie et les hashs fonctionnent aussi pour des captchas en flash, audios ou vidéos. Enfin, après avoir déformé le street-art en street marketing, les créations artistiques en affiches de publicité, la publicité s’attaque maintenant à des dispositifs de sécurité, stoppons-cela.

La cyberguerre, un cyberFAKE ?

Voici les slides d’un cours que j’ai donné dans le cadre de la formation CDAISI, une formation que je suis également dont le thème principal est la sécurité informatique offensive. Si j’ai choisi de faire ce cours c’est avant tout afin de présenter ce qui se fait actuellement dans ce domaine mais surtout l’enjeu stratégique lié à la Sécurité des Systèmes d’Information.

Malheureusement, les slides reprennent 20 à 30% de ce qui a pu être évoqué lors de ce cours (faisant des retours techniques sur certaines attaques ou évoquant d’autres pays, problématiques etc.). Bref, ce qui importe c’est que cela a intéressé du monde. Dans un tout autre contexte, je serai aux GSDays à l’espace St Martin (Paris 3e) mardi prochain… si quelqu’un veut prendre une bière… ;)

Je cherche un travail, un vrai.

Note au mercredi 18 Juin : Ça y est, je ne cherche plus de travail, ayant été pris sur Paris par une entreprise à la suite de cette annonce. Merci aux différentes personnes/entreprises m’ayant proposé quelque chose ou ayant relayé sur les réseaux cette annonce.

Je recherche en ce moment un travail (un vrai, de type CDI ou CDD à long terme) dans le domaine de la Sécurité des Systèmes d’Information afin de me pencher sur des problématiques tant opérationnelles – liant de la recherche, des tests d’intrusion et des formations – que tactiques/stratégiques liées à ce domaine – définition de scénarios (LID/LIO etc.), études en Cyberdéfense, études prospectives sur les menaces émergentes etc.

Aujourd’hui, je possède une large expérience dans les différentes branches de la sécurité informatique allant de la recherche bas niveau (recherches de vulnérabilités, sécurité réseaux etc.) jusqu’aux méthodologies de test d’intrusion et renseignement en source ouverte. Je possède en outre une vision globale des Systèmes d’Information et de leur sécurité : ne m’arrêtant pas aux limites du traitement logiciel et des réseaux informatiques mais prenant en compte les acteurs et la sécurité physique des installations.

Intéressé par les problématiques actuelles telles que la cybercriminalité et la cyberdéfense, j’ai su au fil des années capitaliser une réelle connaissance des différents enjeux internationaux liés à la Sécurité des Systèmes d’Information.

Ce blog ne présente pas beaucoup de mes réalisations (rapports, projets etc.) dans le domaine de la sécurité. Cependant, je peux fournir à qui le souhaite, dans le cadre d’une offre d’emploi, un résumé détaillé de ce que j’ai pu réaliser depuis plusieurs années en sécurité afin de vous faire un idée de mon profil polyvalent.

Si mon profil vous intéresse, je vous invite à vous renseigner sur mon parcours grâce à mon Curriculum Vitae et à me contacter.