vendredi 21 juin 2013

Corelan live: j'y étais!

J'ai participé au training "corelan Live" effectué par le fondateur du blog Corelan et de l’entité Corelan CVG : Peter « corelanc0d3r » Van Eeckhoutte. Ce training proposé par HackInParis durait trois jours, du 17 au 19 juin 2013, et nous étions une vingtaine d'auditeurs.

Au cours de ces trois jours, Peter nous a montré la manière d’écrire des exploits de manière fiable et avec une précision digne d’un horloger suisse: Pas de NOP sled (des chatons meurent lorsqu'un NOP est utilisé), et un placement parfait des shellcodes à l'octet près! Ont été abordés les sujets suivants:
  • L’architecture x86
  • L’exploitation de stack buffer overflow
  • Hotpatching des exploit
  • L’utilisation des SEH pour l’exécution de code
  • L’utilisation de ROP
  • L’écriture de modules metasploit
  • Le bypass d’ASLR et de DEP
  • Le heap spraying et le Use After Free
avec à chaque fois de nombreuses mises en pratique sur des cas concrets et réels: Vrai serveur web, outils SCADA (en version démo), pwnage de wireshark, IE7/8/9/10 fournis en version -1 ou -2 (afin qu'ils soient vulnérables) etc.., avec utilisations de plusieurs CVE récents.

Au final, c’est une formation dense au timing serré, et il n’y a pas eu de temps mort ! Lorsque l’on n’est pas en train d’écrire et fiabiliser un exploit pour en faire un module metasploit, Peter nous détaille les méandres de la mémoire ou de Windows. La formation est tellement compressée que Peter nous demanda de venir à 9h00 plutôt que les 9h30 annoncés, et de finir à 19h au lieu de 17h30. Il nous est même arrivé de sortir à 20h et de continuer l’exercice le soir dans la chambre d’hôtel (où j'ai finalement trouvé la bonne ROP chain qui appelle le VirtualAlloc qui permet de contourner le DEP qui permet d'exécuter l'exploit: Yay \o/ ).
J'ai mangé de l'assembleur 10 heures par jour, du debugger, et exploré la mémoire de nombreux programmes, et ça m'a beaucoup plu. Comme indiqué dans la présentation, c'est une formation qu'on ne peut recommander qu’aux personnes ayant un minimum de bagage dans les buffers overflow, la lecture d’assembleur et l’utilisation de debugger, sans quoi les participants risqueraient à s’y noyer avant la fin de la première matinée.
L’un des gros avantages du training de Peter, c’est la quantité de techniques, tricks, et petites astuces qu’il fournit pour l’écriture d’exploits ou le bypass de certaines protections. Ses années d’expérience dans le domaine ont fait de lui une mine d’or de conseils utiles. Sans compter l’apprentissage des différents tools qu’il utilise comme « mona » (qu’il a lui-même développé). Enfin, Peter est une personne pédagogue qui sait prendre le temps de répondre précisément à toutes les questions, et ça, ça aide beaucoup.

Au bout de ces trois jours de trainings, mélangeant théorie et beaucoup de pratique, on en ressort tous un peu fatigué (je pense), mais finalement très heureux d’y avoir participé. Cette formation m'a aussi fait toucher du doigt la différence entre les chercheurs d'exploit, qui savent trouver des bugs, et les autres personnes qui arrivent à les fiabiliser. Savoir mettre 0x41414141 dans EIP n'est pas forcément simple, mais parvenir à transformer cette info en exploit fiable sur toutes les familles de windows, indépendemment des versions et des défenses (DEP/ASLR, etc..) est un second travail à part entière. 

dimanche 16 juin 2013

Hack In Paris 2013 - Corelan Live

Lundi, mardi et mercredi, je serais au Hack In Paris pour suivre la session Corelan Live, Win32 exploit Development. C'est un training intense, et selon le formateur, il est nécessaire d'avoir de bonnes nuits de sommeils avant et pendant la session tellement le rythme est soutenu durant ces trois jours. Mes VM sont prêtes, mes debuggers à jour, on verra si je finis comme cela. Si vous êtes dans le coin et souhaitez discuter sécurité, faites signe.

Je ne serais malheureusement pas présent aux talks de jeudi et vendredi :-(

lundi 10 juin 2013

Bloquer les APT: mission (im)possible - Partie 4/4

Du hack à l'APT - Partie 1/4
 Introduction : les menaces aveugles et massives du passé
 Ces menaces ont évoluées et sont devenues plus dangereuses

La cible et les 4 cavaliers de l'AP(T)ocalypse - Partie 2/4
 Une cible visée
 La stratégie d'attaque: Les 4 cavaliers de l'AP(T)ocalypse

La persistance de l'APT et l'accès aux données - Partie 3/4
 Persistance et implantation profonde
 Accès au données: espionnage et/ou destruction

Bloquer les APT: mission (im)possible - Partie 4/4
Dans la littérature fantastique le personnage du loup-garou ou du vampire revient souvent. C'est une ennemi très rapide, d'une force herculéenne, très intelligent et qui survit admirablement bien à toutes les tentatives de destruction tout en réussissant à se fondre dans la foule sans se faire reconnaître. Ce qui ressemble finalement à la menace APT. Pour les loups-garous et les vampires, il existe heureusement la fameuse "silver bullet", la balle en argent qui permet de les stopper à coup sûr.
Et contre les APT, qu'avons nous?

1/ A défaut de "silver bullet", une "kill chain"?
Disons le rapidement, il n'existe aujourd'hui pas de "silver bullet" contre les APT, à la manière dont on nous vendait l'antivirus, le firewall ou l'UTM il y a quelques années. Par contre surgit l'idée de Kill Chain, concept tiré d'un document de Lockheed Martin en 2010. Le principe en est le suivant: puisqu'une intrusion APT est une succession d'évènements, essayons de bloquer l'APT à chacun de ses pas.

Le document présente une méthode en 7 étapes pour l'attaquant, et propose 6 modes de défense pour chacune des étapes, à mettre en grille:
Je propose à mon tour une autre Kill Chain, basée sur les cheminements de l'attaquant étape après étape:
(Edit 16/06/2013 : modification kill chain)

En rouge, les actions de l'attaquant, en bleu le factuel ou la victime, et en vert les défenses possibles. Si une flèche repart du vert, c'est que la défense est contournable. Je n'ai pas voulu faire de la publicité pour un produit ou pour un autre, donc aucune entreprise n'est citée nommément.

Pour les notes:
[1] Le désarmement peut être un changement de format. Toutes les pièces jointes d'email pdf sont imprimées en jpg, puis assemblées en pdf et remis dans le mail initial. Ou il peut s'agir d'un nettoyage, i.e. aucun applet java autorisé dans les pages web et nettoyage au niveau réseau.
[2] Et un exploit kernel veut dire une exploitation mémoire (ou pas), à la manière de l'exploit au dessus.
[3] Des VM à usage unique. La VM est lancée, lit un mail, une PJ ou browse une page web, puis est détruite.
[4] Les IOC de Mandiant par exemple
[5] Les analyses réseaux internes n'existent pas, les analyses réseaux en sortie ne sont que rarement faite.
[6] L'attaquant sait qu'il sera détecté tôt ou tard et ne veut pas que l'on puisse facilement remonter à lui ou connaître ses objectifs.

Ce schéma met en exergue quatres choses. La première, c'est qu'il n'existe pas grand chose côté USB. Pourquoi il n'existe pas encore de vrai firewall pour l'USB? Actuellement, on a du tout ou rien. Ce sont des ports USB bloqués au BIOS, ou un filtrage des VendorId/deviceId uniquement. Contre le BYOD, rien. Un filtrage/conformance des trames USB à la manière des firewalls serait un gros plus. (permettant le DLP, le chiffrement à la volée, la configuration centralisée, etc..) [Voir Note 1]

Le second point concerne la cassure au niveau de l'installation du RAT. Il y a vraiment une bascule à ce niveau là. Une fois installé, on peut le détecter et essayer de faire du damage control, mais c'est trop tard. Il est donc à mon avis essentiel de pouvoir remonter le fil de l'attaque pour les diagnostiquer au plus tôt. Ces deux étapes peuvent même être menées par des équipes différentes: des personnes plantent des RAT, d'autres les exploitent.

Un troisième point concerne l'absence de "Déception" dans les défenses. Dans le monde du réseau, les honeypots ont fourni beaucoup d'information; je n'ai pas connaissance (mais je me trompe peut-être) de systèmes d'honeypot contre les APT. (on peut imaginer des faux 'high profiles' qui seront des cibles d'APT, puis des mails, des machines, des réseaux, des processus, des fichiers, etc..)

Un dernier point concerne l'envoi du contenu à la victime. Depuis 2004 on entend parler peu ou prou des mêmes méthodes: mail, page web et USB. Existe t'il un autre moyen? [Voir Note 2]

Bloquer les APT, mission (im)possible? Mission certainement difficile, mais qui demande de gros moyens, un suivi régulier et une intelligence de corrélation d'évènements, on retrouve là les travers de la fameuse "sécurité est un échec"...

2/ Et demain?
Les APT sont des menaces difficiles à contrer simplement. On peut se concentrer sur les défenses, mais on entend de plus en plus parler de l'option offensive, ou hackback. Les US à ce sujet mettent en place une communication toute entière tournée vers les hackback. Il ne se passe pas une semaine sans qu'on entende parler d'une cible américaine qui vient de se faire piller des informations vitales, que c'est scandaleux, qu'il faut réagir face à ça, qu'il est nécessaire de faire quelque chose. A mettre en relation avec les échos des piratages français qui peinent à émerger sur les sites de news en ligne.

Le hackback est-il la seule suite logique à la cyberdéfense? Je ne sais pas, mais je trouve la situation intéressante. Lorsque les APT étaient connus et réservés aux états et grandes entreprises et tout allait bien. Maintenant que les APT sont connus et disponibles à tout un chacun (disposant de moyens raisonnables), les APT sont le grand méchant loup de la sécurité informatique et les gentils pays touchés par le fléau veulent réagir durement, cf les USA qui veulent que les APT soit considérés comme des actes de guerre, permettant des réponses physiques. [Voir Note 3]

Je disais dans un de mes anciens post de blog:
-Dans quelle mesure les cyberattaques vont-elles modifier les pouvoirs de la police étatique vis à vis de l'Internet et par là même rogner sur les libertés d'Internet?
-La "police du net" restera t'elle longtemps l'apanage des sociétés privées alors que l'État est de plus en plus impliqué dans la protection de son cyberterritoire et de ses intérêts
-Est-ce la fin d'un Internet anonyme et sans frontières?
je crois que ces questions restent d'actualité

-----
[Note 1] Je n'étais pas présent au SSTIC 2013, mais il me semble qu'une des conférences a fait mention de filtres USB (?!). Je lirais les actes avec interêt :)
[Note 2] Les confs de sécurité parlent de plus en plus du hack matériel: nos machines sont-elles piégées dès leur conception? Autre chose?
[Note 3] A l'image de l'arme nucléaire? Ceux qui l'ont l'utilisent pour faire de la dissuasion, mais sont les premiers à interdire sa prolifération..