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..

mardi 4 juin 2013

La persistance de l'APT et l'accès aux données - Partie 3/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
Par l'une des quatre méthodes indiquées dans le chapitre précédent, nous avons vu qu'un attaquant peut exécuter du code sur une machine victime. L'attaquant dispose donc d'un fusil à un coup. Il va s'en servir pour installer un outil d'administration illégitime sur la machine victime pour lui simplifier les accès suivants. On parle souvent de RAT pour Remote Access Tool.

1/ Persistance et implantation profonde
Le RAT va permettre de piloter à distance une machine victime. Ils peuvent être très basique, du type "Download, execute and report". On en trouve des plus évolués, avec du code modulaire, permettant de chercher des fichiers locaux, lister les processus, écouter ce qui se dit au micro, regarder via la webcam, etc..
Les rapports citent souvent l'usage de Poison Ivy, un RAT écrit par un français dont le développement à cessé (il ne fonctionne plus sous windows Seven, mais des patchs non officiels existent). On trouve aussi Dark Comet, X-rat, etc.. La finalité est la même: simplifier l'accès à la machine compromise pour l'attaquant.

Nous l'avons vu, pour contourner un firewall il est plus simple que la demande de connexion soit sortante. C'est donc le RAT qui va se connecter à un (ou des) serveur de Commande et de Contrôle (C&C). Ces C&C ne sont pas situés chez l'attaquant afin d'éviter que la victime ne puisse faire le lien entre le serveur C&C et l'attaquant une fois découvert. Certains rapports mettent en avant un déplacement de ces serveurs C&C, d'autres montrent au contraire une certaine stabilité de ceux-ci au cours du temps (et qui sont quelquefois réutilisés pour d'autres campagnes APT). Les canaux réseaux utilisés entre la victime et le C&C sont très standard: HTTP, DNS, commentaires dans les pages HTML, etc... et sont de fait difficilement détectables, noyés au milieu de trafic identique et légitime.

Une fois bien installé, l'attaquant va alors se déplacer horizontalement dans le réseau cible et augmenter ses privilèges. Il peut utiliser des failles locales, mais on retrouve souvent des outils comme mimikatz, pass-the-hash, des pwdump.exe installés chez les victimes. D'autres RAT sont installés au fur et à mesure de la progression chez la victime. Certains attaquants s'ajoutent des utilisateurs avec pleins pouvoirs dans les AD, ou modifient des règles de log afin de continuer à rester sous le radar.

Attaquant FTW!
Nous avons donc du code non détecté par les antivirus + des connexions sortantes non détectées par les firewall + des attaquants ayant le niveau maximal de privilèges sur le réseau de la cible = compromission totale de longue durée. Les rapports sur les APT ne montrent pas de problèmes dans l'élévation de privilèges ou le déplacement dans le réseau interne.


2/ Accès au données: espionnage et/ou destruction
Les attaquants ont généralement deux objectifs: l'espionnage et/ou la destruction.

Pour l'espionnage, il suffit de référencer les données puis de les exfiltrer. Les rapports font souvent mention de fichiers rar-és et envoyés en ftp quelque part. On a pu lire des théories sur les 'dark google' ou l'attaquant indexe les données chez la victime et ne charge que celle qui l'intéresse au moment ou cela l'intéresse. Il peut aussi s'agir de redirections mises en place sur les boîtes mails de certaines personnes.

La destruction de données est l'autre versant. Il peut s'agir de données informatiques, ce qui a souvent un effet dévastateur: on dit qu'une entreprise sur trois se remet d'un incendie de son siège social. Lorsqu'un lundi matin tous les postes, serveurs, imprimantes, smartphones etc.. ont été wipés, qui peut s'en remettre? Le deuxième type de destruction est bien plus physique. Puisque tout est géré via informatique, centre de productions, usines, eau, électricité etc... une modification de données aurait également des effets dramatiques. En 2001 des terrorristes faisaient écraser deux avions sur les World trade Center, en 2013 il est beaucoup plus simple de prendre le contrôle de la sécurité aérienne et d'y
provoquer le chaos: les conséquences seraient beaucoup plus graves. La destruction ciblée via un APT est une menace prise de plus en plus au sérieux (systèmes SCADA etc..)

On le voit, ces APT sont une réalité tangible, il ne se passe pas trois jours sans qu'on entende des journalistes clamer une (cyber)intrusion réussie quelque part.


 To be continued


Bloquer les APT: mission (im)possible - Partie 4/4
 A défaut de "silver bullet", une "kill chain"?
 Et demain?