Вывод c помощью PERL сводной информации из eve.json Системы IDS Suricata

Linux > Вывод c помощью PERL сводной информации из eve.json Системы IDS Suricata
09.02.2015 14:39:23



Статья:

Если ещё  не стоит то apt-get install libjson-perl

eve.json -suricata должен быть настроен только на вывод alert

#!/usr/bin/perl
use JSON;
#use Data::Dumper;
open(MYFILE2, "/var/log/suricata/eve.json");
@array2;
while ($json =<MYFILE2>) {
chomp $json;
push @array2, decode_json($json);

}
print "DATE\tSRC_IP\tdest_ip\tseverity\tsignature_id\tcategory\tsignature\n";
print "************************************************************************************ \n";
foreach $element (@array2) {
print $element->{'timestamp'}."\t" ;
print $element->{'src_ip'}."\t" ;
print $element->{'dest_ip'}."\t" ;
print $element->{'alert'}->{'severity'}."\t" ;
print $element->{'alert'}->{'signature_id'}."\t" ;
print $element->{'alert'}->{'category'}."\t" ;
print $element->{'alert'}->{'signature'} ;
print "\n";
# print Dumper( $element);
}

 

 

Ещё  один пример использования, ведётся  список  запретных IP. надо его взять и слить с suricata списком и вывести новый  список IP . для  последущего использования  с  IPSET

#!/usr/bin/perl
use JSON;
#use Data::Dumper;
#Получаем список с suricata
open(MYFILE, "/var/log/suricata/eve.json");
@array3;
@array;
while ($json =<MYFILE>) {
chomp $json;
push @array3, decode_json($json);

}


foreach $element (@array3) {
$src_ip=$element->{'src_ip'} ;
$dest_ip= $element->{'dest_ip'} ;
$signature_id= $element->{'alert'}->{'signature_id'};
if ($dest_ip=='192.168.1.2' )
{
#условие для отбора плохих IP
if ($signature_id=='2011517 )
{push @array,$src_ip; }
}


}
#print Dumper( @array);

#читаем старый iptables сформированный файл IPSET
open(MYFILE2, "mai.txt");
while ($row =<MYFILE2>) {
chomp $row;
push @array2, $row;

}

#сливаем массивы в воедино
push @array, @array2 ;
#удаление повторяющихся значений
%hash = map { $_ => 1} @array;
@dst = keys %hash;
#вывод
while (($key, $value) = each(@dst)) {
if ($value!="нет") {print("$value\n");}
}