2010-11-01 4 views
15

Quindi per un'applicazione di sicurezza che sto scrivendo, in realtà voglio usare RFC3514 ("The Evil Bit") per determinare quale insieme di traffico attraverso la rete è malvagio o no un livello per pacchetto. Questo è usato come dati di addestramento per un motore di apprendimento automatico assistito, quindi l'app deve sapere in anticipo quali pacchetti sono malvagi e quali no.Come impostare Evil Bit sul traffico in uscita

Questo dovrebbe essere abbastanza semplice, è solo l'impostazione di un singolo bit di livello IP. Ho provato a farlo con iptables o libpcap, ma non hanno la funzionalità o non sono riuscito a scoprirlo.

Essere in grado di impostarlo per tutto il traffico fuori da una macchina andrebbe bene, ma i filtri su ciò che uscirà sarebbe meglio. (Come essere in grado di specificare quali protocolli di livello superiore ottenerlo, ecc ...)

Sto usando anche Ubuntu. Quindi le soluzioni Linux preferivano. Altrimenti, non importa quale sia il metodo utilizzato per ottenere ciò. Script di Bash, app c/C++, impostazione di alcuni sysctl, qualunque sia.

+0

+1 Interessante, ma penso che lo standard defacto di eliminare o registrare questi pacchetti da un IPS/IDS sia un approccio più sicuro. – rook

+2

Bene, il punto è che non voglio usare un IPS/IDS basato su firma. Da qui la parte di apprendimento automatico. Ma questo non è veramente rilevante per la domanda, solo alcune informazioni di base. Potrei avere chiesto equivalentemente "Come posso impostare un flag nei pacchetti in uscita senza disturbare altrimenti il ​​loro funzionamento/interpretazione?" Sembra improbabile che io sia la prima persona ad aver mai avuto quel bisogno. – AltF4

+0

Dieci mesi dopo ci si chiede se si sta filtrando con successo tutto il traffico di rete malvagio. Non lavori per Sony, vero? –

risposta

6

Apparentemente questo è stato effettivamente implementato per FreeBSD - forse si potrebbe guardare il loro codice?

http://www.cs.columbia.edu/~smb/3514.html

+0

Lo vedo, ma: 1) Una patch del kernel sembra un eccesso 2) Il collegamento effettivo alla patch sembra essere rotto: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/hackers/ 2008-04/msg00073.html – AltF4

+2

Dopo averlo esaminato ancora per un po ', sembra che tu abbia parzialmente ragione, Colin. Sembrerebbe che sia necessaria una patch del kernel per ottenere questo tipo di funzionalità in iptables. Una soluzione, tuttavia, sarebbe quella di utilizzare la tabella mangle. Puoi inserire un flag nei campi DSCP ed ECN dell'intestazione IPv4, che sono spesso inutilizzati.Anche se farlo potrebbe causare problemi se la tua rete effettivamente usa qualcosa lì dentro. – AltF4

5

si hanno due opzioni:

Uno è quello di utilizzare https://code.google.com/p/evilbitchanger/, uno script basato Scapy che fa impostando il bit Male lavoro per voi.

L'altro consiste nell'utilizzare lo script di scapy raw per creare i pacchetti con bit Evil. Come documentato, Scapy è in grado di impostare lo Evil Bit flag quite easily.

>>> t=TCP() 
>>> t.flags="SA" 
>>> t.flags 
18 
>>> t 
<TCP flags=SA |> 
>>> t.flags=23 
>>> t 
<TCP flags=FSRA |> 
>>> i=IP(flags="DF+MF") 
>>> i.flags 
3 
>>> i 
<IP flags=MF+DF |> 
>>> i.flags=6 
>>> i 
<IP flags=DF+evil |> 

Spero che questo aiuti.