Table of contents
L’équipe Cyber Threat Intelligence de SEKOIA.IO a examiné en profondeur l’intrusion APT31 définie au début de 2021 lorsque le BfV (Bundesamt für Verfassungsschutz)¹ et McAfee² ont publié de nouvelles informations. Quelques mois plus tard, l’Agence nationale française de la cybersécurité (ANSSI) a également publié une courte publication avec plusieurs IoC³, montrant que le jeu d’intrusion était toujours actif et préoccupant car plusieurs agences nationales avaient été impliquées.
Tous ces IoC étaient principalement des adresses IP, et beaucoup d’entre elles semblaient être liées à des routeurs SOHO, principalement Packedge à l’époque. Avec cette observation, nous avons enquêté plus en profondeur pour voir si nous pouvions trouver plus d’infrastructures et d’implants utilisés par cet ensemble d’intrusion.
Un bref aperçu sur APT31
APT31 (alias Zirconium ou Judgment Panda) est un groupe de menaces persistantes avancées dont la mission est susceptible de recueillir des renseignements au nom du gouvernement chinois. Comme d’autres acteurs de l’État-nation, le groupe se concentre sur les données présentant un intérêt pour la RPC (République populaire de Chine) et ses ambitions stratégiques et géopolitiques, plutôt que sur des secteurs verticaux spécifiques.
Les adversaires chinois sont considérés comme l’un des cyber-acteurs les plus prolifiques de la planète parrainés par l’État. Selon les observations de Microsoft, de juillet 2020 à juin 2021, Les acteurs de la menace basés en Chine ont montré le plus grand intérêt à cibler les infrastructures critiques parmi toutes les autres menaces des États-nations⁴.
Figure 1. Chronologie des campagnes liées à APT31 rapportées publiquement
Comme le montre la figure 1 et conformément aux rapports publics disponibles, APT31 est actif depuis au moins 2013 et sa campagne 2021 ciblant de nombreuses entités françaises est toujours en cours.
BR|INT APT31
Même si la littérature publique à ce sujet ensemble d’intrusions est assez limité, APT31 est connu pour utiliser — entre autres vecteurs — le spear phishing pour prendre pied dans les réseaux des victimes. Bien que leurs campagnes récentes n’aient pas été techniquement sophistiquées, ils ont réussi à contourner les défenses du réseau en n’utilisant que des sites Web et des services légitimes pour héberger leurs implants (GitHub) et interagir avec eux une fois exécutés sur le poste de travail des victimes (utilisation de DropBoxAPI)⁵. Il a également été repéré en ciblant des organisations via des attaques par injection SQL, ainsi qu’en tirant parti des informations d’identification volées pour obtenir un accès initial.
APT31 et d’autres acteurs soutenus par l’État chinois ont récemment fait l’objet de déclarations d’attribution de la part de plusieurs gouvernements européens. En juillet 2021, le Royaume-Uni accusait le ministère chinois de la Sécurité d’État (MSS) de soutenir les activités du groupe APT31⁶. Presque au même moment, l’UE a détecté des cyber activités malveillantes aux effets significatifs qui ciblaient des industries européennes clés et les ont liées à APT31⁷. Dans les deux cas, les déclarations officielles mentionnaient APT31 aux côtés d’un autre groupe d’attaquants chinois – APT40.
De plus, les autorités soupçonnent APT31 d’être un groupe de sous-traitants travaillant directement pour le MSS chinois, voire des membres de la Force de soutien stratégique de l’Armée populaire de libération (APL), comme l’ont rapporté d’autres sources.
Chasse dans les empreintes de l’infrastructure APT31
APT31 est l’un des rares ensembles d’intrusions connus à avoir été vus compromettant les routeurs SOHO pour composer son infrastructure opérationnelle. Cela, depuis au moins novembre 2019, date à laquelle un échantillon de la porte dérobée utilisée sur les routeurs compromis a été téléchargé sur VirusTotal pour analyse (MD5 :77c73b8b1846652307862dd66ec09ebf).
Cependant, cet implant peut être beaucoup plus ancien car il n’y a pas de date de compilation associée aux fichiers ELF.
Les boîtiers de relais opérationnels (ORB) associés à cette infrastructure sont utilisés comme proxies pour les attaques frontales, la reconnaissance active et passive et également comme serveurs de commande et de contrôle pour plusieurs implants. Jusqu’à aujourd’hui, nous ne savons pas comment ils ont compromis ces routeurs. Il est probable qu’ils aient utilisé un mélange de vulnérabilités connues et inconnues pour réaliser l’exécution de code à distance afin de supprimer leurs implants et autres outils de redirection.
Nous avons trouvé des moyens et des heuristiques pour éclairer certaines parties de leur infrastructure et les suivre dans le temps. Les domaines C2 utilisés par cet ensemble d’intrusions ont plusieurs caractéristiques telles que :
- Modèles : de nombreux domaines avaient des chaînes techniques telles que « mise à jour », « vérification », « cloud » ou « service » ainsi que certaines marques d’IOT/routeur (Mikrotik, Netgear , Qnap, Nec).
- Configuration DNS : la plupart d’entre eux ne résolvent rien sans un sous-domaine approprié tel que « www », « api », « sso » etc.
- Fournisseurs DNS : APT31 utilise principalement quatre fournisseurs DNS : Monovm, Cloudflare, Topdns et plus récemment Hosteons, que nous n’avons vu utilisé que pour deux domaines jusqu’à présent.
- Faux inscrit et adresse e-mail associée : le nom est principalement composé comme un vrai nom (par exemple, Joseph Edwards) avec une adresse e-mail associée utilisant protonmail.ch, email.cz, post.cz ou inbox.lv.
- Le délai de résolution de ces domaines ne dépasse pas quelques jours, ce qui est également pertinent du point de vue d’un analyste.
Comme les domaines se résolvaient sur les routeurs SOHO, il était également possible de les suivre en utilisant cette particularité. En effet, il est relativement rare qu’un domaine de ces fournisseurs DNS pointe vers certains systèmes autonomes domestiques.
D’autre part, les appliances réseau compromises par APT31 ont des caractéristiques techniques (par exemple , des panneaux d’administration, des certificats spécifiques ou des bannières) permettant à quiconque de récupérer des milliers d’adresses IP en les utilisant. En utilisant des résolutions DNS passives sur ces adresses IP, il a été possible de découvrir de nouveaux C2 lorsqu’un FQDN observé pointant vers eux présentait les caractéristiques mentionnées précédemment.
Enfin, nous avons découvert près de 50 adresses IP et 34 noms de domaine suite à la publication de l’ANSSI, avec un chevauchement d’une adresse IP résolue par le domaine www.fwcheck[.]com. Le tableau ci-dessous résume les marques d’appliances réseau qui composaient l’infrastructure C2 utilisée par APT31 jusqu’en juillet 2021. La valeur de confiance dépend du nombre d’heuristiques (expliquées ci-dessus) qui correspondaient ainsi que du fait que d’autres sources mentionnaient déjà le C2 ou non.
Marque vue sur C2 | Nombre de C2 | Confiance |
Pakedge | 41 | Elevée |
CyberOAM | 3 | Elevée |
Netgear VPN firewall | 2 | Faible |
D-LINK | 1 | Faible |
Autres | 5 | Faible |
Depuis juillet 2021, nous observons une évolution de leur infrastructure. Ils ont quitté leur « infrastructure Pakedge » historique et l’ont déplacée vers de nouveaux clusters composés cette fois de plusieurs autres marques et serveurs de noms afin d’éviter l’illumination de l’infrastructure par les analystes.
Depuis lors, il est devenu plus difficile de suivre leurs traces bien que nous puissions encore voir plusieurs nouveaux C2 tels que neccloud[.]net — se résolvant en 5.252.176[.]102, un serveur sous l’égide de MivoCloud — ou netgearcloud[.] net, se résolvant sur une adresse IP nationale basée en Suède le 22 septembre 2021. Nous relions ces domaines à APT31 avec une grande confiance car ils correspondent à la plupart des heuristiques d’infrastructure établies au cours de l’enquête.
Cependant, il convient de noter que toutes leurs boîtes de relais opérationnelles ne sont pas résolues par des noms de domaine. Dès lors, la liste des IoCs fournie à la fin de ce billet de blog est évidemment non exhaustive et ne montre qu’une petite fraction de leur infrastructure opérationnelle utilisée pour des attaques en 2021.
Implants vus lors de la marche
En regardant les implants se connectant à cette infrastructure en open source , nous avons pu obtenir plusieurs implants, que nous évaluons ont été utilisés par APT31 lors de leurs opérations, tels que Cobalt Strike et un implant ELF surnommé « unifi-video » (MD5 : 4640805c362b1e5bee5312514dd0ab2b), imitant une marque IOT bien connue.
Figure 2. Liens entre certaines campagnes APT31, indicateurs et logiciels malveillants/outils de Centre de renseignement SEKOIA.IO.
Parmi les outils d’équipe rouge standard, APT31 semble utiliser Cobalt Strike comme un nétapes pour persister à l’intérieur du réseau de la victime. Comme le montre le tableau ci-dessous, plusieurs balises se connectant à « l’infrastructure Pakedge » ont été envoyées à VirusTotal emballées dans un PE à VirusTotal. Il convient de noter que, comme ils ont été compressés dans un fichier exécutable, le hachage correspondant ne peut pas être utilisé pour rechercher APT31 sur votre réseau.
Packed beacons MD5 hashes | Associated C2 |
f707759e05ab58296071ec50cc04c9fc | fdexcute[.]com |
dc30a177a104717d652a49887851f033 | api[.]ontracting[.]com |
362057b23605d83130bdeac749d404f2 | www[.]cypolicy[.]com |
0d71876ba535cde68c21aa9b3bb063d1 | www[.]winservicecloud[.]com |
Last but not least, our Cobalt Strike les trackers ont repéré deux auditeurs Cobalt Strike sur l’infrastructure découverte :
Marque vue sur C2 | Nombre de C2 | Description |
www[.]gsncloud[.]com | 68.146.18[.]127 | Cobalt Strike Malleable C2 Profil Jquery du 22/03/2021 au 29/ 04/2021 |
api[.]tfhjugo[.]com | 83.81.73[.]23 En | -têtes par défaut Cobalt Strike sur le port 443 du 21/04/2021 au 17/05/2021 |
Malheureusement, les configurations associées aux balises Cobalt Strike découvertes sont assez commun et nous a empêché d’obtenir des indicateurs plus discriminants liés à leur utilisation de Cobalt Strike.
Pendant la chasse, nous avons trouvé un implant ELF sur VirusTotal⁸ qui correspondait au C2 — codé en dur dans l’échantillon — www[.]moperfectstore[.]com. Nous attribuons ce domaine avec une confiance moyenne à élevée à APT31 , car il s’est résolu en appliances Pakedge et CyberOAM et correspond à certaines heuristiques de domaine décrites ci-dessus. Comme le domaine n’existait pas avant 2021, nous évaluons avec une confiance moyenne à élevée que l’implant a été utilisé par APT31.
Cet implant, baptisé « unifi-video » (MD5 : 4640805c362b1e5bee5312514dd0ab2b), est un ELF 64 bits dépouillé à liaison statique. Unifi-video est un logiciel légitime bien connu qui se décrit comme un « Système de gestion centralisé pour Ubiquiti UniFi « . Il fait donc écho à l’infrastructure d’appliance compromise utilisée par APT31.
Lors de l’analyse du fichier, nous avons remarqué que plusieurs routines se chevauchaient avec une porte dérobée Unix minimaliste connue nommée Rekoobe qui était auparavant couverte par quelques fournisseurs de cybersécurité tels que Dr Web⁹ et Intezer¹⁰.
Cependant, plusieurs questions restent sans réponse concernant la véritable connexion APT31 et Rekoobe.
Premièrement, nous ne savons pas au moment de la rédaction de cet article si le code source de Rekoobe est partagé entre différents acteurs de la menace ou si Rekoobe est exploité par APT31 depuis sa première découverte en 2015. De plus, si APT31 exploitait cet échantillon de Rekoobe, il y a aucune indication si cet implant est utilisé dans l’infrastructure ou pour persister dans un appareil d’une victime finale, quelque part.
ERRATUM (12/11/2021) : Alors qu’on pensait initialement que l’implant (4640805c362b1e5bee5312514dd0ab2b) était lié à Rekoobe, le chercheur en sécurité Billy Leonard a souligné sur Twitter [Billy Leonard’s tweet] qu’il s’agissait en fait de Tiny SHell [GitHub repo] que nous définitivement d’accord. Tiny SHell est utilisé par de multiples acteurs de la menace depuis plusieurs années maintenant et il n’est pas surprenant de voir APT31 l’utiliser.
Conclusion
Malgré le manque de littérature open source sur cet ensemble d’intrusions, APT31 reste une menace prolifique depuis des années pour de nombreuses entités occidentales travaillant sur des questions gouvernementales et stratégiques. À ce jour, nous n’avons pas une vision claire de ce qu’ils recherchent une fois qu’ils ont compromis les réseaux, que ce soit pour le pré-positionnement ou le vol de données.
Ce billet de blog visait à divulguer une partie de leur infrastructure opérationnelle et des outils utilisés cette année afin que vous puissiez rechercher d’éventuels compromis dans vos réseaux.
Si vous enquêtez également sur APT31, n’hésitez pas à nous faire part de vos réflexions à l’adresse Threintel@sekoia.fr pour mieux comprendre et traquer leur infrastructure.
Références externes
¹ Bedrohung deutscher Stellen durch Cyberangriffe der Gruppierung APT31
² MVISION Insights : activité potentielle APT31 contre des cibles politiques,
³ Campagne d’attaque du mode opératoire APT31 ciblant la France
⁴ Rapport sur la défense numérique de Microsoft pour l’exercice 21
⁵ APT-31 tire parti du thème du vaccin COVID-19 et abuse des services en ligne légitimes
⁸ Échantillon 4640805c362b1e5bee5312514dd0ab2b
⁹ Linux.Rekoobe.1¹⁰ Linux Rekoobe fonctionnant avec de nouveaux échantillons de logiciels malveillants
Tactiques, techniques et procédures (TTP)
- Exploitation d’application publique (T1190)
- Protocole de couche non applicative (T1095)
- Protocole de couche applicative (T1071)
- Injection de processus (T1055)
- Phishing (T1566)
- Compromettre Infrastructure (T1584)
- Acquérir une infrastructure (T1583)
- Développer des capacités : logiciels malveillants (T1587.001)
- Obtenir des capacités : logiciels malveillants (T1588.001)
IoCs
Les IOC sont fournis « tels quels ». Même si les noms de domaine sont un moyen fiable de chasser APT31 dans vos journaux réseau, les adresses IP peuvent produire de faux positifs car elles reposent principalement sur des routeurs domestiques légitimes. Tous les IOC sont téléchargeables aux formats JSON STIX2.1 et CSV sur le Github SEKOIA.IO : https://github.com/SEKOIA-IO/Community/tree/main/IOCs
Noms de domaine
netgearcloud[.]net neccloud[.]net netgear-update[.]com www[.]netgearupdatecheck[.]com ns[.]netgear-update[.]com www[.]winserviceupdate[.]com winserviceupdate[.]com www[.]pi-hole[.]us www[.]qnapphoto[.]com update[.]hardis-software[.]com www[.]moperfectstore[.]com info[.]miksupport[.]com api[.]ontracting[.]com www[.]fwcheck[.]com portal[.]icb-transer[.]com www[.]cypolicy[.]com remotetimecheck[.]com api[.]tfhjugo[.]com www[.]camupdatecheck[.]com www[.]jsonamazon[.]com www[.]serverupdatecheck[.]com www[.]nas-timesync[.]com www[.]mikupdate[.]com www[.]mikrotikupdate[.]com www[.]winservicecloud[.]com www[.]sophosfwupdate[.]com www[.]deviceupdatecheck[.]com sso[.]futuremixed[.]com futuremixed[.]com support[.]deviceupdatecheck[.]com www[.]figaro-news[.]com www[.]switch-netgear[.]com www[.]veritasdiag[.]com fdexcute[.]com www[.]fdexcute[.]com www[.]miksupport[.]com status[.]veritasdiag[.]com www[.]deviceupdatesupport[.]com www[.]keys-networks[.]com srv[.]keys-networks[.]com keys-networks[.]com www[.]oslookup[.]com www[.]gsncloud[.]com
IP Addresses
213[.]21[.]100[.]188 108[.]46[.]133[.]103 108[.]54[.]184[.]30 116[.]86[.]137[.]232 158[.]174[.]170[.]19 184[.]75[.]129[.]113 185[.]129[.]252[.]187 185[.]130[.]165[.]59 185[.]89[.]55[.]24 185[.]96[.]198[.]75 188[.]165[.]73[.]52 189[.]121[.]150[.]254 213[.]238[.]234[.]249 217[.]210[.]180[.]113 217[.]211[.]53[.]251 45[.]147[.]229[.]194 50[.]71[.]100[.]164 58[.]182[.]61[.]137 58[.]96[.]237[.]98 71[.]64[.]151[.]132 73[.]229[.]137[.]54 78[.]82[.]247[.]37 81[.]227[.]88[.]108 81[.]232[.]51[.]161 81[.]234[.]227[.]62 81[.]236[.]182[.]199 81[.]83[.]4[.]48 82[.]127[.]26[.]151 82[.]136[.]76[.]142 83[.]253[.]189[.]234 83[.]81[.]73[.]23 84[.]23[.]132[.]127 85[.]166[.]160[.]50 85[.]226[.]191[.]68 85[.]229[.]70[.]242 86[.]4[.]247[.]233 88[.]129[.]239[.]96 88[.]129[.]39[.]248 88[.]88[.]141[.]177 89[.]31[.]225[.]131 89[.]31[.]228[.]228 89[.]31[.]228[.]238 90[.]224[.]137[.]58 91[.]117[.]133[.]53 91[.]235[.]247[.]248 93[.]240[.]145[.]166 95[.]236[.]16[.]215 95[.]34[.]0[.]182 96[.]89[.]114[.]192 98[.]128[.]185[.]162 99[.]252[.]170[.]14 68[.]146[.]18[.]127 5[.]252[.]176[.]102
Yara Rules
rule unk_apt31_tsh_2021 {
meta:
description = "Detect APT31-linked TSH sample. This rule is quite specific with the $s3 string. We would advise removing this string to cover other TSH samples."
version = "1.0"
creation_date = "2021-10-11"
modification_date = "2021-10-11"
classification = "TLP:WHITE"
hash = "4640805c362b1e5bee5312514dd0ab2b"
source="SEKOIA.IO"
version="1.0"
strings:
$s1 = { C6 00 48 C6 40 05 49 C6
40 01 49 C6 40 06 4C C6
40 02 53 C6 40 07 45 C6
40 03 54 C6 40 08 3D C6
40 04 46 C6 40 09 00 }
$s2 = { C6 00 54 C6 40 03 4D C6
40 01 45 C6 40 04 3D }
$s3 = "www.moperfectstore.com"
condition:
int32be(0) == 0x7f454c46 and
filesize < 1MB and filesize > 900KB and
all of them
}
rule apt_misp_apt31_orb_2021 {
meta:
description = "Detects APT31 ORB implant"
version = "1.0"
creation_date = "2021-10-11"
modification_date = "2021-10-11"
classification = "TLP:WHITE"
hash = "77c73b8b1846652307862dd66ec09ebf"
source="SEKOIA.IO"
version="1.0"
strings:
$s1 = "mv -f %s %s ;chmod 777 %s"
$s2 = "GET /plain HTTP/1.1"
$s3 = "exc_cmd time out"
$s4 = "exc_cmd pipe err"
$s5 = { 2e 2f [1-10] 20 20 64 65 6c }
condition:
int32be(0) == 0x7f454c46 and
filesize < 800KB and filesize > 400KB and
4 of ($s*)
}
Merci d’avoir lu cet article. Vous pouvez également lire notre article sur :