
Nel campo della cybersicurezza, identificare e caratterizzare con precisione i server web è fondamentale per il rilevamento delle minacce, la valutazione delle vulnerabilità e la mappatura della rete. Presentiamo HTTP-Basma, un nuovo algoritmo di fingerprinting attivo che svela profili unici dei server attraverso un approccio multilivello.
HTTP-Basma è disponibile all'indirizzo https://httpbasma.netomize.ca/
Nel campo della cybersecurity, identificare e caratterizzare con precisione i server web è fondamentale per il rilevamento delle minacce, la valutazione delle vulnerabilità e la mappatura della rete. Presentiamo HTTP-Basma, un nuovo algoritmo di fingerprinting attivo che svela profili server unici attraverso un approccio multilivello, affrontando così questa sfida.
Caratteristiche principali: Richieste Artigianali, Risposte Rivelatrici: HTTP-Basma invia 8 sonde HTTP meticolosamente progettate, ottenendo risposte distintive che riflettono le configurazioni del server. Doppio Hashing per la Versatilità. L'algoritmo genera due hash:
Clustering e Ricerca: Questi hash consentono il clustering dei server, l'identificazione di server unici e simili, e la ricerca di attori malintenzionati con maggiore sicurezza.
Design Modulare per l'Espansione: L'architettura dell'algoritmo favorisce l'aggiunta di nuove varianti di hashing, incoraggiando la collaborazione e l'adattabilità.
In questo documento, esaminiamo innanzitutto i notevoli lavori esistenti sul fingerprinting HTTP e poi esploriamo la funzionalità, il design, l'architettura e i risultati dell'algoritmo. Inoltre, mostreremo risultati convincenti dalla scansione dei primi 1 milione di siti web Majestic, inclusa l'identificazione e il clustering dei server HTTP C&C per varie famiglie di malware.
L'idea centrale dell'algoritmo di HTTP-Basma si basa sull'invio di 8 richieste HTTP appositamente realizzate con requisiti variabili per ottenere risposte diverse dal server. Una volta recuperata la risposta del server, la riga di stato HTTP viene chirurgicamente sezionata per tutti gli elementi e codificata in modo ottimale. Inoltre, alcune intestazioni selezionate dalla risposta del server vengono verificate per la codifica.
Le richieste che invia sono di questi tipi:
Dopo ogni richiesta, la risposta del server viene analizzata per estrarre intestazioni specifiche e i loro valori. Questi dati estratti vengono ulteriormente elaborati, inclusa la dissezione e la codifica, per generare un fingerprint reversibile.
I dettagli tecnici completi su come funziona l'algoritmo sono nel documento allegato.
Questa filosofia di design modulare tratta il fingerprint di ogni richiesta come un elemento costitutivo, consentendo un refactoring elegante, con la possibilità di aggiungere e sottrarre il fingerprint di qualsiasi richiesta.
Esempio di fingerprint:
- verbosus fp: 011420958a0014514bd5221420958a221420958a221420958a2200001420958a22000000001f
- pacto fp: 02464ae8b7d86f82c9918e2c2b9d6b91
- nota: tasso di falsi positivi (72/986,910)
- verbosus fp: 01142494d60914514bd522142494d6221420958a701420958a220000140e04922032c37f1609
- pacto fp: 020769322f3d94ac2f258ddf5ce08502
- nota-1: tasso di falsi positivi 0
- nota-2: tevedadav.site/43.209.165.126:443 (TLS)
- campione-(sha-256): 9aa1dec8dd12f8adc7fc1274e1958f3613450109ee8b4ec6442a0fcf06df0972
- verbosus fp: 01140a85e40014512f3612140a85e422140a85e422140a85e4220000140a85e4220000000001
- pacto fp: 0207292309a7a7e798e417d69df5f2a5
- nota: tasso di falsi positivi (73/986,910)
- verbosus fp: 01140a85e4001320958a22142494d62214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 0202be780e1eaae0eaa6184e20c909b6
- nota: tasso di falsi positivi (4/986,910)
- verbosus fp: 01140a85e4011320958a22142494d67214254c5e2214254c5e22080014254c5e220000000000
- pacto fp: 02cc5be6d05192e17de041538508bc22
- nota: tasso di falsi positivi (38/986,910)
- verbosus fp: 01140a85e40914514bd522140a85e4721420958a701420958a220800140a85e4720000001609
- pacto fp: 0221b4e46bbd0e5c037f5a852ca3fdc0
- nota: tasso di falsi positivi (6/986,910)
HTTP-Basma è uno strumento C++ che ho sviluppato per dimostrare la praticità e la validità di questo algoritmo. Sfrutta la libreria di Chilkat per tutte le interazioni socket HTTP e utilizza altre classi di supporto all'interno della libreria. Inoltre, lo strumento include una funzione demangler in grado di dissezionare e invertire il fuzzy-hash verbosus, producendo un oggetto JSON completo, e una funzione di confronto che restituisce le differenze tra due fingerprint verbosus.
Tieni presente che alcuni output dello strumento potrebbero utilizzare numeri di sonda leggermente diversi, ma l'ordine sottostante rimane coerente: P1->P1, P2->P2, P3->P3, P4->P4, P->P5, P6->P6F, P7->P6L, P8->P7a.
Usage:
HTTP-Basma [OPTION...]