La tua idea di fingerprinting è molto simile all'intelligence dei segnali wireless nella seconda guerra mondiale. Entrambe le parti avevano interi reparti il cui ruolo era quello di apprendere lo stile del codice, o "pugno" degli operatori wireless della parte avversaria. Tracciando questi profili e utilizzando la ricerca della direzione della radio, hanno ottenuto una quantità sorprendente di informazioni sui movimenti di truppe e navi, sull'assegnazione del personale, ecc.
Stai pensando di fare la stessa cosa, apprendendo le sfumature di come operano particolari cracker. Pensa come digitare cadenza, errori di battitura ripetuti frequentemente, ecc. Potrebbe essere usato per imparare il "pugno" di un particolare cracker. Penso che questa sia una buona idea in qualche modo, ma forse non abbastanza buona da perseguire:
- La maggior parte degli attacchi sono scriptati. Anche quando un pirata informatico sta facendo l'hacking, di solito è copiato prima e dopo un exploit di successo, quindi dovrai guadare centinaia di attacchi per trovare un'opportunità di impronte digitali
- Fonti di dati: ti sarà difficile acquisire dati sufficienti per eseguire le impronte digitali. Il numero di fonti di dati di cui avresti bisogno è molto più di un semplice progetto di ricerca, avresti bisogno almeno di una dozzina di honeypot e un database di informazioni molto ampio su cui lavorare, con alcuni modelli complessi per interpretare i dati
- La latenza di rete e il jitter sono comuni su Internet, specialmente quando il traffico proviene da zone con scarsa connettività Internet. Queste aree saranno la fonte di molti attacchi, quindi i risultati potrebbero finire per essere distorti in modo significativo. Questa pausa è seguita da una frenesia di digitare lo stile dell'hacker o semplicemente il ritardo della rete?
- Verificabilità dei risultati: come puoi dimostrare che i tuoi metodi di rilevamento delle impronte digitali sono in qualche modo efficaci? Come dimostrerai che i modelli che trovi in realtà dimostrano un singolo attaccante? Non usciranno e diranno "Sì, quello ero io!"
Il mio suggerimento è di provare questa piccola scala in cui è possibile controllare alcuni dei fattori. Ottieni molti volontari (più alcuni script) per seguire gli script di comandi impostati in una finestra di terminale e vedere se riesci a scrivere algoritmi che possano determinare in modo affidabile la loro dattilografia. Quindi introdurre la latenza e il jitter dei pacchetti per vedere se i vostri algoritmi sono in grado di farcela e lavorarci su. Una volta che hai funzionato potresti quindi andare su Internet e vedere se lavorano in natura, altrimenti non avrai alcuna idea di affidabilità.