unified2

Software screenshot:
unified2
Dettagli del software:
Versione: 12.07.0
Data di caricamento: 20 Feb 15
Sviluppatore: Mike Kazantsev
Licenza: Libero
Popolarità: 5

Rating: 4.0/5 (Total Votes: 1)

unified2 è un parser-Python puro per IDS (si pensi [Snort] (http://snort.org)) unified2 formato log binario.
Modulo consente di elaborare IDS registri in formato binario "unified2" in oggetti Python.
Essa non risolve ids regole e non vuole essere un sostituto per barnyard2 o Snort stesso in quel ruolo.
Scopo principale è quello di estrarre dati a pacchetto dal registro, associati a qualche particolare innescato (e risolti / registrato separatamente attraverso altri mezzi, ad esempio alert_syslog o alert_csv moduli Snort) regola, quindi non ho prestato molta attenzione ai metadati evento di elaborazione.
Modulo non ha componenti C e non usa ctypes, quindi dovrebbe essere abbastanza portatile per le implementazioni di lingua non CPython.
Formato
Definizione Format è derivato da Snort intestazioni (src / sfutil / Unified2_common.h) tramite modulo pyclibrary e sono memorizzati nella cache in file di unified2 / _format.py.
Le definizioni più recenti (ad esempio, se sono stati aggiunti nuovi tipi di dati) può essere generato eseguendo lo stesso script sul Unified2_common.h del Snort:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; bzr branch lp: pyclibrary
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cd pyclibrary
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; python ... / unified2 / _format.py ... / snort-2.XYZ/src/sfutil/Unified2_common.h
Installazione
Si tratta di un pacchetto regolare per Python 2.7 (non 3.X).
Utilizzando pip è il modo migliore:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Pip installare unified2
Se non lo avete, usate:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Easy_install pip
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Pip installare unified2
In alternativa, vedi anche:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Arricciatura https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Pip installare unified2
Oppure, se assolutamente necessario:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Easy_install unified2
Ma, davvero non dovrebbe farlo.
Versione corrente-git può essere installato in questo modo:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Pip installare -e 'git: //github.com/mk-fg/unified2.git#egg=unified2'
Utilizzo
Semplice esempio:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; import unified2.parser
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; per ev, ev_tail in unified2.parser.parse ('/ var / log / snort / snort.u2.1337060186'):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; print 'Evento:', ev
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; se ev_tail: 'tail Evento:' stampa, ev_tail
Oggetto Event ecco un dict di metadati e una "coda", che può essere un blob o una simile tuple ricorsivamente-analizzata dei metadati-dict e "coda" (ad esempio per UNIFIED2_EXTRA_DATA).
Interfaccia unified2.parser.Parser è meglio illustrato dalla funzione unified2.parser.read:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; parser, buff_agg = Parser (), ''
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; while True:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; appassionato = parser.read (src)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; se non lucidare: rompere # EOF
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; buff_agg + = appassionato
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; while True:
                        buff_agg, ev = parser.process (buff_agg)
                        se ev è None: rottura
                        resa ev
Idea è che il metodo Parser.read deve essere chiamato con un flusso (ad esempio un oggetto di file), restituendo però molti byte parser ha bisogno per ottenere il prossimo pezzo da interpretare dei dati (un pacchetto, in caso di log u2) o qualsiasi altra cosa può essere letto Al momento, stringa vuota è solitamente un'indicazione di ritorno leggere EOF o forse non bloccante.
Parser.process allora dovrebbe essere chiamato con accumulato (da Parser.read chiama) Buffer, restituendo il primo pacchetto che può essere analizzato da lì (o None, se buffer non è abbastanza grande) e rimanendo dati (analizzati dal non) del buffer.

Requisiti :

  • Python

Programmi simili

AntiExploit
AntiExploit

3 Jun 15

cciss_vol_status
cciss_vol_status

20 Feb 15

instax
instax

20 Feb 15

check_iseries
check_iseries

2 Jun 15

Altri software di sviluppo Mike Kazantsev

graphite-metrics
graphite-metrics

20 Feb 15

aura
aura

20 Feb 15

django-unhosted
django-unhosted

20 Feb 15

Commenti a unified2

I commenti non trovato
Aggiungi commento
Accendere le immagini!