Thank you Doug, that worked. Actually I ended up with following (ugly) syntax:
root@onion:~# cat /opt/bro/share/bro/file-extraction/extract.bro
global ext_map: table[string] of string = {
[“application/x-dosexec”] = “exe”,
[“text/plain”] = “txt”,
[“image/jpeg”] = “jpg”,
[“image/png”] = “png”,
[“text/html”] = “html”,
} &default ="";
event file_new(f: fa_file)
{
#if ( ! f?$mime_type || f$mime_type != “application/x-dosexec” )
if ( ! f?$mime_type || f$mime_type != “application/jar” )
return;
local ext = “”;
if ( f?$mime_type )
ext = ext_map[f$mime_type];
local fname = fmt("/nsm/bro/extracted/%s-%s.%s", f$source, f$id, ext);
Files::add_analyzer(f, Files::ANALYZER_EXTRACT, [$extract_filename=fname]);
}
define file extraction filters
const match_file_source = /HTTP/ |
/IRC/ |
/IRC_DATA/ |
/FTP/ |
/FTP_DATA/ &redef;
const match_file_mime = /text/x-perl/ |
/text/x-msdos-batch/ |
/text/x-java/ |
/application/x-gzip/ |
/application/x-bzip2/ |
/application/x-dosexec/ |
/application/zip/ |
/application/jar/ |
/application/x-tar/ |
/application/x-archive/ |
/application/mac-binhex40/ |
/application/x-java-keystore/ |
/application/x-java-jce-keystore/ |
/application/x-executable/ |
/application/javascript/ &redef;
add analyer to file_new event
event file_new(f: fa_file)
{
if ( f?$mime_type &&
match_file_source in f$source &&
match_file_mime in f$mime_type )
Files::add_analyzer(f, Files::ANALYZER_EXTRACT);
}
and I bet it can be written better.
During this excersise I noticed that /nsm/bro/logs/current/files.log was not present. Found this in google: https://groups.google.com/forum/#!topic/security-onion/r4eZWOegvsY and followed suggestions. Indeed, /nsm/bro/logs/current/communication.log file contained:
1388589086.005591 manager child - - - error can’t bind to 0.0.0.0:47761, Address already in use
I had to use lsof command to check which process was it and:
root@onion:/nsm/bro/logs/current# lsof -i:47761
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bro 12253 root 0u IPv4 300348 0t0 TCP *:47761 (LISTEN)
bro 12253 root 1u IPv6 300349 0t0 TCP *:47761 (LISTEN)
so I killed it. After doing service nsm restart everything seems to be working again (logs + file extraction. BTW - jar files are stored without extension “jar”). But I still can see errors in communication.log:
root@onion:~# cat /nsm/bro/logs/current/communication.log |grep Address
1388589202.005024 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589204.006373 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589235.000845 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589233.001513 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589264.004692 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589266.005739 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589297.004983 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589295.005424 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589328.004598 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589326.005488 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589359.004987 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589357.004749 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589390.004760 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589388.004887 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589419.005759 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589421.005335 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589450.004988 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589452.005818 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589481.001524 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589483.001843 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589512.004547 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589514.004785 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589543.005441 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589545.004584 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589574.005125 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589576.005318 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589605.005628 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589607.004816 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589636.005317 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589638.005756 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589667.005455 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589669.005977 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589700.006115 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589698.004967 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589729.000811 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589731.012333 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589760.005435 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589762.005389 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589791.004834 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589793.005790 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589824.005289 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589822.004770 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
1388589855.005452 onion-eth1-1 child - - - error can’t bind to 0.0.0.0:47763, Address already in use
1388589853.006436 proxy child - - - error can’t bind to 0.0.0.0:47762, Address already in use
Should I be worried about these errors? I mean, file extraction is working fine, but maybe other service is not?