Votre chemin, graphique: comment nous n'avons pas trouvé un bon graphique de réseau et avons créé le notre



Enquêtant sur les cas d'hameçonnage, de réseaux de zombies, de transactions frauduleuses et de groupes de pirates informatiques, les experts du Groupe IB utilisent depuis de nombreuses années l'analyse graphique pour identifier toutes sortes de connexions. Différents cas ont leurs propres tableaux de données, leurs propres algorithmes d'identification de connexion et des interfaces adaptées à des tâches spécifiques. Tous ces outils étaient un développement interne du Groupe-IB et n'étaient disponibles que pour nos employés.

L'analyse graphique de l'infrastructure réseau ( graphique réseau ) a été le premier outil interne que nous avons intégré à tous les produits publics de l'entreprise. Avant de créer notre propre graphique de réseau, nous avons analysé de nombreux développements similaires sur le marché et n'avons pas trouvé un seul produit qui satisferait nos propres besoins. Dans cet article, nous parlerons de la façon dont nous avons créé le graphique de réseau, comment l'utiliser et quelles difficultés nous avons rencontrées.

Dmitry Volkov, CTO Group-IB et responsable Cyber ​​Intelligence

Que peut faire un graphe de réseau Group-IB?


Enquêtes


Depuis la création du Groupe IB en 2003 jusqu'à aujourd'hui, l'identification, le deanon et la responsabilisation des cybercriminels ont été la principale priorité de notre travail. Aucune enquête sur une cyberattaque ne pourrait se passer d'une analyse de l'infrastructure réseau de l'attaquant. Au tout début de notre parcours, il a été assez pénible de «travailler manuellement» pour trouver des relations qui pourraient aider à identifier les criminels: informations sur les noms de domaine, les adresses IP, les empreintes digitales des serveurs, etc.

La plupart des attaquants tentent d'agir le plus anonymement possible sur le réseau. Cependant, comme tout le monde, ils font des erreurs. La tâche principale de cette analyse est de trouver les projets historiques «blancs» ou «gris» des attaquants qui se croisent avec l'infrastructure malveillante utilisée dans l'incident réel sur lequel nous enquêtons. S'il est possible de détecter des "projets blancs", alors trouver l'attaquant, en règle générale, devient une tâche triviale. Dans le cas des «gris», la recherche demande plus de temps et d'efforts, car leurs propriétaires tentent d'anonymiser ou de masquer les données d'enregistrement, mais les chances restent assez élevées. En règle générale, au début de leur activité criminelle, les attaquants accordent moins d'attention à leur propre sécurité et commettent plus d'erreurs, de sorte que plus nous pouvons plonger dans l'histoire, plus les chances de réussite de l'enquête sont grandes. C'est pourquoi un graphique de réseau avec une bonne histoire est un élément extrêmement important d'une telle enquête. Autrement dit, plus les données historiques d'une entreprise sont profondes, meilleur est son graphique. Supposons qu'une histoire de 5 ans peut aider à résoudre, conditionnellement, 1 à 2 des 10 crimes, et qu'une histoire de 15 ans donne une chance de résoudre les dix.

Détection du phishing et de la fraude


Chaque fois que nous recevons un lien suspect vers des ressources de phishing, frauduleuses ou piratées, nous créons automatiquement un graphique des ressources réseau associées et vérifions que tous les hôtes trouvés contiennent un contenu similaire. Cela vous permet de trouver à la fois d'anciens sites de phishing actifs mais inconnus et de nouveaux sites préparés pour de futures attaques, mais qui ne sont pas encore utilisés. Un exemple élémentaire assez courant: nous avons trouvé un site de phishing sur un serveur avec seulement 5 sites. En vérifiant chacun d'eux, nous trouvons également du contenu de phishing sur d'autres sites, ce qui signifie que nous pouvons bloquer 5 au lieu de 1.

Recherche backend


Ce processus est nécessaire pour déterminer où se trouve réellement le serveur malveillant.
99% des magasins de cartes, des forums de piratage, de nombreuses ressources de phishing et d'autres serveurs malveillants se cachent derrière leurs propres serveurs proxy et les proxys de services légitimes, par exemple Cloudflare. Connaître le vrai backend est très important pour les investigations: il devient connu le fournisseur d'hébergement duquel vous pouvez supprimer le serveur, il devient possible d'établir des connexions avec d'autres projets malveillants.

Par exemple, vous disposez d'un site de phishing pour collecter les données de carte bancaire qui se résout à l'adresse IP 11/11/11/11, et une adresse de magasin de cartes qui se résout à l'adresse IP 22.22.22.22. Au cours de l'analyse, il peut s'avérer que le site de phishing et la boutique de cartes ont une adresse IP principale commune, par exemple, 33.33.33.33. Cette connaissance vous permet de créer un lien entre les attaques de phishing et une boutique de cartes sur laquelle, peut-être, ils vendent des données de carte bancaire.

Corrélation d'événements


Lorsque vous avez deux déclencheurs différents (par exemple, sur IDS) avec différents logiciels malveillants et différents serveurs pour contrôler l'attaque, vous les considérerez comme deux événements indépendants. Mais s'il existe une bonne connexion entre les infrastructures malveillantes, il devient évident qu'il ne s'agit pas d'attaques différentes, mais d'étapes d'une attaque multi-étapes plus complexe. Et si l'un des événements est déjà attribué à un groupe d'attaquants, le second peut également être attribué au même groupe. Bien sûr, le processus d'attribution est beaucoup plus complexe, alors considérez l'écriture comme un exemple simple.

Indicateurs d'enrichissement


Nous n'y prêterons pas beaucoup d'attention, car c'est le scénario le plus courant pour utiliser des graphiques en cybersécurité: vous donnez un indicateur à l'entrée et vous obtenez un tableau d'indicateurs associés à la sortie.

Détection de modèle


L'identification des patrons est essentielle pour une chasse efficace. Les graphiques permettent non seulement de trouver des éléments liés, mais aussi de révéler des propriétés communes inhérentes à un certain groupe de pirates. La connaissance de ces fonctionnalités uniques vous permet de reconnaître l'infrastructure de l'attaquant même au stade de la préparation et sans preuve confirmant l'attaque, comme les e-mails de phishing ou les logiciels malveillants.

Pourquoi avons-nous créé notre propre graphique de réseau?


Je répète que nous avons envisagé des solutions de différents fournisseurs avant de conclure que nous devons développer notre propre outil capable de faire ce qui ne se trouve dans aucun produit existant. Il a fallu plusieurs années pour le créer, au cours desquelles nous l'avons complètement changé plus d'une fois. Mais, malgré la longue période de développement, nous n'avons toujours pas trouvé un seul analogue qui satisferait nos exigences. En utilisant notre propre produit, nous avons pu résoudre presque tous les problèmes que nous avons trouvés dans les graphiques de réseau existants. Ci-dessous, nous examinons ces problèmes en détail:

Le problèmeSolution
Absence de fournisseur avec différentes collections de données: domaines, DNS passif, SSL passif, enregistrements DNS, ports ouverts, exécution de services sur les ports, fichiers qui interagissent avec les noms de domaine et les adresses IP. Explication. Les fournisseurs fournissent généralement des types de données distincts, et pour obtenir une image complète, vous devez acheter des abonnements à tout le monde. Mais même ainsi, il n'est pas toujours possible d'obtenir toutes les données: certains fournisseurs SSL passifs ne fournissent que des données sur les certificats émis par des autorités de certification de confiance, et la couverture des certificats auto-signés est extrêmement faible. D'autres fournissent des données sur les certificats auto-signés, mais les collectent uniquement à partir de ports standard.Nous avons collecté nous-mêmes toutes les collections ci-dessus. Par exemple, pour collecter des données sur les certificats SSL, nous avons écrit notre propre service qui les collecte auprès des autorités de certification de confiance et en analysant l'intégralité de l'espace IPv4. Les certificats ont été collectés non seulement sur IP, mais également sur tous les domaines et sous-domaines de notre base de données: si vous avez le domaine example.com et son sous-domaine www.example.com et qu'ils se résolvent tous en IP 1.1.1.1, alors lorsque vous essayez d'obtenir SSL- certificat du port 443 par IP, domaine et son sous-domaine, vous pouvez obtenir trois résultats différents. Pour collecter des données sur des ports ouverts et des services en cours d'exécution, j'ai dû créer mon propre système de scan distribué, car pour d'autres services les adresses IP des serveurs de scan étaient souvent dans les «listes noires». Nos serveurs d'analyse sont également sur liste noire, mais le résultat de la recherche des services dont nous avons besoin est plus élevé que ceux qui analysent simplement autant de ports que possible et vendent l'accès à ces données.
Manque d'accès à la base de données complète des documents historiques. Explication. Chaque fournisseur normal a un bon historique accumulé, mais pour des raisons naturelles, nous, en tant que client, n'avons pas pu accéder à toutes les données historiques. C'est-à-dire vous pouvez obtenir toute l'histoire par un enregistrement séparé, par exemple, par domaine ou adresse IP, mais vous ne pouvez pas voir l'historique de tout - et sans cela, vous ne pouvez pas voir l'image entière.Pour collecter autant d'enregistrements historiques par domaine que possible, nous avons acheté diverses bases de données, analysé de nombreuses ressources ouvertes qui possédaient cette histoire (il est bon qu'il y en ait beaucoup) et convenu avec les registraires de noms de domaine. Toutes les mises à jour dans nos propres collections, bien sûr, sont stockées avec un historique complet des modifications.
Toutes les solutions existantes vous permettent de construire un graphique en mode manuel. Explication. Disons que vous avez acheté de nombreux abonnements auprès de tous les fournisseurs de données possibles (ils sont généralement appelés «enrichissement»). Lorsque vous avez besoin de construire un graphique, vous donnez la commande «mains» pour construire à partir de l'élément de communication souhaité, puis parmi les éléments apparus, sélectionnez ceux qui sont nécessaires et donnez la commande pour compléter les connexions à partir d'eux, et ainsi de suite. Dans ce cas, la responsabilité de la façon dont le graphique sera construit incombe entièrement à la personne.Nous avons fait un graphique automatique. C'est-à-dire si vous avez besoin de construire un graphique, les connexions à partir du premier élément sont automatiquement construites, plus éloignées de toutes les suivantes également. Le spécialiste indique uniquement la profondeur avec laquelle construire le graphique. Le processus de remplissage automatique des graphiques est simple, mais d'autres fournisseurs ne l'implémentent pas car cela donne une énorme quantité de résultats non pertinents, et nous avons également dû tenir compte de cet inconvénient (voir ci-dessous).
Beaucoup de résultats non pertinents sont le problème de tous les graphiques sur les éléments du réseau. Explication. Par exemple, un «mauvais domaine» (a participé à l'attaque) est associé à un serveur auquel au cours des 10 dernières années 500 autres domaines ont été associés. Lors de l'ajout manuel ou de la création automatique d'un graphique, tous ces 500 domaines doivent également se déplacer vers le graphique, bien qu'ils ne soient pas liés à l'attaque. Ou, par exemple, vous vérifiez l'indicateur IP du rapport de sécurité du fournisseur. En règle générale, ces rapports sortent avec un retard important et couvrent souvent un an ou plus. Très probablement, au moment où vous lisez le rapport, le serveur avec cette adresse IP est déjà loué à d'autres personnes avec d'autres connexions, et la construction du graphique conduira au fait que vous avez de nouveau reçu des résultats non pertinents.Nous avons formé le système pour identifier les éléments non pertinents selon la même logique que nos experts l'ont fait à la main. Par exemple, vous vérifiez le mauvais domaine example.com, qui se résout désormais en IP 11.11.11.11, et il y a un mois en IP 22.22.22.22. En plus du domaine example.com, example.ru est associé à IP 11.11.11.11, et 25 000 autres domaines sont associés à IP 22.22.22.22. Le système, comme une personne, comprend que 11.11.11.11 est très probablement un serveur dédié, et puisque le domaine example.ru est similaire en orthographe à example.com, alors, avec une forte probabilité, ils sont connectés et devraient être sur le graphique; mais l'IP 22.22.22.22 appartient à l'hébergement partagé, vous n'avez donc pas besoin de mettre tous ses domaines dans le graphique s'il n'y a pas d'autres connexions indiquant qu'un de ces 25 000 domaines doit également être supprimé (par exemple, example.net). Avant que le système ne se rende compte que les connexions doivent être rompues et que certains éléments ne doivent pas être mis sur le graphique, il prend en compte les nombreuses propriétés des éléments et des clusters dans lesquels ces éléments sont combinés, ainsi que la force des connexions actuelles. Par exemple, si nous avons un petit cluster (50 éléments) dans le graphique, qui comprend un mauvais domaine, et un autre gros cluster (5 000 éléments) et les deux clusters sont connectés par un lien (ligne) avec une très faible résistance (poids), alors cette connexion se rompra et les éléments du grand cluster seront supprimés. Mais s'il existe de nombreux liens entre les petits et les grands clusters et que leur force augmente progressivement, alors dans ce cas, la connexion ne se rompra pas et les éléments nécessaires des deux clusters resteront sur le graphique.
L'intervalle de propriété du serveur et du domaine n'est pas pris en compte. Explication. L'enregistrement des «mauvais domaines» expire tôt ou tard et ils sont rachetés à des fins malveillantes ou légitimes. Même avec un hébergement pare-balles, les serveurs sont loués à différents pirates, il est donc essentiel de connaître et de prendre en compte l'intervalle lorsqu'un domaine / serveur particulier était sous le contrôle d'un seul propriétaire. Nous rencontrons souvent une situation où un serveur avec IP 11.11.11.11 est maintenant utilisé comme C&C pour un bot bancaire, et Ransomware a été géré il y a 2 mois. Si vous établissez une connexion, sans tenir compte des intervalles de propriété, il semblera qu'il existe une connexion entre les propriétaires du botnet bancaire et du ransomware, bien que ce ne soit pas le cas. Dans notre travail, une telle erreur est critique.Nous avons appris au système à déterminer les intervalles de propriété. Pour les domaines, cela est relativement simple, car le whois affiche souvent les dates de début et de fin de l'enregistrement et, lorsqu'il existe un historique complet des modifications du whois, il est facile de déterminer les intervalles. Lorsque le domaine n'a pas expiré, mais que sa gestion a été transférée à d'autres propriétaires, vous pouvez également le suivre. Il n'y a pas un tel problème pour les certificats SSL, car il est émis une fois, il n'est pas renouvelé et il n'est pas transmis. Mais pour les certificats auto-signés, vous ne pouvez pas faire confiance aux dates indiquées dans les dates d'expiration des certificats, car vous pouvez générer un certificat SSL aujourd'hui et spécifier la date de début du certificat à partir de 2010. Le plus difficile est de déterminer les intervalles de propriété des serveurs, car seuls les hébergeurs ont les dates et les baux. Pour déterminer la période de propriété du serveur, nous avons commencé à utiliser les résultats de l'analyse des ports et à créer des empreintes digitales des services en cours d'exécution sur les ports. Sur la base de ces informations, nous pouvons dire assez précisément quand le propriétaire du serveur a changé.
Peu de connexions. Explication. Désormais, ce n'est même plus un problème d'obtenir gratuitement une liste de domaines contenant une adresse e-mail spécifique ou de découvrir tous les domaines associés à une adresse IP spécifique. Mais, lorsqu'il s'agit de pirates qui font tout leur possible pour rendre le suivi difficile, des «astuces» supplémentaires sont nécessaires pour trouver de nouvelles propriétés et établir de nouvelles connexions.Nous avons passé beaucoup de temps à rechercher comment récupérer des données qui ne sont pas disponibles de la manière habituelle. Nous ne pouvons pas décrire comment cela fonctionne ici pour des raisons évidentes, mais dans certaines circonstances, les pirates font des erreurs lors de l'enregistrement de domaines ou de la location et de la configuration de serveurs, qui vous permettent de trouver des adresses e-mail, des alias de pirates, des adresses de backend. Plus vous extrayez de connexions, plus vous pouvez créer de graphiques avec précision.

Comment fonctionne notre graphique


Pour commencer à utiliser le graphique réseau, vous devez saisir le domaine, l'adresse IP, l'e-mail ou l'empreinte digitale du certificat SSL dans la zone de recherche. Un analyste peut contrôler trois conditions: le temps, la profondeur de pas et le nettoyage.



Le temps


Heure - la date ou l'intervalle auquel l'élément de recherche a été utilisé à des fins malveillantes. Si vous ne spécifiez pas ce paramètre, le système déterminera le dernier intervalle de propriété de cette ressource. Par exemple, le 11 juillet, Eset a publié un rapport sur la façon dont Buhtrap utilise un exploit de 0 jour pour le cyberespionnage. À la fin du rapport, il y a 6 indicateurs. L'un d'eux, Secure-telemetry [.] Net, a été réenregistré le 16 juillet. Par conséquent, si vous créez un graphique après le 16 juillet, vous recevrez des résultats non pertinents. Mais si vous indiquez que ce domaine a été utilisé avant cette date, alors 126 nouveaux domaines et 69 adresses IP qui ne sont pas répertoriés dans le rapport Eset tombent sur le graphique:

  • ukrfreshnews [.] com
  • unian-search [.] com
  • vesti-world [.] info
  • runewsmeta [.] com
  • foxnewsmeta [.] biz
  • sobesednik-meta [.] info
  • rian-ua [.] net
  • et autres

En plus des indicateurs de réseau, nous trouvons immédiatement des liens vers des fichiers malveillants qui avaient des liens vers cette infrastructure et des balises qui nous indiquent que Meterpreter, AZORult ont été utilisés.

La grande chose est que vous obtenez ce résultat en une seconde et que vous n'avez plus besoin de passer des jours à analyser les données. Bien sûr, cette approche réduit parfois le temps des enquêtes de plusieurs fois, ce qui est souvent critique.


Le nombre d'étapes ou la profondeur de récursivité avec laquelle le graphique sera construit


Par défaut, la profondeur est 3. Cela signifie que tous les éléments directement liés seront trouvés à partir de l'élément requis, puis chaque nouvel élément sera construit de nouvelles connexions à d'autres éléments, et à partir des nouveaux éléments de la dernière étape, il y aura de nouveaux éléments.

Prenons un exemple sans rapport avec APT et les exploits à 0 jour. Habré a récemment décrit un cas intéressant de fraude liée aux crypto-monnaies. Le rapport mentionne le domaine - themcx [.] Co, utilisé par les escrocs pour héberger le site du soi-disant échangeur Miner Coin Exchange et la recherche téléphonique [.] Xyz, pour attirer le trafic.

D'après la description, il est clair que le système nécessite une infrastructure suffisamment grande pour attirer le trafic vers des ressources frauduleuses. Nous avons décidé de regarder cette infrastructure en construisant un graphique en 4 étapes. La sortie était un graphique avec 230 domaines et 39 adresses IP. Ensuite, nous divisons les domaines en 2 catégories: ceux qui sont similaires aux services pour travailler avec les crypto-monnaies et ceux qui sont conçus pour capter le trafic via les services de vérification téléphonique:
Lié à la crypto-monnaieAssocié aux services de poinçonnage par téléphone
coinkeeper [.] ccsite d'enregistrement des appelants [.].
mcxwallet [.] coenregistrements téléphoniques [.] espace
btcnoise [.] comfone-uncover [.] xyz
montre cryptominer [.]numéro-découvrir [.] info


Le nettoyage


Par défaut, l'option «Effacer le graphique» est activée et tous les éléments non pertinents seront supprimés du graphique. Soit dit en passant, il a été utilisé dans tous les exemples précédents. Je prévois une question naturelle: comment s'assurer que quelque chose d'important ne disparaît pas? : , , = 1. .

whois, DNS, .



APT- , . , , , .


. — lloydsbnk-uk[.]com, 3 , 250 , 2015 . , , .

2 .

, 2019 -, . , swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.


Cobalt gang


2018 Cobalt, , .


hXXps://nationalbank.bz/Doc/Prikaz.doc. , powershell, hXXp://wateroilclub.com/file/dwm.exe %Temp%\einmrmdmy.exe. %Temp%\einmrmdmy.exe aka dwm.exe — CobInt stager, hXXp://admvmsopp.com/rilruietguadvtoefmuy.

, . nationalbank[.]bz , .


IP- 46.173.219[.]152 . 40 , , bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com

, , , , .


nationalbank[.]bz, , 500 Cobalt, . , :


Conclusion


, , , . . , , , . “” , . , . . Group-IB . . , , , , .

Source: https://habr.com/ru/post/fr461639/


All Articles