Détecter les intrusions d’attaquants hautement qualifiés n'est pas une tâche facile. Elle suppose une surveillance avancée du trafic réseau, une analyse comportementale des journaux de points d'extrémité, et même des équipes dédiées à la chasse aux menaces qui recherchent manuellement tout signe pouvant révéler une intrusion. C'est ce que met en évidence un nouveau rapport de McAfee qui détaille une compromission à long terme découverte sur le réseau d'un client, révélée par une simple enquête menée sur une infection par un logiciel malveillant. Les chercheurs de McAfee ont baptisé cette campagne d'attaque « Operation Harvest » (Opération Moisson) parce que son objectif était l'exfiltration à long terme d'informations sensibles pouvant être utilisées à des fins militaires stratégiques et de propriété intellectuelle pouvant servir dans des processus de fabrication. Le groupe à l'origine de l'attaque utilisait Winnti, un programme de porte dérobée personnalisé qui a la réputation d’être partagé par plusieurs groupes APT chinois.

Sur la base d'une analyse des techniques utilisées dans l'attaque, les chercheurs de McAfee ont constaté d’importantes similitudes avec le groupe APT27 alias Emissary Panda, déjà connu pour le ciblage d’entreprises dans les secteurs de l'aérospatiale, de l’administration, de la défense, de la technologie, de l'énergie et de la fabrication, et le groupe APT41, également connu sous le nom de Barium et parfois de Winnti, d’après le malware. On pense que le groupe APT41 mène des campagnes de cyberespionnage pour le compte du gouvernement chinois. Mais celui-ci a également été identifié dans des attaques à motivation financière. Les deux groupes opèrent depuis de nombreuses années et sont très compétents en matière de mouvements latéraux, d'escalade de privilèges et de persistance. Dans cette attaque particulière, les pirates ont pénétré dans le réseau en compromettant l'un des serveurs Web de la victime. 

Cartographier, étendre et exfiltrer

Après avoir pris pied dans le réseau de l’entreprise ciblée, les pirates ont déployé sur le serveur des outils qui leur ont permis de cartographier le réseau et de commencer à s'étendre à d'autres systèmes. Parmi les outils trouvés par les chercheurs de McAfee, ces derniers mentionnent PSexec, qui permet d'exécuter des fichiers sur d'autres systèmes via le réseau, ProcDump, qui peut servir à extraire des informations sensibles de la mémoire RAM des processus, et Mimikatz, utilisé pour extraire les informations d'authentification de Windows. Tous ces outils sont gratuits ou open-source et sont parfois utilisés par les administrateurs système ou les pen-testeurs. Au cours de leur enquête, les chercheurs de McAfee ont également trouvés deux autres outils open-source - BadPotato et RottenPotato - utilisés par le groupe. Ces derniers utilisent des techniques d'escalade de privilèges pour exécuter du code avec des privilèges SYSTEM. 

Pour l'escalade des privilèges, les attaquants ont également déployé un programme backdoor appelé PlugX qui utilise une technique appelée DLL sideloading. Cette technique abuse de l'ordre de recherche des DLL programmées dans certaines applications, en essayant d'abord le répertoire courant. Donc, si une application est conçue pour charger une DLL portant un nom particulier à partir du même dossier, il suffit aux attaquants de remplacer cette DLL par une DLL malveillante, puis d'exécuter l'application légitime. L'avantage de cette technique, c’est que le code malveillant est chargé dans la mémoire d'un processus par ailleurs légitime. « Le fichier .exe est un exécutable valide et signé et devient donc un exécutable de HP (HP Customer participation) », ont déclaré les chercheurs. « Nous avons également observé que d'autres exécutables valides, de fournisseurs AV jusqu’aux fournisseur de logiciels vidéo, étaient utilisés. Quand l'exécutable est lancé, la DLL qui se trouve à côté est chargée. La DLL est valide, mais contient un petit crochet vers la charge utile qui, dans notre cas, correspond au fichier .bin. La DLL charge la configuration de PlugX et l'injecte dans un processus », ont encore expliqué les chercheurs.

Des liens avec des attaques antérieures

Le malware PlugX dissimule également sa communication avec le serveur de commande et de contrôle dans le trafic DNS, en exploitant les enregistrements DNS TXT. Les outils de défense du réseau peuvent facilement passer à côté de cet évènement s'ils ne recherchent pas également les anomalies dans les requêtes DNS. Sur certains systèmes, les privilèges SYSTEM acquis grâce aux outils Potato ont été utilisés pour créer un nouveau service système appelé « SysmainUpdate », qui imite un service légitime appelé SysMain associé au service Superfetch. « Le modèle exploite la technique de persistance en utilisant svchost.exe avec service.dll pour installer un service malveillant », ont déclaré les chercheurs. « Il semble que la DLL utilise plusieurs mécanismes pour prendre l'empreinte du système ciblé et éviter l'analyse dans la sandbox, ce qui rend la détection encore plus difficile. La DLL intègre plusieurs chaînes obfusquées décodées lors de son exécution. Une fois l'empreinte réalisée, le malware installe le service malveillant à l'aide des API RegisterServiceHandlerA puis SetServiceStatus, et enfin CreateEventA ». 

Cette technique a également été décrite dans un rapport publié en 2017 par Trend Micro sur les activités malveillantes attribuées au groupe Winnti. Les chercheurs de McAfee pensent aussi que la charge utile déployée dans la campagne sur laquelle ils ont enquêté appartient à la famille de malwares Winnti. Les pirates ont également utilisé l'interface Windows Management Instrumentation (WMI) dans PowerShell pour exécuter des commandes sur les systèmes, configurer des tâches planifiées et utiliser des comptes valides acquis grâce à l’outil Mimikatz. La variante PsExec utilisée par les attaquants n'est pas l'outil original de la suite Windows Sysinternals destinée aux administrateurs système, mais une réimplémentation open-source en Python qui semble avoir été copiée depuis GitHub. 

Des attaques très ciblées

Les données ont été collectées à partir de partages réseau et de systèmes compromis à l'aide de scripts batch, puis compressées avec RAR. Les attaquants ont soit exfiltré ces archives directement par leurs portes dérobées, soit les ont placées sur le serveur web compromis d'où elles pouvaient être consultées et téléchargées depuis l'extérieur du réseau. La chaîne User-Agent de l'outil utilisé pour télécharger ces archives avait une empreinte unique qui correspond également aux informations d'un rapport publié en 2015 par Dell SecureWorks, ce qui laisse penser que ces attaquants opèrent et mènent des campagnes depuis de nombreuses années. En fait, en enquêtant sur cet incident, les chercheurs de McAfee ont découvert une seconde attaque ciblée contre une autre entreprise du même pays utilisant un mode opératoire et des techniques très similaires. C’est pourquoi les chercheurs pensent que ces attaques faisaient partie d'une campagne plus vaste dans laquelle les attaquants ont réussi à maintenir l'accès aux réseaux des victimes pendant plusieurs années.

Cette pléthore de techniques avancées utilisées dans cette campagne liée à Winnti montre à quel point il est difficile de découvrir les intrusions de groupes APT expérimentés. La détection précoce de ces attaques nécessite une approche à plusieurs niveaux et des investissements importants dans divers types de technologies de surveillance et de détection. Malheureusement, le nombre d’entreprises qui peuvent se permettre de faire de tels investissements ou de mettre en place des équipes internes compétentes pour faire la chasse aux menaces est minime par rapport au nombre de victimes de menaces persistantes avancées. De plus, avec la montée en puissance des groupes de cyber mercenaires et l'adoption, ces dernières années, des techniques APT par les groupes de cybercriminels, toute entreprise, quelle que soit sa taille ou son secteur d'activité, peut devenir la cible d'attaques APT.