lundi 8 avril 2013

A l'assaut ! Des chercheurs attaquent APT1.

De nombreuses nouvelles informations sur le groupe d'attaquants APT1 ont suivi la publication de Mandiant que j'évoquais précédemment dans ce billet.

L'un des plus intéressants à ce jour, d'un point de vue forensic, était celui-ci. Il remettait en cause beaucoup de faits énoncés par Mandiant, de façon plutôt bien rédigée.

Un nouveau white paper vient de retenir mon attention, publié par malware.lu et itrust consulting. Ces derniers se sont lancés dans l'étude des attaques APT1 avec une approche plus surprenante qui consiste à... attaquer les attaquants.

Je ne chercherais pas ici à discuter des aspects légaux et éthiques d'une telle action. Par contre, il est extrêmement intéressant de lire ce papier pour voir un peu ce qui se cache "de l'autre côté". Il semble important cependant de souligner que les chercheurs n'ont jamais attaqué de serveur compromis (sous-entendu : un serveur appartenant à un tiers, compromis par APT1) et ont communiqué avec les CSIRT/CERT associés aux cibles des attaquants.

Passons un peu au crible (et en français, c'est le but de cette série de posts sur APT1 après tout...) ce document, point par point.

Phase de collecte d'information:

Les chercheurs se sont basés en partie sur les recherches de MANDIANT. Ils ont vu que le célèbre outil d'administration distant POISON IVY était utilisé et ont décidé d'écrire un scanner de serveurs Poison Ivy.

D'un point de vue technique, rien de bien compliqué : 100 envois de 0x00 vers un port spécifique et une adresse IP permettent de savoir qu'on a affaire à un serveur Poison Ivy s'il répond par 100 octets suivis de 0x000015D0.

Ces scans ont été lancés sur une plage d'adresse IP assez large à Hong Kong pour finalement restreindre leurs recherches à 6 plages particulières hébergeant des serveurs Poison Ivy.

Il nous est signalé au passage que la recherche n'était pas si simple : les attaquants stoppent leurs serveurs c&c lorsqu'ils ne s'en servent pas. Un graphe nous présente les horaires d'"ouverture" des c&c : principalement de 2 à 10h UTC+1. (Europe occidentale)

Sachant qu'entre Paris et Beijing le décalage horaire est de 7h en hiver, 6h en été, on est à peu près sur des horaires de bureau en Chine.

L'attaque.

Un descriptif de Poison Ivy nous est fait ensuite dans le document, pour rapidement arriver sur un aspect plus intéressant, une vulnérabilité d'exécution de code distant sur les serveurs c&c Poison Ivy. Se basant sur un exploit existant d' Andrzej Dereszowski (présent dans Metasploit), les chercheurs ont développé leur propre exploit, fourni dans le document.

Les portes des c&c Poison Ivy se sont alors ouvertes :-)

Une fois connecté au serveur, il fut constaté que le serveur n'avait pas d'adresse IP publique. Cela signifie que le demon Poison Ivy est caché derrière un proxy, utilisant du port forwarding pour masquer la véritable adresse IP du serveur de c&c. Autre constatation, la machine était sous VMware, permettant ainsi de masquer l'adresse IP du controleur.

Le schéma fourni dans le document est le suivant:

struct.png

Après quelques jours, APT1 a détecté cette compromission, principalement parce qu'une machine accédait au c&c sans passer par le proxy. Les chercheurs ont alors dû changer leur méthode et sont passés par le proxy, en créant leur propre shellcode.

Ils ont ensuite installé un keylogger sur le serveur Poison Ivy, pour logger les identifiants et mots de passe d'accès RDP au proxy.

Une fois sur le proxy, un dump des Event logs Windows a permis de découvrir 384 adresses IP uniques.

L'analyse des données

Une collecte massive de données a été effectuée : fichiers, logs, outputs netstat, etc.etc. puis divisée en 2 catégories : les infos sur les outils des attaquants, et les infos sur les cibles des attaquants.

Une liste des outils des attaquants est fournie, avec un bref descriptif. Je passe sur cette partie, à noter quand même l'analyse d'un RAT "homemade" nommé TERMINATOR/Fakem RAT) découvert sur un serveur proxy.

Ce qui nous intéresse surtout dans ce document, ce sont les informations sur les cibles.

  • Les attaquants semblent utiliser un couple serveur proxy/serveur c&c pour chaque cible. Lorsqu'une cible découvre l'adresse IP d'un proxy, cette adresse est réassignée à une autre cible.
  • Les secteurs d'activité des cibles: sociétés privées, publiques, institutions politiques, activistes, associations et journalistes.
  • Sur le serveur Poison Ivy, un répertoire est créé au format: <NOM DE LA CIBLE>\<NOM D'UTILISATEUR>. (exemple: E:\SOCIETEBLABLA\borislezombie)

Sans surprise, les documents trouvés dans ces répertoires sont aux formats PPT, XLS, DOC, PDF, JPG.

Parmi ces documents ont été découverts des diagrammes de réseaux, des couples login/pass, des cartes d'accès physiques, des listings d'incidents de sécurité, de politiques de sécurité, etc.

Les documents sensibles sont protégés par mots de passe selon un format prédéfini et assez facile à brute forcer.

Ce post n'a pas pour vocation de vous éviter de lire l'excellent paper de malware.lu et itrust consulting, en particulier de Paul Rascagnères.

Je remercie donc chaleureusement Paul pour cette étude qui nous en révèle un peu plus sur nos attaquants favoris... ;-)

jeudi 14 février 2013

APT ?

"APT" est un acronyme que l'on entend depuis plusieurs années. Le terme a été usé largement par les commerciaux et marketeux de plein de sociétés IT vendeuses de peur, mais a toujours fait rugir les spécialistes du domaine.

"APT" signifie "Advanced Persistent Threat". Personnellement, je préfère parler d'"attaque ciblée" ou, lorsque j'en discute avec des collègues étrangers, de "targeted attack".

On a lu tout et n'importe quoi sur le sujet, ce qui m'a décidé d'en parler un petit peu ici. Cela me permet aussi de sortir mon blog de sa torpeur et des ricanements bêtes de mes collègues qui me reprochent son inactivité et son usage "self-advertise" des derniers posts (ils ont raison, mais ne leur dites pas que je l'ai admis).

Alors l'APT, ou attaque ciblée, c'est quoi ? C'est une attaque ciblée sur une/des entreprises, qui se maintient dans le temps, dans le but de se maintenir sur le système pour y dérober de l'information sensible/stratégique.

Cette attaque se déroule en plusieurs phases, que nous allons énumérer succintement.

1. Définition de la cible et collecte d'informations

Le choix d'une cible semble relativement aisé (bien que cela puisse se complexifier rapidement avec certaines entreprises qui disposent de nombreuses filiales et/ou de sous-traitants), La collecte d'information à ce stade se focalise sur les informations publiques disponibles rapidement sur Internet : employés facilement atteignables par les réseaux sociaux (LinkedIn, Viadeo, mais aussi copainsdavant, Facebook, etc.), adresses IP publiques de l'entreprise et/ou de ses filiales, etc.etc.

Cela ressemble beaucoup à la phase de reconnaissance d'un bon vieux pentest.

2. Définition de la stratégie d'attaque

L'attaquant va se retrouver confronté à une problématique : comment pénétrer le système ? Un ensemble de questions se pose alors.

-> Quelle est la meilleure méthode selon lui pour infecter cette cible ? Les choix habituels possibles:

  • Attaque Watering hole ? (histoire de caser un des dernier terme des marketeux de Symantec) En gros cela consiste à infecter des sites Internet susceptibles d'être visités par la cible, afin d'infecter cette cible. Un exemple: admettons que je vise un grand constructeur automobile. En infectant le site d'un sous-traitant fabricant une pièce très spécifique nécessaire à la construction d'un véhicule, on peut imaginer que la page de cette pièce, sur Internet, sera principalement visitée par des professionnels en ayant besoin... Et donc par la cible ou l'un de ses concurrents.
  • Spear-Phishing : l'attaquant va cibler une ou plusieurs adresses e-mail d'employés, en leur envoyant un courrier attractif dont le but est d'être ouvert, afin de compromettre le poste de travail de l'employé. Cela se présentera souvent sous la forme d'un document Adobe PDF ou Microsoft Office permettant d'infecter le poste de travail.
  • Compromission directe du SI: l'attaquant se focalise ici sur la compromission d'un serveur web par exemple, ou d'autres ressources de l'entreprise accessibles depuis Internet. Généralement, il s'agira d'exploiter une vulnérabilité, présente sur un serveur, afin d'espérer pouvoir rebondir ailleurs dans le SI et aller vers l'information intéressante.
  • Attaque physique : Beaucoup plus rare... L'attaquant dispose par exemple d'un accès au parking souterrain de la cible, et va laisser trainer une/plusieurs clefs USB au sol, dans l'espoir qu'un employé la glisse dans son poste de travail... Devinez ce qu'il y a sur la clef ? Un beau petit malware bien sûr... Qui deviendra un point d'entrée dans la société.

Note: A l'heure actuelle, la compromission d'un SI par tout biais informatique est nettement favorisée par rapport aux techniques "à l'ancienne", à savoir soudoyer des sous-traitants pour avoir un accès physique aux machines (on peut imaginer qu'une femme de ménage puisse accepter facilement une certaine somme d'argent pour "simplement aller brancher une clef USB" sur un ordinateur...)

-> De quel laps de temps dispose-t-il ?

Plus l'attaquant dispose de temps, plus l'attaque sera discrète, tout simplement. Au lieu de noyer plusieurs employés de multiples mails, qui pourraient lever une alerte, un mail est envoyé de temps en temps... Autre exemple, quelques scans de ports par ci par là répartis sur une journée lèveront moins d'alertes que des milliers de scans en quelques heures.

3. L' attaque

Une fois toutes les décisions prises, l'attaquant se lance dans sa campagne d'attaque. Le but est d'obtenir un ou plusieurs accès au SI de l'entreprise. L'idéal consiste à infecter différents réseaux de l'entreprise, et d'y obtenir des droits élevés.

Il suffit parfois de peu pour compromettre tout un SI: un poste de travail avec un utilisateur loggé avec des droits d'administrateur permet souvent de rebondir sur de nombreuses machines et parties différentes du SI.

Bref, le but ici est d'obtenir des droits élevés sur une/des machines/serveurs de l'entreprise, et de pouvoir rebondir partout et ainsi pouvoir obtenir tout document intéressant.

Les attaques reproduisent souvent le même schéma :

- Compromission d'une machine - Elévation de privilèges : administrateur local, administrateur de domaine - Compromission des serveurs stratégiques du SI (Active Directory notamment)

4. La persistance

Une fois que l'attaquant "maitrise" bien les différentes parties du SI qui l'intéressent, sa première préoccupation est de s'assurer que son travail ne sera pas vain et qu'il pourra toujours revenir dans le réseau les jours suivants. Il va donc installer des RAT (Remote Administration Tools) ou des portes dérobées afin de toujours disposer d'accès. En général, plusieurs outils différents sont utilisés, augmentant les chances de se maintenir sur le système si l'une des backdoors était découverte.

A noter que l'attaquant peut très bien se créer des utilisateurs sur le réseau, ou utiliser des profils d'administrateurs existants pour rester discret.

5. Le vol de données

L'attaquant, arrivé à ce stade, dispose souvent de tous les droits sur le système d'information de l'entreprise. En tout cas, pour la blague, il dispose toujours de plus de droits que les pauvres "incident responders" qui vont devoir investiguer lorsque l'APT sera découverte.

La technique la plus courante ici pour exfiltrer de la donnée consiste à créer des archives chiffrées (RAR étant le format le plus courant) des données sensibles, puis à les transférer tranquillement à partir de l'un des clients du RAT installé sur la machine. Les attaquants exfiltrent la plupart du temps les données à partir d'une machine qu'ils ont plus ou moins dédié à cette activité.

Bref...

Bien des aspects des APT ne sont pas évoqués ici, ce billet se voulant générique.

Ce qui me chiffonne un peu, finalement, dans "APT", c'est le A. Pourquoi donc ? Tout simplement parce que :

  • les attaquants ne sont pas des dieux du code, du shell, ou de quoi que ce soit de vraiment technique.
  • les outils utilisés par les attaquants sont la plupart du temps très basiques, que ce soit pour la compromission, la persistance ou le vol de données. Il s'agit d'outils génériques connus de toute la communauté de la sécurité informatique et des Administrateurs Systèmes (PwDump ou PsExec pour ne citer qu'eux à titre d'exemple).
  • les RAT utilisés sont souvent des RAT génériques, tout juste retouchés pour contourner les anti-virus (un exemple : Poison Ivy). Rares sont les RAT spécifiquement développés pour des attaques ciblées (et du coup non disponibles à la vente sur des forums underground).
  • Les exploits utilisés pour les compromissions initiales sont souvent vieux, mais après tout, les entreprises patchent avec tellement de retard que ce n'est pas grave. Pas besoin de 0day comme le prétendent certains vendeurs de peur.

Le seul aspect "avancé" de ces attaques que je vois serait plutôt dans la structure même des groupes d'attaques : le fait d'être un groupe formé à attaquer, avec des personnes s'occupant des malware, d'autres personnes s'occupant des compromissions initiales, encore d'autres attaquants ne s'occupant que de la persistance et du rebond sur de nombreuses machines du SI compromis, et probablement de l'exfiltration des données. A cela s'ajoutent des administrateurs des serveurs de command&control et de toutes les structures informatiques nécessaires aux attaquants (enregistrements de noms de domaines dédiés, configuration de serveurs dédiés, etc.).

Joe Stewart, grand expert du domaine, estime que les plus grands groupes d'attaquants sont constitués de plusieurs centaines de personnes...

L'aspect le plus intéressant est celui sur lequel on en sait le moins : l'économie souterraine autour des APT. Quels sont les commanditaires de ces attaques (on le sait dans certains cas, et jamais dans d'autres) ? Comment sont rémunérés les attaquants ? Comment est structuré exactement le groupe d'attaquants lié à telle ou telle attaque ?

page 2 de 2 -