
Dans le domaine de la cybersécurité, identifier et caractériser précisément les serveurs web est essentiel pour la détection des menaces, l'évaluation des vulnérabilités et la cartographie du réseau. Nous présentons HTTP-Basma, un nouvel algorithme de fingerprinting actif qui révèle des profils de serveurs uniques grâce à une approche multicouche.
HTTP-Basma est disponible en ligne à l'adresse https://httpbasma.netomize.ca/
Dans le domaine de la cybersécurité, identifier et caractériser avec précision les serveurs web est crucial pour la détection des menaces, l'évaluation des vulnérabilités et la cartographie des réseaux. Nous présentons HTTP-Basma, un nouvel algorithme d'empreinte active qui révèle des profils de serveurs uniques grâce à une approche multicouche, répondant ainsi à ce défi.
Caractéristiques clés : Requêtes élaborées, réponses révélatrices : HTTP-Basma envoie 8 sondes HTTP méticuleusement conçues, suscitant des réponses distinctives qui reflètent les configurations des serveurs. Double hachage pour la polyvalence. L'algorithme génère deux hachages :
Regroupement et traque : Ces hachages permettent le regroupement des serveurs, l'identification de serveurs uniques et similaires, ainsi que la poursuite d'acteurs malveillants avec une confiance accrue.
Conception modulaire pour l'extension : L'architecture de l'algorithme favorise l'ajout de nouvelles variantes de hachage, encourageant la collaboration et l'adaptabilité.
Dans cet article, nous examinons d'abord les travaux existants notables sur l'empreinte HTTP, puis nous explorons la fonctionnalité, la conception, l'architecture et les résultats de l'algorithme. De plus, nous présenterons des résultats convaincants issus du balayage du top 1 million de sites web Majestic, y compris l'identification et le regroupement des serveurs HTTP C&C pour diverses familles de logiciels malveillants.
L'idée centrale de l'algorithme d'HTTP-Basma repose sur l'envoi de 8 requêtes HTTP spécialement conçues avec des exigences variées afin de susciter des réponses différentes du serveur. Une fois la réponse du serveur récupérée, la ligne de statut HTTP est disséquée chirurgicalement pour tous ses éléments et encodée de manière optimale. De plus, certains en-têtes sélectionnés de la réponse du serveur sont également vérifiés pour l'encodage.
Les requêtes envoyées sont des types suivants :
Après chaque requête, la réponse du serveur est analysée pour extraire des en-têtes spécifiques et leurs valeurs. Ces données extraites subissent un traitement supplémentaire, y compris la dissection et l'encodage, pour générer une empreinte réversible.
Les détails techniques complets du fonctionnement de l'algorithme figurent dans le document ci-joint.
Cette philosophie de conception modulaire traite chaque empreinte de requête comme un élément de base, permettant une refactorisation élégante, avec la possibilité d'ajouter et de soustraire l'empreinte de toute requête.
Exemples d'empreintes :
- empreinte verbosus : 011420958a0014514bd5221420958a221420958a221420958a2200001420958a22000000001f
- empreinte pacto : 02464ae8b7d86f82c9918e2c2b9d6b91
- note : taux de faux positifs (72/986 910)
- empreinte verbosus : 01142494d60914514bd522142494d6221420958a701420958a220000140e04922032c37f1609
- empreinte pacto : 020769322f3d94ac2f258ddf5ce08502
- note-1 : taux de faux positifs 0
- note-2 : tevedadav.site/43.209.165.126:443 (TLS)
- échantillon-(sha-256) : 9aa1dec8dd12f8adc7fc1274e1958f3613450109ee8b4ec6442a0fcf06df0972
- empreinte verbosus : 01140a85e40014512f3612140a85e422140a85e422140a85e4220000140a85e4220000000001
- empreinte pacto : 0207292309a7a7e798e417d69df5f2a5
- note : taux de faux positifs (73/986 910)
- empreinte verbosus : 01140a85e4001320958a22142494d62214254c5e2214254c5e22080014254c5e220000000000
- empreinte pacto : 0202be780e1eaae0eaa6184e20c909b6
- note : taux de faux positifs (4/986 910)
- empreinte verbosus : 01140a85e4011320958a22142494d67214254c5e2214254c5e22080014254c5e220000000000
- empreinte pacto : 02cc5be6d05192e17de041538508bc22
- note : taux de faux positifs (38/986 910)
- empreinte verbosus : 01140a85e40914514bd522140a85e4721420958a701420958a220800140a85e4720000001609
- empreinte pacto : 0221b4e46bbd0e5c037f5a852ca3fdc0
- note : taux de faux positifs (6/986 910)
HTTP-Basma est un outil en C++ que j'ai développé pour démontrer le caractère pratique et la viabilité de cet algorithme. Il exploite la bibliothèque de Chilkat pour toutes les interactions de sockets HTTP et utilise d'autres classes de support au sein de la bibliothèque. De plus, l'outil comprend une fonction de démêlage qui peut disséquer et inverser le hachage flou verbosus, produisant un objet JSON complet, ainsi qu'une fonction de comparaison qui affiche les différences entre deux empreintes verbosus.
Sachez que certains résultats de l'outil peuvent utiliser des numéros de sondes légèrement différents, mais l'ordre sous-jacent reste cohérent : P1->P1, P2->P2, P3->P3, P4->P4, P->P5, P6->P6F, P7->P6L, P8->P7a.
Usage:
HTTP-Basma [OPTION...]