Quantcast
Channel: Devoteam Blog, specialist talk point » French
Viewing all articles
Browse latest Browse all 12
↧

SSTIC 2013 – Jour 1

$
0
0

Propos recueillis par: Geoffrey Bertoli, Antoine Cervoise, Grégory Charbonneau, Romain Léonard, relu par Isabelle Feetz.

AprĂšs quelques heure de route et une courte nuit de sommeil, c’est sous un ciel bleu et un soleil de plomb que nous avons assistĂ© Ă  la onziĂšme Ă©ditoin du Symposium sur la SĂ©curitĂ© des Technologies de l’Information et des Communications 2013 ou SSTIC.

info : les actes seront disponibles sous peu Ă  l’adresse https://www.sstic.org/2013/actes/. Le support des prĂ©sentations peut ĂȘtre trouvĂ©s sur le site du SSTIC pour chaque confĂ©rence.

Innovation en crypto symétrique

Par John Daemen

L’orateur a crĂ©Ă© de nombreux algorithmes de chiffrement, comme il sera soulignĂ© ultĂ©rieurement.

John a commencĂ© la prĂ©sentation par la description de la fonction de DES : c’est une fonction f appliquĂ©e plusieurs fois Ă  une partie du texte Ă  chiffrer. Cette fonction f est composĂ©e de XOR et SBOX.

Ensuite, il présente le challenge AES :
Une des meilleures solutions proposĂ©es est l’algorithme Blowfish, d’aprĂšs lui cet algorithme a beaucoup de potentiel. En effet, la diffusion est bonne, mais il utilise 4 S-Box diffĂ©rentes pour 4 parties diffĂ©rentes du plaintext.
Cet algorithme a Ă©tĂ© cryptanalysĂ© en 1994 car les clĂ©s utilisĂ©es dans les S-Box Ă©taient trop faibles. Il s’est donc demandĂ© s’il pouvait l’amĂ©liorer. Il a donc crĂ©Ă© un algorithme utilisant une seule S-Box rĂ©pliquĂ©e 4 fois mais utilisant une clĂ© plus forte optimisant ainsi la non linĂ©aritĂ©, en sĂ©rie avec la SBOX il a mis une « Linear mixing layer » amĂ©liorant par la mĂȘme occasion la diffusion de l’algorithme. Cet algorithme ainsi optimisĂ©, nommĂ© Rijndael, est devenu AES.

Malgré tout, les attaques bicliques de 2011 ont permis de réduire le temps de cassage de la clé par 4 environ.
L’orateur est ensuite revenu sur la maniĂšre dont il avait crĂ©e SHA-3. Contrairement aux autres algorithmes de hashage, SHA-3 n’utilise pas de « Cipher Block » mais uniquement des permutations. Son algorithme est robuste et utilise trĂšs peu de ressources, ce qui Ă©tait une des demandes des organisateurs du concours SHA-3.

Il a fini par rappeler les 3 principes importants pour créer un bon algorithme de chiffrement :
- Il vaut mieux repartir de zĂ©ro plutĂŽt que de faire des patchs de l’existant (AES n’est pas un dĂ©rivĂ© de DES) ;
- La simplicitĂ© est primordiale : en effet, dans AES il n’y a qu’une seule S-Box, l’algorithme de hashage utilisant des permutations est lui aussi plus simple ;
- Il vaut mieux se concentrer sur le rĂ©sultat que sur la publication : le rĂ©sultat n’en sera que meilleur.

Mise à plat de graphes de flot de contrÎle et exécution symbolique

Par Eloi Vanderbeken

L’orateur travaille comme chercheur en sĂ©curitĂ© chez Oppida. Le sujet de la prĂ©sentation est la rĂ©cupĂ©ration d’un Graphe de Flot de ContrĂŽle (CFG), d’un binaire obfusquĂ© (ou obscurci/brouillĂ©), afin de le rendre lisible par un humain.

Il existe deux catĂ©gories d’obscurcissement :

  • Des mĂ©thodes « bas niveau », qui sont rĂ©alisables aprĂšs la compilation, comme l’insertion de code mort ou le chiffrement du contenu ;
  • Des mĂ©thodes « haut niveau », qui nĂ©cessitent des informations contextuelles, comme l’état des variables globales ou le CFG, et qui sont rĂ©alisĂ©es lors de la compilation. Parmi ces mĂ©thodes, on compte la mise Ă  plat des CFG : c’est ce type d’obscurcissement qui sera traitĂ© lors de cette prĂ©sentation.

Qu’est ce que la mise à plat d’un graphe de flot de contrîle ?
C’est le fait de modifier un CFG de maniĂšre Ă  ce qu’à chaque changement de bloc, on repasse par un gestionnaire, comme on peut le voir sur le schĂ©ma suivant :

sstic_flowgraph

Ainsi, un humain aura du mal Ă  savoir quel bloc sera exĂ©cutĂ© et dans quelles conditions. Pour cela Il devra avoir un accĂšs Ă  la valeur de chaque registre Ă  chaque moment de l’exĂ©cution.

L’idĂ©e est donc de recrĂ©er un CFG lisible. Compte tenu de cette contrainte, il existe trois approches envisageables :

  • Analyse dynamique avec suivi d’exĂ©cution ;
  • Analyse dynamique avec suivi de donnĂ©es ;
  • Analyse statique.

La premiĂšre mĂ©thode permet une reconstruction facile d’un CFG en rĂ©cupĂ©rant la trace d’exĂ©cution. Cependant, l’analyse ne peut ĂȘtre exhaustive car il y a toujours une possibilitĂ© d’oublier des traces.

Pour la seconde mĂ©thode, il faut Ă  prĂ©sent s’attacher Ă  la transformation des donnĂ©es, l’idĂ©e n’étant pas de regarder les Ă©tapes de l’exĂ©cution mais de tracer les variables et leur modification.

Dans ce cas, les problĂšmes rĂ©sultent du fait qu’on ne puisse rĂ©cupĂ©rer la structure du code initial et que les expressions mathĂ©matiques de description des variables peuvent s’avĂ©rer lourdes et complexes.

La troisiĂšme mĂ©thode est celle qui a Ă©tĂ© choisie par Eloi, elle s’appuie sur une abstraction des variables et une exĂ©cution symbolique du programme. Ici, l’avantage est que l’exĂ©cution symbolique permet de rĂ©cupĂ©rer l’intĂ©gralitĂ© du CFG, y compris la structure du code. En revanche, il faut faire attention aux abstractions choisies afin de ne pas induire des calculs lourds et complexes.

L’orateur prĂ©sente tout d’abord comment rĂ©aliser une exĂ©cution symbolique. On exĂ©cute le code symboliquement de maniĂšre Ă  obtenir une trace statique (celle-ci peut contenir plusieurs traces dynamiques, notamment si le code possĂšde des conditions). On rĂ©cupĂšre ensuite le contexte symbolique correspondant aux valeurs probables de chaque variable. Ensuite, on utilise un solveur d’équation basĂ© sur Z3 (un solveur d’équation dĂ©veloppĂ© par Microsoft) afin de pouvoir rĂ©soudre toutes les conditions de saut. Pour finir, on optimise la trace statique en supprimant les blocs vides et les conditions jamais atteintes.

Une démonstration a été faite en fin de présentation simplifiant notablement un CFG pourtant trÚs complexe.

Slides dispo : https://www.sstic.org/2013/presentation/execution_symbolique_et_CFG_flattening/

Polyglottes binaires et implications

Par Ange Albertini

Ange Albertini travaille actuellement chez Avira dans une division d’ingĂ©nierie inversĂ©e. Il a dĂ©jĂ  participĂ© Ă  de nombreuses confĂ©rences et challenges. Il est Ă©galement connu pour des nombreuses publications traitant Ă©galement d’ingĂ©nierie inversĂ©e.

La prĂ©sentation, dynamique et ludique, ponctuĂ©e de dĂ©mo, est axĂ©e sur l’étude de fichiers binaires dits « polyglottes ». Il s’agit de fichiers qui peuvent ĂȘtre interprĂ©tĂ©s diffĂ©remment en fonction du programme qui les lit.

L’orateur nous explique donc les vulnĂ©rabilitĂ©s de certains de ces types de fichiers :

  • Pour le format PE de Windows, le fichier doit commencer par MZ et doit contenir Ă  l’offset 0×3C du fichier l’adresse de la suite du PE ;
  • Pour le format PDF, l’interprĂ©tation dĂ©marre au marqueur %PDF qui doit ĂȘtre placĂ© dans les 1024 premiers octets ;
  • Pour le format HTML, l’interprĂ©tation dĂ©bute avec la balise qui peut se trouver n’importe oĂč dans le fichier ;
  • Pour les ZIP ou les JAR, il peut ĂȘtre placĂ© n’importe oĂč.

En partant de ces donnĂ©es, il est possible de crĂ©er un fichier qui aura un comportement diffĂ©rent en fonction de l’interprĂ©teur.
De plus, pour un PDF donné, on peut obtenir un comportement différent sur Adobe Acrobat Reader, sur Chrome ou Sumatra.

Ces comportements pourraient, par exemple, permettre de créer un fichier qui, au choix :
- Masquera un PDF malveillant à un antivirus qui le prendra, par exemple, pour un exécutable légitime ;
- Permettra l’upload d’une image sur un site Web qui pourra ensuite ĂȘtre exĂ©cutĂ©e en tant qu’Applet Java malveillante.

Pour conclure, les Ă©diteurs de logiciel et les antivirus doivent refuser l’exĂ©cution de fichiers mal formĂ©s.

Recompilation dynamique de codes binaires hostiles

Par SĂ©bastien Josse

SĂ©bastien Josse est un chercheur en sĂ©curitĂ© actuellement employĂ© dans la section MaĂźtrise de l’Information d’un laboratoire de recherche de la DGA.

La problĂ©matique de cette confĂ©rence rĂ©side dans la constante progression des mĂ©thodes qu’utilisent les crĂ©ateurs de malware pour protĂ©ger leur code contre les antivirus, mais aussi contre l’ingĂ©nierie inversĂ©e. Malheureusement, les outils d’analyse, aussi bien statique que dynamique, ne jouent plus Ă  armes Ă©gales avec ces mĂ©thodes de protection.

D’un cĂŽtĂ©, l’analyse statique se trouve limitĂ©e par des techniques d’obscurcissement de plus en plus perfectionnĂ©es comme l’aplatissement de graphes de flot, dĂ©jĂ  prĂ©sentĂ© Ă  l’avant-derniĂšre confĂ©rence par Eloi VanderbĂ©ken.
D’un autre cĂŽtĂ©, l’analyse dynamique est vite repĂ©rĂ©e par la prĂ©sence des interruptions nĂ©cessaires aux break-points.

L’approche de SĂ©bastien propose de descendre d’une couche systĂšme pour se placer au niveau de l’hyperviseur.
Pour ce faire, il a dĂ©veloppĂ© l’outil VxStripper. Celui-ci s’insĂšre dans la fonction de rĂ©Ă©criture de QEMU et gĂ©nĂšre un langage compatible avec LLVM.
Cet outillage lui permet d’abord de « dĂ©packer » le binaire, puis, aprĂšs une seconde passe, de simplifier le code de sortie pour obtenir un code au plus proche du code d’origine.

Pour finir, l’outil est d’ores et dĂ©jĂ  fonctionnel et la dĂ©monstration montre qu’il est efficace sur un binaire simple. Apparemment, l’outil n’est certes pas encore disponible, mais sa diffusion est prĂ©vue : seule la date officielle manque.

Présentations courtes

nftable par Éric Leblond

AprĂšs avoir fondĂ© EdenWall Technologies, Éric Leblond est actuellement dĂ©veloppeur principal chez Open Information Security Foundation. Il est responsable du port du pare-feu d’Open Office vers LibreOffice =).

À l’heure actuelle, l’ajout de rĂšgle est “pourri” en termes de performance, selon l’orateur. IPSET a Ă©tĂ© introduit et permet de gĂ©rer des ensembles de maniĂšre trĂšs efficace. On peut dĂ©finir une liste d’IP afin de gĂ©rer le tout de maniĂšre plus dynamique, ce qui reste Ă  voir selon l’orateur.

Les défauts de IPtables sont principalement la présence de code similaire pour de nombreux modules Netfilter et le fait que certaines fonctionnalités sont impossibles à mettre en place (port source == port destination).

Par consĂ©quent, un nouveau systĂšme de filtrage a Ă©tĂ© dĂ©veloppĂ© et prĂ©sentĂ© en 2008 (nftable) en vue de remplacer les IPtables et l’infrastructure de filtrage. Cependant, aucun changement dans les hooks, le suivi des connexions ainsi que les helpers n’est prĂ©vu.

Le langage sera basĂ© sur une grammaire et accessible depuis une bibliothĂšque. De plus, la communication utilise Netlink ce qui permet de rĂ©aliser des modifications atomiques et un systĂšme de notification. Il y a donc une sĂ©paration distincte entre l’espace utilisateur et l’espace noyau.

Nftables fonctionne en mode fichier, en ligne de commande et en mode client (CLI). La gestion des ensembles anonymes ou nommĂ©s, mais : “Ça c’est trop simple, on va faire un truc encore mieux”.

Il est possible de faire du mapping anonyme et nommĂ©, c’est-Ă -dire de “droper tout ce qui provient de ce rĂ©seau, sauf cette adresse IP prĂ©cise”, le tout en une seule ligne.

Il est Ă  souligner qu’il existe une bibliothĂšque de compatibilitĂ© avec IPtables (IPtables-Nftables) pour “ne pas perdre tout le monde”.

DisponibilitĂ© fin 2013 Ă  l’adresse suivante http://www.netfilter.org. Le support de prĂ©sentation est disponible Ă  l’adresse suivante https://www.sstic.org/media/SSTIC2013/SSTIC-actes/nftable/SSTIC2013-Slides-nftable-leblond.pdf


Présentation courte

Parsifal, ou comment Ă©crire rapidement des parseurs robustes et efficaces
Olivier Levillain, ANSSI

Olivier Levillain est chef du laboratoire sĂ©curitĂ© des rĂ©seaux et protocoles au sein de la sous-direction expertise de l’Agence nationale de la sĂ©curitĂ© des systĂšmes d’information (ANSSI). Ses travaux actuels portent sur la sĂ©curitĂ© des navigateurs, mais ses centre d’intĂ©rĂȘts couvrent Ă©galement la sĂ©curitĂ© des systĂšmes, les vulnĂ©rabilitĂ©s liĂ©es au matĂ©riel ou encore les langages de programmation.

Pour Ă©tudier un format ou un protocole, le mieux est de l’implĂ©menter. Cependant, de petits dĂ©tails au sein des protocoles peuvent ĂȘtre gĂȘnants.

Wireshark, Scapy et Hachoir connaissent dĂ©jĂ  de nombreux protocoles et sont facilement utilisables, mais deux d’entre eux sont limitĂ©s au rĂ©seau. De plus, « Le Python, c’est lent ».

Plusieurs outils ont Ă©tĂ© codĂ©s en Python dans le lab. mais ils sont considĂ©rĂ©s comme lents Ă  l’exĂ©cution donc ils sont passĂ©s Ă  C++, plus rapide, mais ils restent trop verbeux et pĂ©nibles Ă  mettre au point.
Un outil en OCaml a donc été développé avec un préprocesseur nommé Parsifal.

La plaquette de Parsifal est la suivante :

  • EfficacitĂ© du code produit ;
  • Robustesse ;
  • Adaptation Ă  l’écriture incrĂ©mentale de parseurs flexibles.

Parsifal permet Ă©galement d’extraire les objets dĂ©crits en plus de pouvoir les parser (client DNS en 200 lignes).

L’orateur donne un exemple concret avec la structure d’une image PNG. Il dĂ©clare simplement la structure d’une image PNG (avec la taille, le Chunk Type, la data et le CRC) et il obtient un code permettant de parser l’objet et de l’extraire.
Cet exemple est agrĂ©mentĂ© de dĂ©mo pour prouver le peu de code demandĂ© Ă  l’utilisateur.

Les formats implémentés sont : X509, SSL/TLS, PE, Kerberos, TAR, DNS, PNG, PCAP ; ceux qui ne sont pas implémentés : Base64, Zlib, etc.

La v0.1 est publiée sur GitHub, la documentation reste à consolider.

Compromission d’un terminal sĂ©curisĂ© via l’interface carte Ă  puce

Par Guillaume Vinet

L’utilisation d’une carte Ă  puce est considĂ©rĂ©e comme l’équivalent d’un coffre-fort numĂ©rique Ă  faible coĂ»t. Cependant, l’authentification nĂ©cessite la saisie d’un code PIN sur le clavier du PC, ce qui n’est pas sĂ©curisĂ©, comme montrĂ© au CCC 2010. Un terminal bancaire a donc Ă©tĂ© crĂ©Ă©, avec branchement en USB sur le PC.

La saisie du code PIN est confinĂ©e dans le terminal, Ă  l’exception des Ă©changes avec la carte, c’est-Ă -dire que le code PIN ne transite pas par le PC.

Diverses attaques de terminal sont à exploiter : attaque physique, rayon électromagnétique ou démontage et analyse de la mémoire aprÚs saisie du code PIN.
L’orateur s’est penchĂ© sur l’attaque par l’interface de carte Ă  puce car elle est rapide, non destructive, peu dĂ©tectable et rarement prise en compte.

Ainsi, on pourrait dĂ©brancher le terminal en le gardant sous tension et le brancher au PC d’analyse, mais cela s’avĂšre un peu encombrant.

L’orateur a donc visĂ© le protocole ISO 7816-3 en utilisant l’Answer To Reset (ATR) ce qui permet de rĂ©cupĂ©rer des octets historiques.
Les actions suivantes sont Ă©galement possibles :

  • Envoi d’un ATR => 2 octets => accĂšs illĂ©gal en lecture ;
  • Envoi d’un ATR => 33 octets => accĂšs illĂ©gal en Ă©criture.

Le matĂ©riel disponible pour la mise en place de l’attaque :

  • Java Card : dont la couche transport est bas niveau (APDU Ă©tendue) ;
  • Fun Card, prussian card, Basic Card : programmables mais via un lecteur de cartes Ă  puce ;
  • Émulateur physique de cartes Ă  puce : problĂšme de coĂ»t et de prise en main.

L’orateur a donc achetĂ© un Arduino peu coĂ»teux, rapidement pris en main, avec connexion USB, contrĂŽle via Python et contrĂŽle de la carte, ce qui lui a permis de rĂ©aliser des attaques par fuzzing.

Via un ATR mal formaté, il a pu trouver 4 failles avec possibilité de récupérer une partie de la réponse précédente.

Par attaque sur les octets de procĂ©dure T0, il a pu extraire le code du firmware du microcontrĂŽleur. Il a Ă©galement pu extraire la totalitĂ© de la XRAM, Ă©galement grĂące Ă  une faille dans la bibliothĂšque du microcontrĂŽleur qui est normalement sensĂ©e empĂȘcher les dĂ©bordements de tampon.

L’orateur conclut par une dĂ©mo en live oĂč il lit les derniĂšres rĂ©ponses et dump le firmware.

Attaques applicatives via périphériques USB modifies infection virale et fuites

BenoĂźt Badrignans est employĂ© chez SECLAB FR. C’est en travaillant sur le dĂ©veloppement de pĂ©riphĂ©riques USB et en constatant que le moindre problĂšme de conception dans le pĂ©riphĂ©rique entraĂźnait un plantage de la machine que l’idĂ©e de modifier des pĂ©riphĂ©riques USB lui est venue.

Dans le cadre de SI critique, les problĂ©matiques liĂ©es Ă  l’USB sont frĂ©quentes (cas de Stuxnet). Cela a permis une prise de conscience du risque et la mise en place de prĂ©conisations associĂ©es. Cependant, ces prĂ©conisations se concentrent sur la protection de pĂ©riphĂ©riques USB classiques avec un contenu malveillant.

Les recommandations traditionnelles sont :

  • Éviter l’USB ;
  • Utiliser un sas de dĂ©contamination ;
  • DĂ©sactiver l’autorun ;
  • Utiliser un antivirus Ă  jour ;
  • Interdire certains pĂ©riphĂ©riques via le descripteur,
  • Etc.

La prĂ©sentation dĂ©bute par un rappel du modĂšle de fonctionnement de l’USB. Comme indiquĂ© sur la capture ci-dessous, il existe plusieurs mĂ©thodes pour compromettre un systĂšme via un pĂ©riphĂ©rique USB classique (virus sur une clĂ© USB, driver malveillant, etc.)

sstic_2013_surface_attaque_avec_usb_classique_1

Par exemple, modifier un pĂ©riphĂ©rique USB en changeant le descripteur, permet d’autoriser un pĂ©riphĂ©rique qui serait normalement interdit.

On peut aussi écouter les informations qui passent sur le hub USB sur lequel est branché notre périphérique modifié.

Il est également possible de contourner le sas de décontamination en modifiant la table de partition. Si on peut simuler un clavier, on peut donc se faire passer pour la personne derriÚre le clavier.

sstic_surface_attaque_avec_usb_modifiee

Pour réaliser son périphérique modifié, il y a plusieurs options :

- Acheter directement un contrĂŽleur USB ;

- Modifier un tĂ©lĂ©phone portable (des couches d’Android permettent de faire passer un tĂ©lĂ©phone pour un clavier) ;

- Utiliser des outils de pentest prĂȘts Ă  l’emploi (Facedancer USB pour Fuzzing) ;

- Acheter directement une clé USB piégée.

La surface d’attaque s’avĂšre donc supĂ©rieure Ă  une clĂ© USB classique !

La premiĂšre dĂ©monstration se base sur le scĂ©nario ayant l’objectif suivant : voler un fichier spĂ©cifique sur un systĂšme. Le systĂšme hĂŽte effectue un filtrage sur le descripteur USB, l’utilisateur courant n’est pas « root » et la clĂ© USB est montĂ©e en lecture seule.

Premier contournement : on peut facilement changer le descripteur USB (besoin d’ingĂ©nierie sociale pour dĂ©terminer les descripteurs autorisĂ©s).

Notre clĂ© dispose de deux espaces de stockage : un premier accessible depuis l’OS (donc uniquement en lecture, que l’on nommera systĂšme A) et un second cachĂ© sur la clĂ©, qui n’est pas directement accessible (que l’on nommera systĂšme B). La clĂ© dispose aussi d’un microcontrĂŽleur qui lui permet d’agit sur la mĂ©moire de masse cachĂ©e. Comme il n’est pas possible de copier directement le fichier sur le stockage A, celle-ci accĂšde en lecture au fichier cible. Le dispositif USB lit octet par octet le contenu de la clĂ©, Ă  chaque octet lu, un accĂšs en lecture est fait sur un fichier spĂ©cifique du systĂšme A. Le microcontrĂŽleur interprĂšte alors ces accĂšs en lecture et Ă©crit les octets lus (donc ceux du fichier cible) et les Ă©crits dans un fichier prĂ©sent sur le systĂšme B, donc cachĂ©.

Le second scĂ©nario est le suivant : infecter une machine cible, n’ayant pas d’antivirus. L’attaquant ne peut entrer directement sur le SI, ne connaĂźt pas le systĂšme cible (Linux/Windows/Mac), l’autorun est dĂ©sactivĂ© et le SI dispose d’un sas de contamination.

Pour contourner le sas de dĂ©contamination, il suffit d’attendre un certains nombre de connexions (physiques) pour exĂ©cuter la charge virale.

Pour connaĂźtre l’OS, on analyse le comportement du systĂšme lorsque l’on branche le pĂ©riphĂ©rique (est-ce que le systĂšme commence par lire ou Ă©crire sur l’équipement ? oĂč ? etc).

Une fois l’équipement branchĂ©, l’OS dĂ©tectĂ©, il suffit de dĂ©poser un logiciel malveillant en simulant des entrĂ©es clavier.

Quelles sont donc les contre-mesures ?

Pour commencer les recommandations habituelles sont Ă  appliquer (DLP, dĂ©sactiver l’autorun, etc).

Ensuite, plusieurs options existent, comme par exemple Qubes OS qui permet de dĂ©lĂ©guer Ă  une VM de faible niveau l’USB (ou encore le rĂ©seau). Cependant, ce type de systĂšme nĂ©cessite de former les utilisateurs et impose certaines contraintes.

La proposition de l’orateur constitue une protection matĂ©rielle qui consiste Ă  mettre un matĂ©riel de filtrage USB en rupture entre les pĂ©riphĂ©riques et le contrĂŽleur USB de la machine. Dans le cas de support amovible USB, le contenu de la clĂ© est dupliquĂ© sur l’équipement, la lecture des fichiers ne se fait donc plus sur le pĂ©riphĂ©rique mais sur l’équipement de filtrage. Il est aussi possible de mettre en place des rĂšgles de filtrage au niveau du clavier (interdire des combinaisons de touches, dĂ©tecter des saisies de touches trop rapides pour ĂȘtre effectuĂ©es par un humain).

En conclusion, la surface d’attaque fournie par l’USB est grande, mĂȘme sans entrer dans les couches basses, et il est difficile de contrer cela au niveau logiciel. Par ailleurs, cela ne se limite pas Ă  l’USB, on peut envisager la fuite d’information via PS/2 ou le cĂąble audio.

Pour obtenir plus d’informations sur la prĂ©sentation, l’article et les slides sont disponibles Ă  cette adresse : https://www.sstic.org/2013/presentation/Attaques_applicatives_via_peripheriques_USB_modifies_infection_virale_et_fuites_d_informations/.

Red October

Par Nicolas Brulez

L’orateur commence par un petit rappel des diffĂ©rentes attaques rĂ©centes :
- 2009 : Opération Aurora ;
- 2010 : Stuxnet ;
- 2012 : Flame ;
- 2013 : Red October.

Le nom « Red October » a Ă©tĂ© choisi car l’attaque est potentiellement d’origine russe. Il s’agit d’une campagne de cyber-espionnage ayant eu lieu de mai 2007 Ă  janvier 2013.

Les informations obtenues par le malware Ă©taient rĂ©utilisĂ©es pour s’introduire dans d’autres systĂšmes. Une soixantaine de noms de domaine ont Ă©tĂ© achetĂ©s pour des modules Nokia, iPhone, Windows mobile, pour Cisco et disques amovibles, outre les postes de travail.

Le scĂ©nario de l’attaque est le suivant :
- Infection initiale ;
- Par mail (boite mail anonyme ou boite « pownĂ©e ») phishing avec document piĂ©gĂ© (Word et Excel). Il n’y avait aucun 0day (CVE 2009-1329, Ă  CVE 2012-0158). Les exploits utilisĂ©s ont Ă©tĂ© rĂ©cupĂ©rĂ©s de Chine, en changeant le payload ;
- Le dropper extrait et exĂ©cute 3 fichiers sur la machine victime. Le fichier chiffrĂ© en RC4 et Zlib est une backdoor s’injectant en mĂ©moire qui communique avec le C&C de maniĂšre chiffrĂ©e, aprĂšs un test sur microsoft.com ;
- Des modules complémentaires sont déployés (password, persistent, mobile, exfiltration, disque amovible, etc.). Une fois la connexion faite, les modules sont chargés « hors ligne » (sur le disque) et « en ligne » (en mémoire) : 34 modules, 9 groupes et plus de 100 fichiers.

Les noms de domaine ont été enregistrés par les équipes de Kaspersky pour faire des statistiques puisque les pirates ne les ont pas renouvelés.
Avec leur serveur (KSN), ils ont pu voir que la Suisse, le Kazakhstan et la GrÚce étaient les pays les plus ciblés.
La plupart des mails qui ont servi Ă  l’enregistrement des noms de domaine sont en « .ru ». Les Ă©quipes de Kaspersky ont pu avoir accĂšs Ă  un serveur de proxy qui redirigeait les flux vers les serveurs rĂ©els (le port 40080 des serveurs de contrĂŽle est ouvert).

L’originalitĂ© des modules pour mobiles : Nokia, IPhone et Windows Mobile
Le module utilise l’API du dĂ©veloppeur, l’ID du tĂ©lĂ©phone, la version du firmware, les contacts, les journaux d’appels, le calendrier, etc.
Sur Windows mobile, le module va infecter le tĂ©lĂ©phone en plus de rĂ©cupĂ©rer des informations. Une fois infectĂ©, il se connecte par le C&C pour complĂ©ter l’infection et va modifier le tĂ©lĂ©phone pour lancer des applications non signĂ©es.

L’orateur conclut par le fait qu’aucune dĂ©mo n’est disponible car « de toute façon, ça ne marche pas, je suis Ă  l’arrache comme toujours ! ». Aucun support de prĂ©sentation n’est disponible.


(L’)EmbarquĂ© entre Confiance et DĂ©fiance
Par Aurélien Francillon

La derniĂšre confĂ©rence de la journĂ©e est prĂ©sentĂ©e par AurĂ©lien Francillon, chercheur chez Eurocom, rattachĂ© Ă  l’institut Mines-TĂ©lĂ©com. La prĂ©sentation est un patchwork de diffĂ©rentes recherches qu’il a effectuĂ©es sur l’informatique embarquĂ©e.

Pourquoi ce titre ?
Il commence par expliquer pourquoi il a choisi ce titre et pourquoi il s’est tournĂ© vers l’embarquĂ©.
Au dĂ©part, hormis les cartes Ă  puce, Ă©tudier des attaques ciblĂ©es sur les systĂšmes embarquĂ©s Ă©tait assez souvent tirĂ© par les cheveux. Cet aspect a pas mal changĂ© ces derniers temps. C’est aussi sa curiositĂ© Ă  l’égard de ces systĂšmes et le fait qu’ils sont plus petits, donc moins complexes, soumis Ă  peu de sĂ©curitĂ© qui l’ont poussĂ© Ă  se demander « Peut-on faire confiance Ă  ces boites noires ? » et Ă  s’orienter vers l’étude de l’embarquĂ©.
Pour commencer, il illustre sa prĂ©sentation en parlant d’AVR. Ce microcontrĂŽleur est basĂ© sur une architecture Harvard (http://fr.wikipedia.org/wiki/Architecture_Harvard), aussi utilisĂ©e dans les smartcard : les donnĂ©es mĂ©moire et programme y sont indĂ©pendantes. Ce type d’architecture induit qu’il n’est pas possible d’effectuer des injections de code classiques. Cependant, en utilisant le ROP (Return Oriented Programming, http://fr.wikipedia.org/wiki/Return-oriented_programming), il est possible d’exĂ©cuter du code dĂ©jĂ  prĂ©sent en mĂ©moire programme (des gadgets). Si l’on est en prĂ©sence d’un jeu de gadgets « Turing complet », il est possible d’effectuer des injections. Un systĂšme basĂ© sur une architecture Harvard ne protĂšge donc pas des injections de code.

Comment faire confiance à un systÚme embarqué ?
Pour rĂ©pondre Ă  cette question, l’orateur utilise l’exemple duHTC G1. Ce tĂ©lĂ©phone utilise deux processeurs : un ARM9 pour le baseband (le code du baseband reprĂ©sente environ 20 Mo de code binaire) et un ARM11 pour la gestion d’Android. L’orateur prĂ©sente la sĂ©quence de Secure Boot du tĂ©lĂ©phone. Ce modĂšle de sĂ©curitĂ© est basĂ© sur une signature des diffĂ©rents binaires. C’est en analysant la ROM utilisĂ©e pour le baseband que l’on dĂ©couvre que les certificats utilisĂ©s pour vĂ©rifier la signature sont en dur dans le code. On est en prĂ©sence de deux certificats, un certificat « commercial » et un certificat « gouvernemental ». Chaque certificat correspond Ă  un mode de fonctionnement. Les premiĂšres questions qui peuvent venir Ă  l’esprit sont :
- Pour quel gouvernement ?
- Y-a-t-il un certificat par gouvernement ?
- Est-ce une backdoor ?

Les rĂ©ponses aux deux premiĂšres questions ne sont pas donnĂ©es ici. Cependant, on peut affirmer qu’il ne s’agit pas rĂ©ellement d’une backdoor car on a besoin d’un accĂšs physique au tĂ©lĂ©phone. Par contre, un gouvernement peut quand mĂȘme reprogrammer le baseband pour ses propres tĂ©lĂ©phones. Pour cela, il faut pouvoir modifier l’image (micronoyau OKL4). Des versions antĂ©rieures sont disponibles en open source. Il est Ă©galement possible d’utiliser OKL4 comme hyperviseur (un PoC permettant de lancer le noyau Linux dans le baseband a d’ailleurs Ă©tĂ© effectuĂ© lors des recherches).

AprÚs cet exemple, il nous est rappelé que les systÚmes embarqués sont partout.
Un ordinateur est d’ailleurs une combinaison de systĂšmes embarquĂ©s. Par exemple, un disque dur en est un. Un papier Ă  venir va prĂ©senter la possibilitĂ© de dĂ©poser une backdoor au sein d’un disque dur (le PoC est notamment rĂ©alisable car il n’y a pas de vĂ©rification de la signature du firmware dans le disque dur). À suivre donc !

Comment font-ils pour faire cela de maniÚre sécurisée ?
Ici, les systĂšmes de clĂ©s sans contact pour les automobiles sont pris comme exemples. Dans le modĂšle vendu par les constructeurs, si on se trouve Ă  proximitĂ© de notre voiture (moins de deux mĂštres) avec la clĂ©, sans contact, la voiture se dĂ©verrouille et il est possible de la dĂ©marrer en appuyant sur un simple bouton. AurĂ©lien a donc rĂ©alisĂ© la mĂȘme expĂ©rience sur plusieurs voitures (10 modĂšles de 8 constructeurs). L’expĂ©rience consiste Ă  crĂ©er un relai (par cĂąble ou sans fil) permettant de prolonger la portĂ©e de la clĂ©. Le rĂ©sultat est qu’il est possible d’ouvrir et dĂ©marrer la voiture Ă  une centaine de mĂštres.

Peut-on faire confiance Ă  ces systĂšmes ?
Plusieurs concepts permettent de contrÎler ces systÚmes : le premier présenté consiste à vérifier le code avec un autre code, contournable notamment grùce au ROP. La seconde méthode consiste à vérifier le systÚme au démarrage, méthode ne protégeant pas contre une compromission aprÚs le lancement du systÚme.
La derniÚre méthode est la méthode Secure and Minimal Architecture for (Establishing a Dynamic) Root of Trust (SMART), méthode présentée dans le document : http://www.eurecom.fr/fr/publication/3536/detail/smart-secure-and-minimal-architecture-for-establishing-a-dynamic-root-of-trust)

Pourquoi faire un systÚme sécurisé ?
Pour terminer la prĂ©sentation, on peut se poser la question : pourquoi sĂ©curiser ces systĂšmes ? En effet, du cotĂ© constructeur la question peut se poser. Cela coĂ»te plus cher, c’est plus complexe Ă  rĂ©aliser et cela ne fait pas nĂ©cessairement vendre davantage ou plus vite.

En conclusion de ce patchwork, l’orateur tient à rappeler qu’il est important de rester curieux et de se poser des questions lorsque l’on se retrouve face à des boütes noires.

Au moment oĂč ces lignes sont Ă©crites, la prĂ©sentation n’est pas disponible sur Internet. Elle le sera sĂ»rement par la suite Ă  l’adresse : https://www.sstic.org/2013/presentation/conf_invit2_j1_2013/

↧

Viewing all articles
Browse latest Browse all 12

Trending Articles