06
mai
'15

Et vraoum, plus de vie privée !

Publié le 06 mai 2015

Le projet de loi relatif au renseignement a été voté le 5 mai à l'Assemblée Nationale à 438 votes contre 86 (dont 42 abstentions), et vise à encadrer les pratiques des services de renseignement dont celles liées à la lutte anti-terroriste.

Ce projet de loi est soutenu par un bon nombre de députés, et prévoit notamment les points suivant:

Et en quoi cela pose problème ?

En réalité, ce n'est pas le projet de loi entier qui a provoqué une levée de boucliers sur Internet, mais bel et bien des points de détails très importants. Le premier d'entre eux et certainement le plus discuté par les personnes ayant des compétences techniques est celui concernant les fameuses «boîtes noires» que le gouvernement prévoit de mettre en place chez des fournisseurs d'accès à Internet et les hébergeurs de données.

En effet, il a été évoqué l'utilisation d'algorithmes spécifiques permettant d'identifier des comportements caractéristiques des terroristes, permettant de cibler la surveillance sur un groupe restreint d'individus ainsi identifiés. Sauf que ces algorithmes vont devoir avoir un œil partout et sur toutes les données afin de pouvoir faire le tri. Ce qui implique la consultation de chaque information envoyée ou reçue par un internaute, et potentiellement une atteinte à la vie privée. Que nenni, rétorquent les promoteurs de ce projet de loi, «seules les métadonnées seront manipulées». Les métadonnées, ce beau terme décrivant des données associées à un contenu, mais qui ne sont pas du contenu. Ce ne sont pas pour autant des données n'ayant aucun rapport avec la vie privée: si l'on sait avec qui vous discutez, quand et comment, il est facile d'en déduire des informations utiles. Un exemple.

J'ai été amené il y a quelque temps de cela à effectuer une investigation numérique pour une société, car un des associés était suspecté de monter une société concurrente avec une ancienne employée. Lors de cette investigation, seuls des journaux d'évènements (remplis de métadonnées, et que de métadonnées) m'ont été fournis, en particulier ceux du serveur de messagerie. A l'aide de ces informations, j'ai découvert assez rapidement que l'associé en question possédait plusieurs adresses de courriel, et qu'il s'y connectait de différents endroits (identifiés en fonction de l'adresse IP et de la géolocalisation de ces adresses). Et que l'ancienne employée s'était connectée elle aussi d'un endroit similaire (adresse IP identique), mais que cette adresse IP n'était pas celle de l'entreprise, et cela hors heures ouvrées. Ce ne sont que des métadonnées, mais les interprétations/suppositions sont possibles à partir de ces données.

Un peu comme à Noël, lorsque tata Chantal vous offre un cadeau: vous le palpez, vous le secouez, vous le pesez, et vous essayez d'en déduire le contenu sans l'ouvrir. Eh bien avec les métadonnées, c'est exactement la même chose.

Une adresse IP, une adresse de courriel, des coordonnées géographiques, des dates d'envoi et de réception sont autant de données qui une fois corrélées, en révèlent tout autant que le contenu. Ce n'est pas pour rien que la CNIL (Commission Nationale Informatique et Libertés) considère l'adresse IP comme une donnée personnelle (rappelez-vous les débats HADOPI). D'ailleurs, ces mêmes métadonnées ont permis de déterminer que M. Urvoas a rédigé une réponse type transmise aux députés afin que ces derniers puissent répondre «comme il faut» aux citoyens inquiets (Numerama).

Le problème que pose ce mécanisme, c'est qu'il est obligatoirement intrusif et fournit des outils au gouvernement permettant s'il le souhaite d'être détournés de leur usage premier. Sans contrôle de l'autorité judiciaire. Malgré toute la bonne volonté du gouvernement, qui précise que ces outils ne seront pas employés à mauvais escient, on ne peut empêcher a priori un détournement de l'usage de ces outils dans le futur.

Des pratiques illégales, euuuh ?

Second point non-négligeable: le gouvernement reconnaît que ses services de renseignements emploient des pratique de recueil d'information non-encadrées par la loi. La loi relative au renseignement vise justement à combler ce manque, afin de légaliser entre autres:

Le patch législatif proposé n'est pas suffisant: il n'inclut aucun contrôle par l'autorité judiciaire, et légalise ces pratiques tout en permettant de possibles dérives. Toutefois, il est nécessaire de légiférer sur ces techniques récentes, afin d'encadrer ces pratiques, mais sans oublier d'y inclure un contrôle a priori.

Boarf, de toute manière je n'ai rien à cacher

Si vous n'avez rien à cacher, cela ne vous dérangera pas alors que l'on transforme votre maison en loft style télé-réalité, truffé de caméras et de micros. Après tout, vous n'êtes ni terroriste ni conspirateur, et vous n'avez aucun secret à cacher. Quoique.

A y réfléchir, peut-être que la caméra dans la chambre à coucher, ainsi que celle dans les toilettes et la salle de bains sont un brin intrusives ? Personne n'a besoin de savoir que vous galérez avec les dernières feuilles de votre rouleau de papier toilette, ou que vous prenez en photo vos plus beaux exploits délicatement déposés dans la cuvette. Personne n'a besoin de savoir que vous avez des relations sexuelles une à deux fois par semaine, ou que vous pratiquez l'onanisme tandis que madame a le dos tourné. Cela relève de l'intime, bien que les frontières de l'intime ont été repoussées par les réseaux sociaux.

On a tous quelque chose à cacher, pas que l'on soit terroriste mais plutôt que l'on a besoin d'avoir un jardin secret, son petit coin de plaisir personnel rien qu'à soi. Et on ne tient pas forcément à ce que tout le monde le découvre.

Quid des «boîtes noires» que le gouvernement prévoit d'installer ?

Je pense qu'un dessin vaut mieux qu'un long discours.

Et maintenant ? Que peut-on faire d'autre ?

Malgré le fait que M. Le Premier Ministre qualifie les appels des citoyens aux députés et sénateurs de «pressions», il est encore possible de contacter ces derniers (les sénateurs) afin de leur faire entendre raison quant au projet de loi. Ce dernier doit repasser au Sénat pour un examen final, et il n'est pas encore trop tard pour ouvrir les yeux. Contactez donc les sénateurs, la Quadrature du Net fournit un outil pour cela.

Une saisine du Conseil Constitutionnel est a priori en cours de la part des députés étant contre le projet de loi, ce qui devrait aboutir à un examen des articles controversés par les sages, et potentiellement la reconnaissance que certains d'entre eux sont contraires à la Constitution (si j'ai bien tout compris -- je ne suis pas juriste).

Bref, il reste un espoir.

Le premier à me trouver la référence du titre gagne toute mon estime

24
avril
'15

NDH 2015 is coming !

Publié le 24 avril 2015

La treizième édition de la Nuit du Hack, évènement annuel visant à réunir les passionnés de bidouilles en tout genre, c'est du 20 au 21 juin 2015 à l'Académie Fratellini.

Tout frais et tout neuf

Changement de lieu pour cet évènement en cette nouvelle année 2015, c'est désormais à l'Académie Fratellini que la NDH a posé ses valises. Après plusieurs années passées dans le gentil monde de Mickey, on retourne aux racines et aux endroits atypiques, car les talks se dérouleront dans un cirque aménagé pour l'occasion. Ceux qui ont participé à l'édition 2007 sauront de quoi je parle (cela s'était déroulé dans une ancienne grange).

L'Académie Fratellini, ça ressemble juste à ça:

Outre le changement de lieu, il y a aussi du neuf côté programmation, avec dans le désordre:

Les premiers talks annoncés

Cette année encore, plusieurs conférenciers ont d'ores et déjà été annoncés, avec entre autres:

C'est assez varié, et j'attends en particulier les talks de Karsten Nohl et de Stéfan Le Berre, habitués des talks intéressants et techniques. La keynote est assurée par Guillaume Poupard, de l'Agence Nationale pour la Sécurité des Systèmes d'Information (ANSSI).

Des challenges pour tous

Les challenges habituels seront présents, à savoir:

Les deux premiers sont des concours à destination des afficionados de la sécurité informatique, dont seul le second est ouvert au public. Le wargame public est constitué de problèmes et casse-têtes informatiques qu'il faut résoudre le plus rapidement possible.

Le challenge de lockpicking demande du doigté, de bons outils et de l'expérience: il s'agit de crocheter différents types de serrures dans un temps record, le tout supervisé par une équipe de crocheteurs expérimentés.

Enfin, le petit nouveau de cette édition est le challenge de désamorçage, qui consiste à désamorcer un compte à rebours comme ceux que l'on voit dans de nombreux films, à l'aide d'outils relativement simples et cela dans un temps fixé par le mécanisme. Des notions d'électronique sont requises pour pouvoir s'y frotter, mais aussi de la logique et une bonne résistance au stress.

Workshops

Encore une fois, de nombreux ateliers pratiques (ou workshops) sont proposés:

Il y en a pour tous les goûts, attention toutefois certains ateliers nécessitent une préinscription et dans certains cas une participation: c'est le cas par exemple de celui permettant de réaliser une station de soudage ou encore le pendentif geek animé.

Badge électronique

A nouveau, un badge électronique collector conçu par l'Electrolab (encore un grand merci à vous les gars) est proposé sur lequel se trouve un challenge permettant de remporter une place à vie à la Nuit du Hack (Black Badge). Les ventes de ce badge électronique sont ouvertes jusqu'au 10 mai, et le nombre d'exemplaires est limité !

Comment venir ?

C'est relativement simple: il suffit d'aller sur la boutique de l'évènement et de sélectionner un ou plusieurs tickets d'entrée ainsi que des goodies au besoin, et de régler par CB/Paypal/Bitcoin. Vous recevrez par courriel un QR code qu'il faudra imprimer et présenter sur place, un peu comme les billets électroniques de la SNCF quoi.

06
mars
'15

Frida, la nouvelle amie des reversers et hackers

Publié le 06 mars 2015

Il y a peu de temps, j'ai découvert Frida, un outil permettant de faire de l'instrumentation minimaliste de binaire sous Windows, Linux, iOS et Android. Rien que cela. Moi qui suis habitué du reverse à l'ancienne et de l'attaque à coup d'injection de code via des DLLs, ça m'a de suite intéressé.

Tante Frida aime le JavaScript

Frida repose sur l'injection d'un module dynamique dans un processus actif, et crée un canal de communication avec celui-ci. L'outil propose ensuite d'interagir en Python, à l'aide de bindings relativement bien conçus.

Le point intéressant (mais toutefois limitant) est que l'on peut pratiquer le détournement de fonctions et l'appel de fonctions en scriptant cela en JavaScript. Car oui, le module injecté embarque un moteur JavaScript reconnu (v8, merci Google) qui sera utilisé dans le cadre du détournement ou de l'appel de fonctions. Tout ça à partir de Python.

A ce moment là, j'ai posé un bémol sur cet outil. Employer JavaScript me posait un problème: le langage est très éloigné de l'assembleur, et je n'imaginais pas vraiment ce que l'on pouvait en tirer. J'ai poursuivi ma découverte de l'outil, et ai revu mon jugement.

Hooking simple avec Frida

Le hooking de fonctions c'est galère. Il faut développer en C des fonctions d'interception, injecter un module s'occupant de mettre en place le détournement (en prenant en compte toutes les contraintes liées à cela), mais surtout trouver un moyen d'afficher des information. Par exemple à grand renfort d'appels à MessageBoxA sous Windows.

C'est là que Frida sauve la vie. L'outil propose très simplement de placer un hook sur une fonction, et de définir une fonction de rappel en JavaScript qui se verra passer les arguments et pourra les traiter. Cela se traduit par un simple code Python intégrant un peu de JavaScript:

import frida
import sys

process = frida.attach("hello")
script = process.session.create_script("""
Interceptor.attach(ptr("%s"), *
    onEnter: function(args) {
        send(args[0].toInt32());
    *
});
""" % int(sys.argv[1], 16))
def on_message(message, data):
    print(message)
script.on('message', on_message)
script.load()
sys.stdin.read()

Du coup, ce qui était laborieux et pénible à développer est désormais beaucoup plus simple. Certes, on ne peut pas tout faire avec, mais on gagne un temps fou pour des choses relativement simples.

ImpRec en mode Frida

Lorsque je suis tombé sur cet outil, j'avais besoin de faire des bidouilles spécifiques avec des binaires, dont notamment de la reconstruction d'imports dans un PE. Là encore, Frida aide amplement. Tout d'abord, Frida permet de lister les modules actifs, et les fonctions exportées: pratique dans le cadre de la reconstruction d'imports. Ensuite, Frida permet d'accéder à la mémoire de manière relativement simple, et directement en Python.

De là, on imagine facilement un code en Python permettant de dresser un dictionnaire des exports et des fonctions associées:

exports_address = {}
for module in target.enumerate_modules():
    for export in module.enumerate_exports():
        addr = module.relative_address + module.base_address
        export_address[addr] = (module.name, export.name)

Pour la recherche d'une IAT par exemple, on peut aisément se baser sur la méthode read_bytes de l'objet matérialisant le processus courant:

from struct import unpack
...
dword = unpack('<I', target.read_bytes(0x403000, 4))[0]

En bref

Frida s'installe en deux temps trois mouvements, même sous Windows. Frida peut permettre le développement rapide d'outils liés au reverse-engineering voire à l'analyse dynamique de binaires ou à leur compromission. Frida se base sur du Python ("cool !") et du JavaScript ("moins cool."). Mais Frida est bougrement efficace.

A ajouter dans la trousse à outil de tout hacker/reverser/bidouilleur de PE.

(crédits image: www.frida.re + gimp)



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.