BotConf 2022 J2
Identifying malware campaign on a budget
Les orateurs se sont fixés quelques contraintes: cross-platform, passage à l’échelle, économe en ressources, applicable au réel. Le hardware dédié c’est du Raspberry Pi 3 pour limiter les coûts. Chaque analyseur est un module qui fait un petit truc tout seul afin d’offrir la bonne granularité dans l’analyse.
Exemple avec l’analyse des e-mails pour y identifier des campagnes automatisés de mailing/spam. Ils ont utilisé Levenstein pour mesurer la similarité entre les sujets des emails. Pour les documents piégés les images insérés pour leurrer les utilisateurs sont souvent les mêmes, ils ont donc utilisé des outils de mesure de similarité visuelle. Pour l’analyse des URLs extraites des documents piégés ils sont parti des bases WHOIS et des blocklists publiques. Pour les CMS hébergeant les documents, les auteurs ont mis en place du fuzzing web pour découvrir les autres éléments présents accessibles publiquement mais non référencés.
Pour le clustering des malwares ils utilisent des extracteurs de configuration dans une sandbox.
A Sharps tale
Les loaders servent à exécuter une charge utile obfusquée ou protégée. L’objectif c’est d’éviter la détection par signature tout en assurant l’exécution du malware. Du coup c’est une espèce d’oignon logiciel. Souvent il manque des steps dans les blogposts rendant l’unpacking non-reproductible. Le loader étudié par l’orateur dispose d’au moins un builder dans la nature qui peut être récupéré.
Le loader étudié déchiffre la payload, charge la configuration du malware et lance le main du malware, le reste des étapes de check sont optionnelles et configurables comme la désactivation de defender, le délais a l’exec etc… et toutes ces fonctions sont présentes mais pas systématiquement employées.
L’orateur a du coup étudié le loader pour en extraire automatiquement la payload et la configuration. Après analyse de 512 loaders, il s’avère que le process hollowing est très populaire. Seul 10% des samples utilisent de l’anti-sandbox ou de l’anti-vm. La majorité des malwares déposés était des agent-tesla.
Into the silent night
Silent night est une nouvelle variante de ZLoader. Ce malware est propagé soit via exploit kit, soit via des fausses mises à jour. Le serveur C2 se base sur trois pages PHP, cp.php pour l’interface de contrôle, gate.php qui gère les bots et un répertoire de logs. Une fois le c2 analysé, il est possible de collecter des samples et des logs. Les orateurs ont donc mis en place une collecte automatique de samples et d’extraction des configurations pour récupérer d’autres c2 puis d’autres samples et ainsi de suite.
A partir de la configuration, on peut calculer les domaines géré par l’algo de génération de domaines (DGA). Ceci venant alimenter l’infrastructure d’analyse et de récupération.
Ils ont récupéré 453 samples et 22 clefs RC4. A partir de ces clefs on calcule les prochains domaines que les attaquants vont utiliser et on peut identifier les campagnes liés à chaque clef, et donc prévoir les prochains pics d’activité.
A fresh look into the underground card shop ecosystem
Une présentation sur l’économie souterraine de revente de cartes de crédits appelé « cards shop » aussi appelé carding. Les pistes des cartes bancaires sont copiés à l’aide de skimmers, et contiennent toutes les informations utiles sauf le numéro CVV. Ce dernier est récupéré soit via des malwares, soit par des attaques à la magecart.
On distingue deux types de fraudes, avec carte et sans carte. Dans le premier cas, une fausse carte est créé a partir des infos volées et sert à acheter des biens de consommation dans un magasin physique. Dans l’autre cas, les infos bancaires servent à des transactions sur des boutiques en ligne. Les oratrices plongent en suite dans les détails de ces cards shop. Certains d’entre eux ont été fermés suite à des opérations de police.
Certains scammers mettent en place des typosquattings de cards shops pour piéger d’autres cardeurs, en leur envoyant des malwares qui sont des versions modifiées des outils de transaction des carders avec une adresse de wallet modifiés pour la transaction.
Yara: down the rabbit hole without slowing down
Yara est un outil d’écriture de signatures sur des fichiers. On peut s’en servir pour matcher des chaines de caractères, des séquences d’octets ou bien des expressions régulières. Le tout est compilé dans un format pour passer toutes les règles d’un coup sur un grand nombre de fichiers. Cependant quand des règles Yara sont mal écrites on a des problèmes de performance.
Yara ne recherche pas toutes les chaînes d’un coup, mais des morceaux de chaînes appelés atoms afin de réduire le temps de match. C’est une caractéristique à prendre en compte dans l’écriture des règles.
Il faut donc être le plus précis possible pour que le moteur puisse éliminer les possibles le plus vite possible. Les wildcards sont à employer avec parcimonie parce que Yara essaye de trouver le match le plus long. Dans l’ordre des tests pour les conditions il faut privilégier les critères qui match rapidement en premier.
Detecting emergent malware in the cloud before VirusTotal can see it
La validation d’IoC par des sources tierces implique parfois de la latence dans la détection, il peut donc être rentable de monter son propre pipeline d’analyse. La géopolitique ou les spécificités géographiques peuvent aussi influencer la qualité de la threat-intel dans votre pipeline d’analyse.
Pour comparer des malwares, les hash c’est pas terribles, c’est pour ça qu’on utilise des fuzzy-hash pour avoir une mesure de distance entre les hash. Mais à large échelle c’est pas simple. D’abord il faut collecter les binaires sur votre parc et calculer ces hash, puis construire une base de donnée de ces hash sous la forme d’un énorme graphe sur lequel vous pouvez faire des calculs et des regroupements en fonction de la proximité entre les binaires.
Ce clustering peut amener à identifier des variations de binaires, et donc automatiquement découvrir de nouveaux malwares une fois que la détection est établie sur l’un de ses cousins.
Pour faciliter le passage à l’échelle, si les binaires sont trop similaires on peut se contenter d’un sous-groupe représentatif et d’attacher tout les autres à cette grappe sans les inclures dans le graph.
A botnet is in your house
PHPUnit est un framework de test unitaire en PHP, et il y a une RCE dessus sortie en 2017. Le botnet étudié ici l’a utilisé pour se propager. La première requête du bot exploite la vulnérabilité, puis efface les traces. Un script d’exécution de taches est en suite chargé et exécuté. C’est un mix de Perl et de Python pour augmenter les chances de réussite de l’exécution. L’ensemble des taches est un .css qui est en fait un .zip contenant les scripts à exécuter.
Les orateurs ont en suite automatisé la collecte de ces packages de fichiers qui servent à compromettre un site web en fonction de la technologie du CMS victime. Certains packages servent à faire du bruteforce.
Pour étudier l’attaquant, les orateurs ont créé un faux site vulnérable, l’ont infecté, et ont attendu les ordres. L’activité de l’attaquant de l’accès initial à l’élévation de privilège a pu être observée. Il a servi en suite de site clickbait et de mineur de cryptomonnaie. Lorsqu’un bot rejoint le botnet, il est d’abord en attente puis il sert soit à la propagation, soit il exécute des tâches. Même les sites hébergeant le code du bot et ses packages sont des sites compromis.
Le code du bot à été retrouvé sur github, d’ou son nom kashmirblack. Il existe depuis mai 2016. Il a mis à jour son infrastructure avec dropbox pour propager les ordres d’attaque. Log4shell et Spring4shell sont activement exploités actuellement par ce botnet.
Formbook et XLoader
Formbook est un malware qui a plus de 6 ans et qui a connu un pic d’activité en 2020. Une nouvelle version de formbook nommée XLoader cible Windows et MacS.