PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Quack1 : #SSTIC 2014 - « Voilàààà, c'est finiiiii... »

mercredi 11 juin 2014 à 09:51

Cette année encore, j'ai trouvé que le SSTIC avait un très bon niveau ! Il y avait un peu de tout (hardware, offensif, Windows, etc), mais on pourra quand même regretter qu'il n'y ai pas suffisamment de conférences sur le côté défensif de la sécurité (détection d'intrusions, inforensique, etc) même si Martine nous a quand même montré comment monter un CERT.

Heureusement qu'on a eu accès aux articles directement pendant le SSTIC en version papier, ça occupe aussi le train du retour !

God bless #SSTIC for actually printing their proceedings to a book, on paper, for every attendee. It's shameful that no others do this.

— Travis Goodspeed (@travisgoodspeed) 4 Juin 2014

J'espère pouvoir y retourner l'an prochain, c'est vraiment une bonne ambiance, on rencontre des gens sympa et les confs sont d'un bon niveau :)

 

Vous pouvez retrouver tous mes articles récapitulatifs ici :

Et ceux de l'an dernier.

Gravatar de Quack1
Original post of Quack1.Votez pour ce billet sur Planet Libre.

Articles similaires

Quack1 : #SSTIC 2014 - Dernier jour..

mercredi 11 juin 2014 à 09:30

Dernière journée du #SSTIC 2014, un peu moins chargée que les autres. Mais bon, « grosso modo »[^1], c'est parce qu'il faut bien que les parisiens prennent leur train ;)

Élaboration d'une représentation intermédiaire pour l'exécution concolique et le marquage de données sous Windows par Sébastien Lecomte

Fuzzgrind est un fuzzer intelligent qui permet de faire de la couverture de code et peut trouver des vulnérabilités dans le code. 1/3 des failles de Windows 7 auraient été découvertes de cette façon.

L'orateur présente un portage de Fuzzgrind vers Windows, en utilisant PIN Tools pour instrumenter le fuzzer. Sauf qu'il faut aussi marquer les données pour suivre leur évolution au cours de l'éxécution du programme. L'orateur présente les valeurs qu'il choisi de marquer ainsi que les méthodes qu'il utilise.

Obfuscation de code Python : amélioration des techniques existantes par Ninon Eyrolles & Serge Guelton

(Encore) une présentation de Quarkslab, cette fois sur l'obfuscation de code Python. Puisque Python est un langage interprété, il est peu obscurssi. Les deux conférenciers présentent plusieurs techniques pour obscurssir du Python.

On peut obfusquer du code Python à trois niveaux :

Ils ont pour cela écrit un outil, Python-pack, disponible sur le Github de Quarkslab.

En touchant à l'interpréteur, il est possible de le modifier pour, par exemple, transrormer les opcodes à l'éxécution, ou en rajouter. Par exemple, une addition dans la source sera finalement considérée comme une soustraction à l'exécution. Un billet de blog présentait déjà un peu ça.

Ensuite, on peut également modifier le code source. Par exemple, en rajoutant un méthode modify() avant certaines opérations. Cette fonction va, à l'éxécution, transformer les quelques lignes de code qui suivent. Par exemple, le code suivant :

modify()
b -= 1

pourra être finalement interprété comme :

b += 1

à l'éxécution. De cette manière, on peut ruiner (ou au moins ralentir) les analyses statiques.

On peut aussi utiliser plein de tricks un peu sympa, comme changer tous les noms de variables et fonctions, remplacer les if en while avec des prédicats plus complexes et opaques, modifier le code des fonctions pour le rendre impossible à lire (notamment en utilisant des lambda), etc.

Plus d'exemples sont disponibles dans les actes.

Désobfuscation de DRM par attaques auxiliaires par Camille Mougey & Francis Gabriel

Un DRM c'est fait pour ne pas être compris par les « profanes ». Le code est donc très souvent obfusqué et impossible à comprendre. Au menu, les paquets réseaux sont obscurssis, le bytecode est aplati, les magic blocks sont découpés en des morceaux plus petits, etc.

À cause de toutes ces mesures, analyser tout le flux d'éxécution d'un DRM est trop coûteux (en même temps, c'est un peu le but aussi 😉 ). Les deux orateurs ont donc décidé de se concentrer sur une seule éxécution pour comprendre le fonctionnement du DRM.

Ils ont pour cela développé un outil, pTrap (pour « Python TRace Analyzer »). Cet outil traite une trace d'execution, fourni une API qui permettra de manipuler la trace et stocke la trace dans une base de données MongoDB, qui pourra être récupérée par Intel PIN, Miasm, IDA, ou encore ollydbg.

Le but est de retrouver des petites briques de code qui permettront de comprendre l'algorithme, la crypto, les mécanismes de dérivation, etc, de trouver les blocs statiques qui contiennent les constantes cryptographiques (pour SHA, AES, etc) et finalement d'identifier les fonctions appelées.

L'approche principalement utilisée ici est, une fois qu'on a trouvé des blocs, de choisir un bloc de « fin », trouver ses I/O, puis de remonter aux fonctions appelantes. On peut de cette façon retracer tout le programme.

Résultat du challenge

Cette année, 20 personnes ont validé le challenge, mais seulement 16 solutions ont été retenues (les autres étaient membres du CP). La validation la plus rapide a été 4 jours, les quelques résolutions suivantes l'ont été dans les 5 jours.

Le challenge était composé de trois parties :

  1. une trace USB réalisée avec un appareil Android et usbmon ;
  2. Un crackme en ARM64 obfusqué ;
  3. Un micro-contrôleur remote écrit en Ruby qu'il fallait casser.

Guillaume Delugré à mis sur Github les scripts qu'il a utilisé pour générer le challende.

Résolution

J'ai pas compris toutes les étapes de la résolution, @G4l4drim a fait ça mieux que moi sur son blog.

Exemple de renforcement de la sécurité d'un OIV par Victor Vuillard

Longue présentation sur la sécurité des « Opérateurs d'Importance Vitale » (ou OIV), et plus précisément des centrales nucléaires d'EDF.

La sécurité dans ce milieu semble plus prise au sérieuse que dans les autres milieux, puisque ici le moindre incident de sécurité à des impacts immédiats et graves (Stuxnet ?). Les RSSI et DSI ont donc des approches plus simples, claires et efficaces de la sécurité, contrairement à certaines autres méthodologies (2700X ?).

Sur des gros périmètres comme ceux d'EDF et des centrales, on retrouve cependant des systèmes souvent très hétérogènes. Le parc est souvent issu du regroupement de plusieurs sociétés rachetées par la maison mère, il est composé de machines fabriquées par des constructeurs différents, des équipes différentes pilotent ces équipements, etc.

En revanche, la sûreté est beaucoup plus avancée sur ces plateformes. Des mécanismes sous-jacents et intégrés aux machines permettent de détecter et empêcher certains cas malveillants de survenir. Par contre, il existe également des contraintes sur le temps d'éxécution (temps contraint, temps réel) qui empêche de mettre en places certaines protections comme des authentifications fortes, de la crypto, etc. Mais comme la division SSI est rattachée à la sûreté, elle peut plus facilement faire mettre en place certaines bonnes pratiques.

Présentation courte: Sécurité de la gestion dynamique des ressources dans le cloud : prise de contrôle sur le déclenchement de migrations automatiques de machines virtuelles par Haiming Zheng & Jalel Ben-Othman & Kahina Lazri & Sylvie Laniepce

Le cloud, c'est le royaume des machines virtuelles. Le problème avec des VM est que, en théorie, pour faire tourner 3 guests qui ont chacun 2Go de RAM et 2 coeurs, il faut normalement un host de minimum 6Go de RAM et 6 coeurs (plus les ressources pour faire tourner l'hyperviseur).

Donc ça revient souvent trop cher d'acheter de tels serveurs, tout en sachant que généralement les VM n'utilisent pas la moitié des ressources qui leur sont allouées. Une solution a donc été trouvée chez les hyperviseurs : prendre des hosts moins puissants[^2], puis distribuer les ressources à la demande aux VM, quand l'une d'entre elles en à besoin.

Et quand une VM demande trop de ressources, l'hyperviseur déplace une des machines moins gourmandes sur un autre host, pour libérer sur le premier des ressources pour le guest trop gourmand.

On peut donc de cette façon, en contrôlant une VM malveillante qui demandera toujours plus de ressources, entraîner l'hyperviseur à déplacer sans cesse les autres machines sur d'autres hosts, ce qui va donc causer des baisses de performances sur ces machines.

Et si une VM malveillante ne suffit pas, on peut également en contrôler deux sur deux hosts différents (mettons A et B), pour que l'hyperviseur déplace, sans arrêt, des VM de A vers B et des VM de B vers A.

Et le bonus, c'est que lorsque l'hyperviseur déplace une VM, il consomme 30% de la RAM de la VM en plus. On peut comme ça faire tourner l'hyperviseur en bourrique.

Présentation courte : RpcView : un outil d'exploration et de décompilation des MS RPC par Jean-Marie Borello & Jérémy Bouétard & Julien Boutet & Yoanne Girardin

Présentation de RpcView, un outil qui permet de visualiser des RPC Microsoft, de les décompiler puis de les analyser, les modifier et les rejouer. Une démo live nous montre comment on peut demander avec l'outil à plusieurs Stuxnet de se désinstaller.

Présentation courte : Haka : un langage orienté réseaux et sécurité par Kevin Denis & Mehdi Talbi & Paul Fariello & Pierre Sylvain Desse

Haka est nouveau langage permettant de décrire des règles de sécurité. Il se compose de deux parties :

  1. des dissecteurs, qui analysent des flux réseaux (NFQueue ou pcap) et découpe ces paquets en « objets » manipulables dans les règles. Par exemple, pour HTTP, tous les entêtes (Host, User-Agent, etc) seront disponibles pour écrire des filtres ;
  2. les règles de sécurité proprement dites sont donc des filtres qui seront écrits à partir des protocoles précédement analysés. Il est possible de filtrer les paquets reçus, de lancer des actions sur le système (filtrage, etc) ou encore modifier les paquets.

C'est open-source pour ceux qui veulent tester, perso je vois pas de différences avec Suricata, à part que ça doit moins bien tenir la charge mais que les dissecteurs ont l'air plus simples à écrire...

Tutorial Miasm par Fabrice Desclaux

Cette année, pas de conférence de clôture, mais un tutorial sur miasm donné par Fabrice Desclaux et son stagiaire.

Une fois passée la difficile étape d'installation, miasm a l'air d'être un outil assez utile pour faciliter le reverse de binaires.

Pour ce tutorial, une procédure d'installation complète et une archive contenant des binaires/scripts de tests ont été fournis par serpy.

Miasm est donc un « framework Python » qui permet d'instrumenter la façon dont seront reversés des binaires pour faciliter la lecture du bytecode. Fabrice Desclaux nous fait donc une démo live (et en parlant très, très, très, ..., très vite) en partant d'un binaire brut et en améliorant à chaque étape sa lisibilité.

Miasm peut supprimer et regrouper des basic blocks, aplatir de graphe de code ou au contraire le re-transformer en quelque chose de lisible, supprimer les portions de code inutiles, etc... Et à la fin, il est même possible de lancer le débug dans miasm, mais de plugger IDA dessus pour suivre l'éxécution dans IDA tout en profitant des fonctionnalités de miasm. Si on reprend les expressions fétiches de serpy, je pense que «, mon petit poussin, grosso modo, une fois que miasm a enlevé tout le merdier qui sert à rien », on a un binaire vraiment exploitable.

« Grosso modo », c'est un bon outil miasm \\o/

#miasm #sstic (version inline pour ceux qui n'aiment pas cliquer sur les liens :) pic.twitter.com/TS3XmAoVC2

— newsoft (@newsoft) 6 Juin 2014

[^1]: Private Joke, vous comprendrez à la fin de l'article...

[^2]: On a SUM(VM.ressources) > Host.ressources

Gravatar de Quack1
Original post of Quack1.Votez pour ce billet sur Planet Libre.

Articles similaires

Sheldon.fr : Rhel7 disponible – enfin un kernel 3.x pour OpenVZ ?

mercredi 11 juin 2014 à 08:36

La nouvelle est toute fraîche, Red Hat 7 est enfin dispo !

Bon en toute honnêteté ça va pas changer ma vie (j'utilise pas Red Hat !), mais par contre pour ceux qui utilisent Proxmox ça a un grand intérêt puisque ce dernier utilise la technologie OpenVZ pour ses containers, et donc est basé sur le kernel de Red Hat !

Jusqu'à maintenant nous êtions coincé avec un vieillissant 2.6.32.x, la nouvelle monture intègre une kernel 3.10.x (j'entends des rires au fond de l'internet, c'est pas cool !).

Bon par contre j'ai pas encore vu d'info sur le support officiel d'Open VZ dans RHEL 7!
normalement il devrait pas y avoir de soucis, en décembre 2013 certains utilisateurs faisait part de cette présence dans la beta de Red Hat 7.

Plus qu'à croiser les doigts pour que ça soit toujours le cas :)
Sinon il va falloir se poser des questions sur la pérennité de Proxmox !!

 

Pour rappel, les 5 grandes nouveautés de RHEL 7 sont :

 

Le lien de l'annonce officiel : http://developerblog.redhat.com/2014/06/10/red-hat-enterprise-linux-7-now-generally-available/

Gravatar de Sheldon.fr
Original post of Sheldon.fr.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : Pro libre, oui. Intégriste du libre, pas du tout.

mardi 10 juin 2014 à 21:59

Libère l’intégriste qu’il y a en toi ! : c'est l'appel de Cyrille Borne.

Puisque je me sens souvent obligé de me justifier sur tel ou tel choix (au boulot, ici), ce billet regroupe mon état d'esprit vis-à-vis du Libre.

Je suis convaincu que le Libre, c'est bon, pour toutes les raisons que l'on peut trouver un peu partout : le respect de la vie privée, la sécurité, etc.
Seulement, je suis également libre de choisir.

C'est pourquoi je franchis de temps en temps la ligne jaune :

Cette liste pourrait être longue.

Si on veut que le Libre s'implante de plus en plus, il ne faut pas radicaliser tout ça.
Libre à celui qui ne veut que du Libre sur sa machine et dans sa vie, je respecte ses choix.

Alors faites pareil :)

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

La vache libre : Asunder – Un CD ripper/encoder audio qui roxe du poney

mardi 10 juin 2014 à 21:34

asunder_1

Si vous faites partie de ceux qui ne conçoivent pas de vivre sans musique et qui possèdent encore une CDThèque (ça se fait rare), il y a de fortes chance pour que vous ayez un jour ou l’autre besoin d’un soft spécifique vous permettant de riper tout ça sur un support de stockage externe. Pour une simple sauvegarde par exemple, pour des raisons de mobilité, pour les encoder dans un autre format, ou autre chose … Les applications dédiées à cette tâche ne manquent pas sous GNU/Linux et certaines distributions proposent même des solutions basiques présentes par défaut. Si vous voulez aller plus loin sans pour autant vous retrouver avec un soft gras comme un loukoum, Asunder est peut-être la solution qui va vous convenir. Il s’agit d’une application conçue dans le but de vous permettre d’extraire le contenu de vos CD audio, de les encoder dans un grand nombre de formats (WAV, MP3, Ogg Vorbis, FLAC, Opus, Wavpack, Musepack, AAC, Monkey’s audio files etc,) et de les taguer à votre guise. Je l’ai trouvée vraiment très sympa (même si quelques points sont à revoir) et je vous propose de voir tout de suite à quoi ça ressemble.

Comme vous pouvez le voir plus haut sur l’image d’illustration, l’interface (GTK2) est très basique et affiche directement les informations extraites du CD lors de son insertion dans le lecteur. Libre à vous de les modifier ensuite si elles ne vous conviennent pas.

En naviguant dans le menu des préférences vous pourrez entre autres :

asunder_2

Vous pourrez également choisir la structure des noms de fichiers :

asunder_3

Et bien entendu déterminer le format d’encodage en sortie. Les options disponibles par défaut sont WAV, MP3, OGG Vorbis et FLAC, mais d’autres formats sont accessibles via les boutons « Plus de formats » et « Encodeurs propriétaires » :

asunder_4

Voilà la liste au grand complet :

asunder_5

NB : À propos de l’encodage OGG et si vous tournez sous Manjaro, vous risquez de vous retrouver avec ce message d’erreur.

asunder_6

Si c’est le cas il suffit d’installer les paquets suivants :

sudo pacman -S vorbis-tools

et le tour est joué…

Une fois que vous avez choisi les options qui vont bien, il suffit de cliquer sur le bouton « Extraire » et Asunder s’occupe du reste…

asunder_7

Le processus achevé un message s’affiche :

asunder_8

et si tout s’est bien passé il ne vous reste plus qu’à faire chauffer votre player préféré :

asunder_9

Comme vous avez pu le constater sur ces maigres captures, malgré une interface assez basique Asunder est une solution très efficace et facile à prendre en main, mettant à notre disposition quasiment tout ce qu’il nous faut pour gérer l’extraction de nos vieux CD. Alors certes ce n’est que du GTK2 pour le moment, le processus d’extraction m’a semblé un poil plus long qu’avec d’autres solutions, mais j’ai vraiment bien aimé cette application. Si vous n’avez pas encore trouvé ce qu’il vous faut dans ce domaine je vous conseille vraiment de tester la bête.

Installation :

Si un peu de compilation ne vous fait pas peur, vous pouvez vous procurer les sources d’Asunder depuis la page de téléchargement du site officiel.

Les Ubunteros trouveront leur bonheur au choix en passant par l’USC, en utilisant le .deb qui va bien, ou en utilisant les dépôts officiels à l’aide d’un simple :

sudo apt-get install asunder

Vous pouvez également utiliser  le PPA suivant pour avoir la dernière version en date (2.5), à l’aide de ces quelques lignes de commande :

sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install asunder

Pour Archlinux, Manjaro et dérivés, un simple passage par dépôts community devrait faire l’affaire.

Amusez-vous bien et bon rip/encodage.

PS : Je dédie ce billet à tous les chats métalleux de la planète. Et ils sont nombreux !!! :D
etonish_nein

via Webupd8.org

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.