Après un temps de pause (l’été, les vacances…), dans cet article, je vais reprendre une partie des éléments qui faisaient partie du cours que j’ai donné à l’EFREI jusqu’à 2022 (code de cours ST2HFI/ST2APM en fonction des années). Le cours était orienté réponse à incidents en entreprise, et fatalement au moment de parler d’APT il y avait une petite parenthèse concernant “l’attribution”. Je profite du format blog pour donner un petit peu plus d’informations, basées sur ma connaissance (peut-être imparfaite) du sujet et en compilant des données disponibles sur Internet. Je m’efforce de donner des liens vers des sources lorsque cela est possible. Enfin, il s’agit avant tout d’une tentative de vulgariser un domaine qui n’est pas du tout simple, certaines explications peuvent être sensiblement incomplètes dans cette optique. Bonne lecture :)

Attribution ? Kézako

Alors déjà, de quoi on parle quand on dit “attribution” ? Au Cluedo on dirait “C’est le Colonel Moutarde”. Mais comment on a fait pour arriver à cette conclusion ?

On se base sur de nombreux éléments, car NON, faire du GeoIP sur l’adresse IP qui apparaît dans les fichiers journaux que l’on est en train d’analyser ne suffit pas. A peu près n’importe qui ayant vu un film sorti ces 20 dernières années et proposant une scène de hacking a déjà entendu parler de “serveurs de rebond” (ou tout autre terme voisin, certains auront même entendu parler de “proxy”). Pour faire simple, dans ce cas de figure, le pirate va lancer ses attaques depuis un serveur qu’il aura déjà piraté (situé potentiellement dans un autre pays) et qu’il contrôle. C’est l’adresse IP de ce serveur piraté - le serveur de rebond - qui apparaîtra comme étant à l’origine des attaques et que la victime verra dans ses journaux de connexion. Si ce serveur est au Zimbabwe et sert à hacker un site en Islande, il sera alors facile de dire que c’est à cause des pirates Zimbabwéens, alors que ce serveur aura peut-être été piraté par un Péruvien. Si une analyse des journaux de ce serveur Zimbabwéen est faite, on y retrouvera peut-être l’adresse IP de notre hacker Péruvien. Mais pour ça, encore faut-il que les services de police des différents pays coopèrent (que la police Islandaise demande une coopération avec son homologue du Zimbabwé, et à la fin qu’eux mêmes demandent la même chose au Pérou). Et quid si on ajoute des maillons à la chaine ? Ca devient très vite un beau bordel.

A cet effet, le framework MICTIC a été proposé (des évolutions ont suivi) :

  • (M)alware
  • (I)nfrastructure
  • (C)2
  • (T)elemetry
  • (I)ntelligence
  • (C)ui bono (à qui profite le crime ?)

Une grosse partie des éléments venant alimenter ce framework sont des IOC (indicateurs de compromission - des éléments qui, lorsqu’ils sont rencontrés sur un système d’information, peuvent laisser à penser que ce dernier est compromis).

(M)alware

On va commencer par s’intéresser aux outils laissés par les attaquants pour contrôler le réseau ciblé et/ou y revenir. L’essentiel de ce boulot consiste en du reverse engineering afin de déterminer le fonctionnement de l’outil en question (ce qu’il fait, comment, avec quoi il communique). L’analyse des chaines de caractères des fichiers binaires peut parfois donner des éléments (“Reverse engineering with strings”). Evidemment, s’arrêter à une chaine “(c) Gentilkiwi” sur un outil trouvé sur un système compromis ne veut pas dire que c’est lui le responsable. Mais certaines typos dans des chaines de caractères (voire même l’alphabet utilisé) peuvent donner des indications (mais il ne faut pas s’arrêter à ça, n’importe qui peut faire du Google Translate). Des problèmes dans la chaine de compilation peuvent aboutir à des situations où un binaire comportant des symboles de debug se retrouve dans la nature et permet de donner un peu plus d’informations (et malheureusement ça peut arriver à tout le monde). Bref, l’analyse de malwares peut déjà nous aiguiller sur le ou les logiciels utilisés pour une intrusion donnée, ou en tout cas la famille de malwares vu que ces derniers peuvent avoir évolué entre temps (mais des techniques de rétro conception permettent d’identifier des similitures dans différents binaires). Si l’on retrouve régulièrement les mêmes outils sur de nombreuses scènes de crime, il y a fort à parier que l’on a affaire aux mêmes personnes, ou en tout cas la même organisation (on a tendance à parler “d’intrusion set” ou “mode opératoire d’attaque” (MOA)). Autant dire que depuis que Cobalt Strike figure en bonne place dans le Hit Parade des C2, et que la plupart des groupes l’utilisent, ça devient plus difficile de s’y retrouver (mais certains restent attaché au fait-main).

(I)nfrastructure

Ici ça concerne ce que l’on peut tirer de l’environnement technique “réseau” visible par la cible. Donc globalement des noms de domaine et potentiellement des adresses IP. Avec certaines techniques passives de découverte (que l’on applique également en tant qu’attaquant pour cartographier l’environnement réseau de la cible), on peut remonter le temps, et tomber sur une information susceptible de trahir l’attaquant. Par exemple, avec un historique pDNS (passive DNS) on peut trouver d’anciennes adresses IP correspondant à un domaine utilisé par l’attaquant, dont - peut-être - une adresse IP qu’il aurait préféré ne pas laisser fuiter utilisée au moment où il testait ses outils quelques mois avant. L’adresse IP du serveur de C2 lui-même plutôt que l’adresse IP de son redirecteur (serveur jetable qui est normalement le seul visible par la victime et qui vient se placer entre elle et le serveur de l’attaquant) est un exemple d’élément que l’on peut ainsi obtenir. RGPD oblige, il est maintenant plus compliqué d’avoir l’adresse mail ou le nom de la personne ayant enregistré un domaine, mais on peut aussi trouver comme ça d’autres domaines enregistrés par la même personne, dont un susceptible d’être mal configuré. La liste des choses que l’on peut remonter de cette manière est assez longue, et je ne peux que recommander la lecture du blog IntrusionTruth qui doxxe ainsi des hackers (à priori) Chinois en détaillant les erreurs commises.

(C)2

L’analyse des serveurs de contrôle (CC ou C2) est déjà plus délicate à faire par tout un chacun et est généralement réservée à des services d’enquête. Une fois qu’il a été possible de déterminer qu’un serveur est situé chez un hébergeur donné, disons OVH, un service de police est en mesure d’installer des outils d’analyse des flux pour déterminer d’où viennent les connexions, voire dans certains cas déterminer ce que font les attaquants en temps réel sur la machine (c’est ce qui ressort de la lecture des accusations d’APT29 pour les ingérences dans l’élection présidentielle américaine de 2016). Il est fréquent que les personnes utilisant ces serveurs d’attaque commettent des erreurs opérationnelles (genre aller consulter leur compte Facebook personnel depuis ces machines). Si les machines sont saisies, c’est l’analyse des logs qui va donner des informations.

(T)élémétrie

La télémétrie quant à elle est généralement intégrée aux outils de sécurité (Antivirus/EDR) et donc consultable par les éditeurs de ces solutions. Une erreur que certains groupes commettent, est de ne pas penser à désactiver la télémétrie lors de la phase de mise au point de leurs outils (voir si l’implant contourne bien l’antivirus X). Sauf que l’antivirus aura peut être un doute et soumettra le fichier à l’éditeur (avec tout un tas d’autres éléments dont des adresses IP). Plus tard, le même fichier est exécuté sur une machine cible, la même télémétrie remonte chez l’éditeur AV. Il est rare que ça serve effectivement à faire de l’attribution, puisque l’éditeur récolte beaucoup trop de données comme ça chaque jour, mais ça peut peut permettre de faire une forme de rétrohunt (une recherche de machines compromises à grande échelle en se basant sur des données historiques). Bien que cela fasse débat, une société éditant un antivirus a été soupçonnée d’avoir récolté ainsi des outils d’attaque stockés négligement par un employé ayant la collectionnite aigüe.

(I)ntelligence

Ce terme concerne ce que les services de renseignement (ou en tout cas, des entités ayant accès à plus d’informations que le grand public) sont capables d’obtenir comme informations, et ne sont généralement pas publiques. Les deux principales concernent l’interception de trafic réseau et les actions offensives ciblant les infrastructures de l’attaquant (voir Code Pénal: 323-8). Un service de renseignement disposant de capacités d’interception étendues (pour ne pas dire “globales”) peut voir tout ou partie du trafic internet à un instant T. En tout cas, les métadonnées (pour faire simple, les IP/ports d’une connexion à un serveur: si les données sont chiffrées, dans la majorité des cas ça le restera pour eux). Ce service sera donc en mesure de déterminer quelle adresse IP se connecte au port d’administration du serveur C2 utilisé par l’attaquant. Et si vraiment sa visibilité du trafic internet est complète, il doit même pouvoir être en mesure de le savoir même en cas d’utilisation de serveurs de rebond. Exception faite de l’utilisation de solutions type Tor/VPN qui permettent de décorréler toutes ces informations (ça serait beaucoup trop chiant à poser par écrit, mais on peut voir ça comme du blanchiment de connexion). L’autre point concernant les actions offensives, c’est qu’il est fréquent que dans des pays démocratiques, seuls les (certains?) services de renseignement soient dispensés d’autorisation écrite de pentest pour cibler des infrastructures hostiles. Certaines choses sont régulièrement mises sur le tapis concernant le “hack-back” visant à autoriser une entreprise ciblée par des pirates à contre-attaquer, mais si vous avez lu attentivement tout ce qui précède, vous aurez vite compris que ces entreprises n’auront pas toutes les billes et ont plus de chances d’attaquer un truc qui n’a rien demandé à personne (de là à déclencher un incident diplomatique, on est pas loin). En 2018, une information concernant un service de renseignement “occidental” (identifié plus tard comme étant l’AIVD Hollandais) ayant piraté les caméras d’un service d’espionnage Russe au moment où ils s’en prenaient aux élections américaines.

(C)ui bono

A qui profite le crime ? Dans le cas d’intrusions motivées par l’argent direct (la criminalité), la question ne se pose pas trop, mais l’attribution pour le grand public envoie moins du rêve quand on sait que c’est Gros Tony qui est derrière l’attaque de la Mairie de Trifouillis-les-Oies en exigeant une rançon de 5 bitcoins. L’attribution (géo)politique a davantage l’oreille des gouvernements dans la mesure où elle peut servir de leviers (parfois en coulisses, mais certains états n’hésitent plus à exposer des groupes APT en public, avec des posters “Wanted” du FBI). Mais les enjeux sont également tout autres. En effet, on l’a vu plus haut, certains états hostiles n’hésitent plus à venir interférer dans la vie politique de démocraties (ça n’empêche pas de s’espionner entre alliés, ça permet de savoir ce qui se passe dans la tête de l’autre). (https://www.fbi.gov/wanted/cyber/apt-41-group) (https://www.fbi.gov/wanted/cyber)

False flags

Alors maintenant, quid des “false flags” (attaques où l’on va planter des faux indices pour incriminer quelqu’un d’autre) ? Ca a déjà eu lieu par le passé, mais généralement l’arnaque se fait découvrir bien assez vite en raison d’incohérences dans la chaine. En 2015 l’attaque sur TV5Monde a été revendiquée par le “Cybercaliphate”. Quelques mois après les attentats ciblant Charlie Hebdo, une attaque informatique ciblant un média français avait tout pour plaire mais très vite ont fuité dans la presse des IOC (indicateurs de compromission) dont des hashs et des noms de fichiers utilisés durant l’attaque, qui correspondaient davantage à un mode opératoire d’APT28 (en gros, un service de renseignement Russe).

Plus récemment, un groupe prétendument Chinois aurait ciblé des entreprises en Israël en se faisant passer pour un groupe Iranien. Le rapport de Mandiant/Fireeye mentionne différents points qui les ont fait tiquer, dont du Google Translate sur des chaines de caractères qui ne correspondent pas à ce qu’un locuteur natif Farsi aurait écrit, l’utilisation d’outils appartenant effectivement à un groupe APT Iranien, mais ayant fuité sur Telegram (donc n’étant plus leur exclusivité). Bref, en gros c’est limite la version numérique du “OMAR MA TUER”. Le hic c’est que d’autres techniques mises en oeuvre durant cette attaque ont été relevées et correspondent au mode opératoire d’un groupe Chinois connu. Même le secteur d’activité de ces entreprises israéliennes est plus cohérent avec des intérêts Chinois (espionnage industriel principalement).

En conclusion

si l’attribution d’une attaque est vraiment requise, elle ne repose pas sur des éléments simples et exige de recouper de nombreuses informations entre elles, certaines n’étant pas forcément accessibles à tout le monde. Le framework “MICTIC” a évolué pour prendre en compte certaines évolutions, notamment la partie liée aux “leaks” apportant des informations sur l’outillage, la méthodo ou encore les personnes (shadow brokers, leaks de Conti, …), mais ça donnera probablement lieu à une mise à jour de cet article plus tard.

Note additionnelle: la plupart des “influenceurs” essaient de refourguer des abonnements à des VPN qui peuvent être utilisés pour justement dissimuler sa provenance; le plus souvent pour accéder à du contenu limité géographiquement (netflix entre autres), mais ça peut également servir comme premier niveau d’obfuscation pour une attaque. Par contre, ne jamais croire les histoires comme quoi ils ne gardent pas de journaux :)