rilevamento di eventi non periodici

1

Sto cercando rilevamento keylogger . Per quanto vedo, quasi tutti i keylogger creati dagli strumenti inviano periodicamente dati a un host, ma quelli creati dai programmatori possono inviare dati non periodicamente. Poiché è facile rilevare eventi periodici ascoltando il traffico di un host, alcuni hacker professionisti (autori di codice) fanno un tale trucco: creare un% casualehour1 e min1 e dopo hour1:min1 inviare i primi dati di battitura (o qualsiasi altra cosa sta inviando agli hacker). Dopo aver inviato il primo set di dati, crea in modo casuale hour2 e min2 e dopo hour2:min2 invia i dati successivi e così via.

Con questa tecnologia stanno ottenendo dati non periodicamente, ma regolarmente. C'è qualche modo / trucco per scoprire che il caricamento dei dati non periodico ma regolare?

Nota: non sono interessato a Command and Control per ora. Mi interessano solo i dati non periodici che caricano il rilevamento di keylogger? Le idee relative al rilevamento di eventi non periodici e regolari sarebbero apprezzate.

Nota 2: la maggior parte dei keylogger sta inviando dati su gmail o su un altro server di posta e alcuni di loro utilizzano il server ftp.

Nota3: il rilevamento non sarà basato su host ma network based detection .

Grazie,

    
posta smttsp 19.02.2013 - 11:57
fonte

2 risposte

1

Rilevare un keylogger basato sulla sua periodicità sembra uno strano modo di farlo e usare un timer casuale per contrastare tale rilevamento sembra strano. Se stavo scrivendo un keylogger, sembra più naturale implementare qualcosa come quando il file di log raggiunge una certa dimensione (ad esempio 50 kB), avviare uno nuovo e trasferire il vecchio file, rispetto all'invio su un tmier fisso. Ci sono molti trasferimenti di dati che dovrebbero verificarsi a intervalli periodici, quindi il semplice fatto che un trasferimento sia periodico non indica molto (ad esempio, backup su un NAS locale, controllo di aggiornamenti, richieste di recupero della posta, ecc.)

In realtà, il modo migliore per rilevare è che le connessioni di rete non richieste vengono stabilite da processi che non stai utilizzando (ad es., in linux look a lsof -i -n o netstat -p -n -t ) o non autorizzati. Puoi anche utilizzare uno strumento come nethogs che raccoglierà attivamente statistiche su quanta attività di rete utilizza ogni processo.

    
risposta data 19.02.2013 - 17:09
fonte
1

In primo luogo, è necessario distillare il modello di comunicazione e alcune caratteristiche. Se sei fortunato, l'esfiltrazione si distingue, ad esempio, a causa di un indirizzo di destinazione univoco, dimensioni di connessione ridotte, periodicità, ecc.

Per il rilevamento, Bro sarebbe la soluzione migliore qui. Ecco due punti di partenza:

  1. Controlla i log di connessione . Bro ha scritto un file chiamato conn.log che ha un riepilogo di una riga per ogni connessione. Come NetFlow su steroidi. Grep per un host specifico che ha creato una connessione in uscita e ne analizza il timestamp e il numero di byte inviati. Questo processo potrebbe iniziare in questo modo:

    bro-cut ts id.orig_h id.resp_h id.orig_p id.resp_p local_orig orig_bytes < conn.log \
        | awk '$2 == compromised_host && $6 == "T" && $7 < max_bytes'
    

    Ma poi devi continuare con il duro lavoro e il filtro. Questo è un processo iterativo che converge quando hai verità di base, cioè alcuni esempi di traffico non valido noto.

  2. Scrivi uno script personalizzato . Bro viene fornito con un linguaggio di scripting asincrono, basato sugli eventi e completo di Turing. Ad esempio, potresti scrivere uno script che aggancia il new_connection che viene generato per ogni nuova connessione TCP o UDP visualizzata, installa un timer (ad esempio 1 ora) più uno stato, quindi controlla di nuovo alla scadenza del timer se le condizioni confermano che si ritiene costituiscano l'esfiltrazione. Se questo è il tuo caso, dai una possibilità e non esitare a chiederci sulla mailing list di Bro , siamo felici di aiutarti!

Puoi ancora approfondire il livello dell'applicazione, ad es. se sai che il keylogger utilizza HTTP. Quindi Bro offre host di hook solo per quel protocollo.

Nel complesso, rilevare l'intrusione dall'angolo di rete è un problema difficile che riguarda la messa a punto dei parametri fino a quando non si ottiene un tasso di falsi positivi pratico.

    
risposta data 20.02.2013 - 19:07
fonte

Leggi altre domande sui tag