Un indicateur est une affirmation, pas un fait – et l’avis couvrant votre propre réseau est celui que vous pouvez le moins vous permettre d’accepter sans contrôle.
J’ai passé deux ans à répondre aux incidents et à faire des renseignements sur les menaces, et la seule habitude que je garderais si je devais abandonner toutes les autres est aussi la plus ennuyeuse. Je n’agis pas sur la base d’une information tant que je ne l’ai pas comparée à ce qu’elle prétend décrire. C’est lent. C’est fastidieux. Presque personne ne le fait, car la vérification coûte le temps exact que l’aliment était censé économiser. Alors, nous lisons le rapport, acquiesçons et passons à autre chose. Cela fonctionne bien la plupart des semaines. Les semaines où ce n’est pas le cas sont celles dont je me souviens, et celle à laquelle je reviens sans cesse a commencé avec un flux qui semblait complètement sûr de lui-même et qui l’avait à l’envers.
Un cluster dans lequel le flux s’est trompé
Je cartographiais l’infrastructure derrière une opération de chargement, balayant un seul port de service via une plate-forme commerciale. Il a restitué un cluster d’hôtes ; tous ont étiqueté la même chose : Chalubo RAT. L’étiquette ne m’a pas arrêté. Les métadonnées l’ont fait. Chaque hôte du cluster portait une date de première visualisation, jour près.
La véritable infrastructure n’a jamais l’air aussi propre. Les opérateurs en lèvent quelques-uns à la fois, pendant des semaines, chaque fois qu’ils y arrivent. Un cluster entier partageant une date de première visualisation signifie presque toujours que vous regardez le jour où le pipeline du flux a ingéré le lot, et non le jour où quelqu’un a réellement vu ces hôtes en direct. Alors maintenant, j’avais deux choses auxquelles je ne faisais pas confiance : le nom de famille et le rendez-vous trop parfait. Le moyen le plus simple de régler le problème était de fermer le flux et d’aller examiner le malware.
Chalubo est un botnet Linux. Il force SSH et génère du trafic DDoS. Ce que j’avais devant moi était un chargeur de shellcode Windows, une variante de DonutLoader, le genre de chose qui se trouve à l’avant-garde d’une intrusion de ransomware. Plateforme différente, travail différent. S’appeler l’un l’autre n’est pas un quasi-accident. C’est une erreur de catégorie.
Je l’ai donc fait exploser dans un laboratoire isolé, capturé le trafic, cartographié le C2 et extrait la configuration. Il parlait d’un protocole qui lui est propre : livraison de charge utile sur un canal personnalisé, une balise stéganographique sur un second, sur un cluster de dix hôtes, avec un format de configuration qui n’avait rien à voir avec Chalubo. La raison de la mauvaise étiquette s’est avérée terne. La règle du flux pour ce port saisie sur le port plus un motif lâche, mon chargeur l’a déclenché et l’étiquette s’est propagée sur tout le lot avec la date d’ingestion agrafée.
Ce n’est pas une faute pour le vendeur. Il est véritablement difficile d’identifier les familles de logiciels malveillants sur l’ensemble d’Internet. Les dégâts commencent une étape plus tard, peu importe ce que le lecteur fait avec cette balise. Croyez-le, et vous passez la semaine à vous renforcer contre un botnet Linux DDoS tandis qu’un précurseur de ransomware Windows reste tranquillement sur votre réseau. Mauvaise menace. Mauvaises priorités. Le flux n’est pas simplement revenu vide. Il a orienté la réponse dans la mauvaise direction, avec une confiance totale et un logo familier. Rien dans l’étiquette ne semblait faux. Le dossier était la seule chose qui disait le contraire.
La même lacune, dans un avis fédéral
Pendant un certain temps, j’ai considéré cela comme un problème commercial, la taxe que vous payez pour acheter des informations auprès d’un fournisseur qui fait des économies à grande échelle. Ensuite, la même forme est apparue dans l’une des meilleures sources que nous obtenons gratuitement.
Plus tôt cette année, j’ai passé du temps au sein de l’avis conjoint du FBI et de la CISA sur Ghost, ou Cring selon qui le nomme, une équipe de ransomwares qui frappe des organisations dans plus de soixante-dix pays. Comme tout le monde, j’ai d’abord ouvert le PDF. Son tableau d’indicateurs s’intitule littéralement « MD5 File Hashes » : 14 échantillons, chacun épinglé sur un MD5 et rien d’autre. MD5 est en panne depuis des années. C’est la raison pour laquelle la détection a été déplacée vers SHA-256, et un indicateur uniquement MD5 ne tombe pas clairement dans la moitié des outils que les défenseurs utilisent réellement.
Ensuite, j’ai ouvert l’autre exemplaire du même avis. Il n’est pas uniquement livré au format PDF. Il existe également un bundle STIX lisible par machine, le format conçu pour alimenter directement un TIP ou un SIEM. Même avis, même code, fichier différent. Six de ces quatorze échantillons contenaient SHA-256 dans le STIX, avec SHA-1 et des hachages flous à côté d’eux, aucun d’entre eux dans le tableau PDF. Les indicateurs les plus forts figuraient tout le temps dans la publication officielle, et presque personne n’ouvre le dossier. Lisez le PDF comme le font la plupart des gens, et vous repartez avec des détections plus faibles que celui qui a ouvert le STIX, et rien ne vous dit qu’il y a une différence.
Ce même paquet a également été coupé dans l’autre sens, et c’est la partie sur laquelle il vaut la peine de ralentir. Au milieu de ses relations se trouvait un objet acteur menaçant nommé APT41, Winnti, Wicked Panda, connecté à plusieurs des indicateurs Ghost. Le texte de l’avis ne dit jamais APT41. Il fait tout son possible pour qualifier l’attribution de « variable dans le temps ». Tirez sur le fil et tout s’effondre : aucun fournisseur n’a jamais lié Ghost à APT41, et l’objet ressemble à un enrichissement automatisé, pas à l’appel d’un analyste humain. Le STIX ne vous ment pas. Le problème est plus subtil. Insérez-le dans votre TIP et vous avez tranquillement hérité d’une attribution d’État-nation que personne n’a réellement faite. Il manquait des données correctes dans un fichier. L’autre transportait des données que personne n’avait vérifiées. Vous n’attrapez l’un ou l’autre qu’en regardant.
Et ce n’est pas une bizarrerie d’un seul pays. Un peu plus tard, j’ai inversé une porte dérobée Go, GAMYBEAR, celle que l’UAC-0241 pointait vers les écoles et les organismes publics ukrainiens, documentée dans un avis du CERT-UA. Bon rapport. Cela a cloué le comportement. Mais le chargeur actuel a abandonné plus de quinze corrections au niveau binaire par rapport à ce que contenait l’avis : un mécanisme de persistance attribué au mauvais composant, une implémentation TLS défectueuse et une poignée d’indicateurs qui n’ont tenu qu’une fois que je les ai comparés à l’échantillon réel au lieu de la rédaction. C’est le genre de détail qui maintient une détection active une fois que l’opérateur a renommé le fichier. Vendeur commercial. Agence fédérale. CERT étranger. Trois sources, toutes exactes, toutes contenant autre chose que la pleine vérité dans la copie que la plupart des gens lisent.
Ce que je fais différemment maintenant
La leçon n’était pas de faire davantage ou moins confiance à l’intelligence. C’est plus étroit que ça. Un indicateur est une réclamation, et une réclamation est vérifiée avant que vous ne vous y défendiez, surtout lorsqu’il s’agit de l’avis couvrant votre propre organisation, car c’est celle dont les angles morts deviennent discrètement les vôtres. C’est assez bon marché pour faire de la routine. Si je mettais en place un programme de détection la semaine prochaine, trois éléments seraient présents dès le premier jour.
Traitez toute étiquette de famille automatisée comme une supposition jusqu’à ce que quelque chose de spécifique la soutienne. Une rangée de dates identiques de première observation est un fait concernant un pipeline, et non un enregistrement d’une attaque. Lorsqu’un avis est envoyé dans plusieurs formats, ouvrez la copie lisible par machine et ne vous arrêtez pas au PDF, car le fichier structuré a tendance à contenir à la fois les indicateurs les plus forts et les indicateurs non vérifiés, et vous voulez voir les deux. Et pour tout ce qui compte réellement, exécutez un échantillon en direct via votre propre pile avant de le qualifier de couvert. L’écart entre un indicateur et une détection qui se déclenche correspond exactement à l’endroit où les attaquants aiment vivre.
J’utilise toujours les trois types de sources chaque semaine et je défendrai chacune d’entre elles. Ils n’ont jamais été le problème. La vérification était toujours la partie la moins chère. En supposant que je pouvais sauter, c’était le plus cher. Un rapport est le point de départ du travail. Pas là où ça s’arrête.
Les démontages complets de ces trois cas sont publiés sur GitHub : l’analyse du protocole DonutLoader, le contenu de la détection Ghost et les notes et règles d’inversion GAMYBEAR, chacun dans son propre référentiel.
Cet article est publié dans le cadre du Foundry Expert Contributor Network.
Voulez-vous nous rejoindre ?



