dimanche 29 septembre 2013

Un trou de sécurité dans Android...c’est à voir!

Vous avez tous entendu parlé de la possibilité d'installer une application Android malveillante (bug 8219321 et bug 9695860) en la signant avec une application bien officielle.

Pour plus de détails voir le blog de Jay Freeman (@saurik)

On trouve également sur le github de Fuzion24 quelques "apk" (comprendre applications Android) modifiés qui permettent d'installer une application malveillante signée en utilisant ces bugs.

Essayons les!

On copie d'abord l'"apk" sur notre téléphone puis on installe l'application.

droid@screen-2

On obtient alors un magnifique message en provenance du Google Play Store nous informant que cette application est malveillante car elle exploite un bug connu, et que l'installer c'est prendre un très gros risque!

droid@screen-3

Continuons tout de même!

On obtient alors un message nous informant que notre paramétrage interdit l'installation des applications en dehors du Google Play Store.

droid@screen-4

Conseil: vérifier le paramétrage de votre téléphone permettant d’interdire l’installation d’applications en dehors du Google Play Store

droid@screen-5

Quant on sait que Google affirme qu'il n'y a aucune application compromise dans le Google Play Store, le risque semble faible

Déception! Ou pas!

Maintenant toutes ces manipulations m'ont donné une idée!

Pré-requis: Imaginons que le paramètre "USB Debugging" que l'on peut trouver dans "Settings / Developer Options" soit activé. Vous avez par exemple eu besoin d'afficher l'écran de votre téléphone sur votre ordinateur (pour plus d'informations voir "Afficher l’écran de votre téléphone sur votre ordinateur") et vous n'avez pas désactivé l'option.

Dans ce cas, l'attaquant peut installer son environnement Android sur sa clef USB et lancer l'installation de l'"apk" à partir de sa clef. A condition bien sûr que la cible ait son téléphone connecté en USB sur son PC (pour recharger son téléphone ou bien transfèrer des données comme des photos par exemple). Alors si l'attaquant réussi à connecter sa clef USB sur le PC de la cible et à executer son programme, c'est gagné.

En effet si je lance la commande:

> adb install -r SecurityDemo.apk

alors l'installation réussie.

Une autre approche consiste à inciter votre cible à connecter son téléphone sur votre PC.

Référez vous au blog "La clef USB: le maillon faible ?" qui décrit quelques techniques permettant d'automatiser l'exécution de commande à partir d'une clef USB.
La charge utile pour installer et lancer l'application malveillante pourrait alors ressembler à:

> nircmd.exe execmd /Android/SDK/platform-tools/adb install -r /Android/Projects/SecurityDemo/bin/SecurityDemo.apk
> nircmd.exe execmd /Android/SDK/platform-tools/adb shell am start -n com.proxia.securitydemo/com.proxia.securitydemo.SecurityDemo

Il est aussi possible pour faire disparaître les traces de notre passage d'arrêter l'application et de la désinstaller avec les commandes suivantes:

> adb shell am force-stop com.proxia.securitydemo
> adb uninstall com.proxia.securitydemo

Et ca marche!

dimanche 22 septembre 2013

Le fuzzing appliqué à la validation des applications

A OHM 2013 (voir l'article "Mon OHM à moi…") en sortant de la présentation de @agarri_fr aka Nicolas Grégoire (excellente présentation par ailleurs appelé “Low-cost vulnerability research: XSLT fuzzing as a case study”), je me suis accordé un instant de réflexion, assis dans l’herbe, en sirottant un Club-Maté, boisson de tout OHMien qui se respecte, et là j’ai pris une décision, j’allais enfin passer de la théorie du fuzzing à la pratique.
club-mate

Qu'est ce que le fuzzing? (source: Wikipedia)

Le fuzzing est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger.
Le grand avantage du fuzzing est que l'écriture de tests est extrêmement simple, ne demande aucune connaissance du fonctionnement du système et permet de trouver des vulnérabilités facilement. D'ailleurs, le fuzzing est également utilisé pour traquer des failles de sécurité .
Cependant la principale limitation du fuzzing est sa grande consommation de ressources mémoire, disque dur, CPU.


Quels sont les outils dont nous disposons?

Il existe une multitude de fuzzers dans différents languages, plus ou moins faciles à utiliser (comme Sulley par exemple).
Si on se focalise sur les outils les plus simples, on peut lister les outils proposés par le CERT de Carnegie Mellon:


BFF
Le CERT Basic Fuzzing Framework (BFF) est un outil logiciel de test permettant de trouver des défauts dans les applications fonctionnant sous Linux et Mac OS X. BFF effectue des mutations sur les données en entrée du logiciel à tester. Une mutation consiste à prendre une donnée bien formattée et à la corrompre de différentes façons à la recherche de la mutation qui générera un crash.

FOE
The CERT Failure Observation Engine (FOE) est un outil logiciel de test permettant de trouver des défauts dans les applications fonctionnant sous Windows. FOE effectue également des mutations sur les données en entrée du logiciel à tester


Que fait @agarri_fr avec le fuzzing?

@agarri_fr (http://www.agarri.fr/) est un chercheur en vulnérabilités à ses heures. Ses recherches se focalisent actuellement sur les parsers autour de XML et de XSLT. Il utilise principalement le fuzzer Radamsa (http://code.google.com/p/ouspg/wiki/Radamsa). Sur cette base @agarri_fr a découvert de nombreuses vulnérabilités dont:


Pour information il existe une extension Radamsa pour Burp Suite.
Si vous souhaitez quelques informations sur XML et XSLT vous pouvez jeter un oeil à l’article Les transformations “XSLT” fournissent toujours de précieux services!


Et comment le fuzzing est-il utilisé dans une phase de validation?

Le chercheur en sécurité informatique Charlie Miller a refusé en 2010 de dévoiler les vulnérabilités "0-day" trouvées dans le code de logiciels célèbres (contrairement au règlement du concours de sécurité informatique Pwn2Own), afin de protester contre les éditeurs qui n'utilisent pas assez cette technique simple selon lui.

Tout est dit! Le fuzzing devrait faire partie intégrante de toutes les phases de validation.


Et moi je fais quoi avec tout ca?

Tout d'abord je m'amuse.

Et à titre d'exercice, j'ai installé FOE dans un environnement Windows avec pour objectif de trouver des vulnérabilités chez quelques éditeurs! Bon ca parait simple sur le papier mais ca l'est beaucoup moins dans la réalité (mais je ne suis pas à l'abri de trouver quelque chose)


A vous de jouer! Et peut-être allez vous découvrir un "0-day" !

samedi 21 septembre 2013

Mon OHM à moi...

P1030401

Hier il a plu à Amsterdam ! Ce matin le soleil semble être au rendez-vous.

J’arrive à Central Station. Je cherche le quai, direction Alkmaar. Surtout ne pas se tromper de train ! Je ne souhaite pas rater la cérémonie d’ouverture.
Le quai semble vide. Je suis en avance. Quelques hommes et femmes me rejoignent. Peut être y’en a-t-il parmi eux qui vont à OHM ! J’observe, je scrute, à la recherche d’indices ! Sur une veste, un badge,  je lis difficilement « Free… ». Je me rapproche : « Free Softwares ». Si on ajoute à ça, un sac à dos et une tente, la probabilité est suffisante pour que j’entame la conversation.
« Excuse me! Are you going to OHM ? »

«Yes! » dit-elle
Son accent anglais ressemble terriblement au mien. Serait-elle française ?
«Vous êtes française ?»
« Oui » répond-elle
La journée commence bien.
Le trajet semble être très court. Nous arrivons à destination, Heerhugowaard. De la gare, le chemin est soigneusement fléché jusqu’ à la navette qui doit nous emmener au Walhalla.

P1030402

Un détail m’inquiète cependant. Notre aimable chauffeur porte des bottes. Le Walhalla serait-il dans la boue ?

La voiture sort de la ville. Chaque instant qui passe semble nous éloigner un peu plus de la civilisation. Sensation de téléportation dans un univers parallèle !

Au loin nous apercevons quelques tentes. Nous sommes arrivés.

Première étape, contrôle des billets et remise du bracelet. Ça y est ! Après 6 mois d’attente nous voilà dans l’arène !

Finalement la pluie n’a pas fait de dégâts. Le terrain est pratiquable. Jusqu’ici tout va bien !

P1030403

Deuxième étape, retrouver Bertrand (*).

Bertrand présente ses travaux de recherche dans l’après-midi. Il est ici avec sa femme et ses enfants. Son SMS matinal m’indiquait que je pourrais le retrouver dans le « Family Village » à l’opposé du « Noisy Square » ! Choix stratégique !

Le « Family Village » est bien rempli. Quelques enfants sont déjà à la garderie. Ils semblent être très concentrés devant leurs ordinateurs ! Eh oui, la garderie d’OHM n’est pas une garderie comme les autres : les enfants de « hacker » doivent avoir des activités de « hacker ».

J’aperçois Bertrand au loin. Après avoir partagé un Club-Maté, la boisson locale, Bertrand me fait découvrir les lieux. Cet endroit est vraiment surprenant, c’est une véritable ville au milieu de nulle part!

P1030405

Après une petite visite de sa tente tout confort, Bertrand part à la recherche d’un peu de tranquillité pour finir de préparer sa présentation.


P1030407

Bon, à moi de jouer ! Je vais pouvoir assister à quelques conférences. Mais lesquelles choisir, il y en a au moins 4 officielles en parallèle, sans compter les présentations improvisées dans les villages comme celui de la « French Embassy ». Le dilemme ! Je décide de faire confiance au hasard, ce n’est pas très scientifique tout ça mais ne l’oublions pas, je suis en vacances!

En traversant un des nombreux ponts d’OHM, j’aperçois sur l’eau un crocodile gonflable sur le dos ! Mort peut être ! Tout est réellement sous-contrôle ! Les enfants peuvent être rassurés.

P1030408

J’erre de tente en tente, de conférence en conférence, récupérant un autocollant par ci, prenant une photo par là, m’arrêtant souvent pour découvrir des domaines plus surprenant les uns que les autres, du «lockpicking» au journalisme en Syrie en passant par les «whistleblowers» (lanceurs d’alertes)! Je m’imprègne de l’ambiance, je veux tout voir et tout sentir, je veux garder ce souvenir intact pour mon retour en France.

P1030410
P1030411

La nuit tombe, salué par l’arrivée d’un soldat de l’empire galactique pour le plaisir des petits et des grands. Les journalistes se précipitent pour l’interviewer. Décalé !

P1030412

J’oublie tout, je voudrais rester pour toujours ici, devenir un habitant d’Ohm-Ville !  Un sursaut de lucidité me ramène brutalement à la réalité, Amsterdam, le train, la navette, quelle heure est-il ?
C’est la fin ! Je m’arrache de ce lieu envoûtant ! J’attends la navette. Prés de moi, deux personnes parlent. Je tends l’oreille:
« What is this conference about ? » dit la personne en charge de la sécurité de l’entrée du camp
« It is about hacking! But you will find free-thinkers, philosophers, activists, geeks, scientists, artists and a whole bunch of people interested in lots of interesting stuff!” répond un organisateur
It sounds good! I may find interesting stuff there, you know! I always like to learn new things!” admet le garde
Tout est dit!

(*) pour des raisons d'anonymat le prénom a été modifié.

Partager avec...