
Im Bereich der Cybersicherheit ist die präzise Identifizierung und Charakterisierung von Webservern entscheidend für die Bedrohungserkennung, Schwachstellenbewertung und Netzwerkzuordnung. Wir stellen HTTP-Basma vor, einen neuartigen aktiven Fingerprinting-Algorithmus, der durch einen mehrschichtigen Ansatz einzigartige Serverprofile aufdeckt.
HTTP-Basma ist live unter https://httpbasma.netomize.ca/
Im Bereich der Cybersicherheit ist die genaue Identifizierung und Charakterisierung von Webservern entscheidend für Bedrohungserkennung, Schwachstellenbewertung und Netzwerk-Mapping. Wir stellen HTTP-Basma vor, einen neuartigen aktiven Fingerprinting-Algorithmus, der durch einen mehrschichtigen Ansatz einzigartige Serverprofile aufdeckt und damit diese Herausforderung adressiert.
Hauptmerkmale: Ausgefeilte Anfragen, aufschlussreiche Antworten: HTTP-Basma sendet 8 sorgfältig gestaltete HTTP-Probes, die charakteristische Antworten hervorrufen, welche die Serverkonfigurationen widerspiegeln. Duales Hashing für Vielseitigkeit. Der Algorithmus erzeugt zwei Hashes:
Clustering und Hunting: Diese Hashes ermöglichen Server-Clustering, die Identifizierung einzigartiger und ähnlicher Server sowie die Verfolgung bösartiger Akteure mit erhöhter Zuversicht.
Modulares Design für Erweiterbarkeit: Die Architektur des Algorithmus fördert die Hinzufügung neuer Hashing-Varianten und regt Zusammenarbeit sowie Anpassungsfähigkeit an.
In diesem Beitrag geben wir zunächst einen Überblick über bemerkenswerte bestehende Arbeiten zum HTTP-Fingerprinting und untersuchen anschließend die Funktionsweise, das Design, die Architektur und die Ergebnisse des Algorithmus. Darüber hinaus präsentieren wir aufschlussreiche Erkenntnisse aus dem Scannen der Top-1-Million-Majestic-Websites, einschließlich der Identifizierung und des Clusterings von C&C-HTTP-Servern für verschiedene Malware-Familien.
Die Kernidee des Algorithmus von HTTP-Basma besteht darin, 8 speziell gestaltete HTTP-Anfragen mit unterschiedlichen Anforderungen zu senden, um unterschiedliche Antworten vom Server hervorzurufen. Sobald die Serverantwort abgerufen wurde, wird die HTTP-Statuszeile chirurgisch auf alle Elemente zerlegt und optimal kodiert. Zusätzlich werden ausgewählte Header aus der Serverantwort auf ihre Kodierung hin geprüft.
Die Anfragen, die er sendet, sind von diesen Typen:
Nach jeder Anfrage wird die Antwort des Servers analysiert, um bestimmte Header und deren Werte zu extrahieren. Diese extrahierten Daten werden weiterverarbeitet, einschließlich Zerlegung und Kodierung, um einen reversiblen Fingerabdruck zu erzeugen.
Die vollständigen technischen Details zur Funktionsweise des Algorithmus finden sich im beigefügten Paper.
Diese modulare Designphilosophie behandelt jeden Anfrage-Fingerabdruck als Baustein, was elegantes Refactoring ermöglicht, mit der Möglichkeit, den Fingerabdruck jeder Anfrage hinzuzufügen oder zu entfernen.
Beispiel für Fingerabdrücke:
- verbosus fp: 011420958a0014514bd5221420958a221420958a221420958a2200001420958a22000000001f
- pacto fp: 02464ae8b7d86f82c9918e2c2b9d6b91
- note: false-positive rate (72/986,910)
- verbosus fp: 01142494d60914514bd522142494d6221420958a701420958a220000140e04922032c37f1609
- pacto fp: 020769322f3d94ac2f258ddf5ce08502
- note-1: false-positive rate 0
- note-2: tevedadav.site/43.209.165.126:443 (TLS)
- sample-(sha-256): 9aa1dec8dd12f8adc7fc1274e1958f3613450109ee8b4ec6442a0fcf06df0972
- verbosus fp: 01140a85e40014512f3612140a85e422140a85e422140a85e4220000140a85e4220000000001
- pacto fp: 0207292309a7a7e798e417d69df5f2a5
- note: false-positive rate (73/986,910)
- verbosus fp: 01140a85e4001320958a22142494d62214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 0202be780e1eaae0eaa6184e20c909b6
- note: false-positive rate (4/986,910)
- verbosus fp: 01140a85e4011320958a22142494d67214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 02cc5be6d05192e17de041538508bc22
- note: false-positive rate (38/986,910)
- verbosus fp: 01140a85e40914514bd522140a85e4721420958a701420958a220800140a85e4720000001609
- pacto fp: 0221b4e46bbd0e5c037f5a852ca3fdc0
- note: false-positive rate (6/986,910)
HTTP-Basma ist ein C++-Tool, das ich entwickelt habe, um die Praktikabilität und Umsetzbarkeit dieses Algorithmus zu demonstrieren. Es nutzt Chilkat's Bibliothek für alle HTTP-Socket-Interaktionen und verwendet weitere unterstützende Klassen innerhalb der Bibliothek. Darüber hinaus enthält das Tool eine Demangler-Funktion, die den verbosus Fuzzy-Hash zerlegen und umkehren kann und ein umfassendes JSON-Objekt ausgibt, sowie eine Vergleichsfunktion, die die Unterschiede zwischen zwei verbosus-Fingerabdrücken ausgibt.
Beachten Sie, dass einige Ausgaben des Tools leicht abweichende Probe-Nummern verwenden können, die zugrunde liegende Reihenfolge jedoch konsistent bleibt: P1->P1, P2->P2, P3->P3, P4->P4, P->P5, P6->P6F, P7->P6L, P8->P7a.
Usage:
HTTP-Basma [OPTION...]