L’enquête sur la manière dont les attaquants ont réussi à compromettre le réseau interne de SolarWinds et à empoisonner les mises à jour logicielles de l’entreprise est toujours en cours, mais nous sommes peut-être un pas de plus pour comprendre ce qui semble être une attaque de la chaîne d’approvisionnement très méticuleusement planifiée et très sophistiquée.
Un nouveau rapport publié par ReversingLabs aujourd’hui et partagé à l’avance avec The Hacker News a révélé que les opérateurs derrière la campagne d’espionnage ont probablement réussi à compromettre l’infrastructure de construction logicielle et de signature de code de la plate-forme SolarWinds Orion dès octobre 2019 pour fournir la porte dérobée malveillante via sa version logicielle processus.
«Le code source de la bibliothèque affectée a été directement modifié pour inclure du code de porte dérobée malveillant, qui a été compilé, signé et livré via le système de gestion des versions de correctif logiciel existant», a déclaré Tomislav Pericin de ReversingLabs.
La société de cybersécurité FireEye a expliqué plus tôt cette semaine comment plusieurs mises à jour logicielles SolarWinds Orion, publiées entre mars et juin 2020, ont été injectées avec du code de porte dérobée (« SolarWinds.Orion.Core.BusinessLayer.dll » ou SUNBURST) pour effectuer la surveillance et exécuter des commandes arbitraires sur la cible systèmes.
FireEye n’a jusqu’à présent attribué publiquement l’attaque à aucun acteur spécifique d’un État-nation, mais plusieurs médias Des rapports ont épinglé la campagne d’intrusion sur APT29 (alias Cozy Bear), un groupe de hackers associé au service de renseignement étranger russe.
Injection sournoise de code malveillant
Bien que la première version contenant le logiciel Orion contaminé remonte à 2019.4.5200.9083, ReversingLabs a constaté qu’un version précédente 2019.4.5200.8890, publié en octobre 2019, comprenait également des modifications apparemment inoffensives qui ont servi de tremplin pour fournir la charge utile d’attaque réelle sur toute la ligne.
Classe .NET vide avant l’ajout de code de porte dérobée [ver. 2019.4.5200.8890] |
L’idée, selon Pericin, était de compromettre le système de construction, d’injecter tranquillement son propre code dans le code source du logiciel, d’attendre que l’entreprise compile, de signer les packages et enfin de vérifier si leurs modifications apparaissent dans la nouvelle version. mises à jour comme prévu.
Une fois confirmé, l’adversaire a ensuite pris des mesures pour mélanger le malware SUNBURST avec le reste de la base de code en imitant les fonctions existantes (GetOrCreateUserID) mais en ajoutant leurs propres implémentations afin de rester furtif et en les invoquant en modifiant une classe distincte appelée « InventoryManager » pour créer un nouveau thread qui exécute la porte dérobée.
De plus, les chaînes malveillantes ont été masquées à l’aide d’une combinaison de compression et d’encodage Base64 dans l’espoir que cela empêcherait les règles YARA de détecter des anomalies dans le code et de passer inaperçues lors d’un examen par un développeur de logiciel.
« Les attaquants ont connu beaucoup de problèmes pour s’assurer que leur code semble appartenir à la base de code », a déclaré Pericin. « Cela a certainement été fait pour masquer le code de l’audit par les développeurs de logiciels. »
Comment le compromis s’est-il produit?
Cela implique que non seulement les attaquants avaient un degré élevé de familiarité avec le logiciel, mais aussi le fait que son système de gestion des versions de logiciel existant lui-même a été compromis – car la classe en question a été modifiée au niveau du code source pour créer un nouveau logiciel. mise à jour contenant la bibliothèque de porte dérobée, puis signée et finalement publiée pour les clients.
Cela soulève également plus de questions que de réponses dans la mesure où un changement de cette ampleur n’aurait pu être possible que si le système de contrôle de version était compromis ou si le logiciel contaminé était placé directement sur la machine de construction.
Bien que la manière dont les attaquants aient eu accès à la base de code ne soit pas immédiatement claire, la divulgation par le chercheur en sécurité Vinoth Kumar sur le serveur de mise à jour de SolarWinds accessible avec le mot de passe « solarwinds123 » prend une nouvelle signification étant donné le chevauchement des chronologies.
Kumar, dans un tweeter le 14 décembre, a déclaré avoir informé la société d’un référentiel GitHub accessible au public qui divulguait les informations d’identification FTP du site Web de téléchargement de la société en texte clair, ajoutant qu’un pirate pourrait utiliser les informations d’identification pour télécharger un exécutable malveillant et l’ajouter à une mise à jour SolarWinds.
«Ce repo Github était ouvert au public depuis le 17 juin 2018», a déclaré Kumar, avant que la mauvaise configuration ne soit corrigée le 22 novembre 2019.
« SUNBURST illustre la prochaine génération de compromis qui prospèrent grâce à l’accès, la sophistication et la patience », a conclu Pericin. «Pour les entreprises qui exploitent des entreprises précieuses ou produisent des logiciels essentiels pour leurs clients, l’inspection des logiciels et la surveillance des mises à jour pour détecter tout signe d’altération, d’ajout malveillant ou indésirable doivent faire partie du processus de gestion des risques.
«Se cacher à la vue derrière une marque de logiciel mondialement connue ou un processus critique de confiance donne à cette méthode un accès qu’une campagne de phishing ne pourrait que rêver d’atteindre», a-t-il ajouté.
Plus de 4000 sous-domaines compromis par SUNBURST
SolarWinds a déclaré que jusqu’à 18000 de ses clients pourraient avoir été touchés par l’attaque de la chaîne d’approvisionnement tout en exhortant les utilisateurs de la plate-forme Orion à mettre à jour le logiciel vers la version 2020.2.1 HF 2 dès que possible pour sécuriser leurs environnements.
Selon le chercheur en sécurité R. Bansal (@ 0xrb), plus 4000 sous-domaines appartenant à des entreprises et des établissements d’enseignement de premier plan ont été infectés par la porte dérobée SUNBURST, y compris celles d’Intel, de NVIDIA, de la Kent State University et de l’Iowa State University.
Pour aggraver les choses, un code malveillant ajouté à une mise à jour logicielle Orion peut être passé inaperçu par les logiciels antivirus et autres outils de sécurité sur les systèmes ciblés grâce à SolarWinds. conseil de support, qui indique que ses produits peuvent ne pas fonctionner correctement à moins que leurs répertoires de fichiers ne soient exemptés des analyses antivirus et des restrictions d’objet de stratégie de groupe (GPO).
«Les acteurs prolifiques s’attaquent constamment à des clients à revenus élevés comme SolarWinds, car ils voient une chance accrue de réaliser des bénéfices plus importants en vendant l’accès à des partenaires de ransomware et à d’autres acheteurs», société de cybersécurité Intel 471 m’a dit, répondant à la possibilité que des criminels vendent l’accès aux réseaux de l’entreprise sur des forums clandestins.
« Que ce soit en exploitant des vulnérabilités, en lançant des campagnes de spam ou en tirant parti de l’utilisation abusive des informations d’identification, l’accès est généralement annoncé et vendu aux enchères au plus offrant pour un profit. Reste à savoir si c’était la motivation de l’incident actuel de SolarWinds. »