[Oisf-devel] filemd5?

Martin Holste mcholste at gmail.com
Thu Feb 16 15:06:25 UTC 2012


Ok, so to really make this thing pay off, and without too much effort,
I bet this could be done:

1. Add a simple config option to suricata.yaml for md5list: some_file_name.txt
2. Read the file into memory at startup
3. Generate an alert if any of the runtime-detected m5's match the list.
4. Re-read the file periodically, (or on Linux, async when the inode changes)

Done!

Of course, for some lists of md5's, it may be too big for memory, but
I say too bad for those folks, just start out with this much and
everyone will win.  A proper memory/disk trade-off mechanism could be
concocted later to deal with mega-lists of md5's.

On Thu, Feb 16, 2012 at 8:59 AM, Nikolay Denev <ndenev at gmail.com> wrote:
> On Feb 16, 2012, at 4:21 PM, Victor Julien wrote:
>
>> So I guess the best development happens when you're actually doing
>> boring stuff and you allow yourself to spend 30 minutes on a hunch. Of
>> course the 30 minutes becomes a couple of hours, but who cares :)
>>
>> Anyway, the hunch here was integrating libnss' md5 calculation code into
>> the Suricata file inspection/extraction code, calculating the md5
>> checksum of files on the fly.
>>
>> Turns out it works and at decent speeds too. In a test pcap I extract
>> 8393 files in 16.9 seconds. With md5 on the fly it's 17.6 seconds.
>> Sounds acceptable, no?
>>
>> Right now all I have is writing the md5 to the .meta file, like so:
>>
>> TIME:              10/02/2009-21:35:10.556990
>> PCAP PKT NUM:      6225
>> SRC IP:            61.191.61.40
>> DST IP:            192.168.2.7
>> PROTO:             6
>> SRC PORT:          80
>> DST PORT:          1091
>> FILENAME:          /ww/aa7.exe
>> MAGIC:             PE32 executable for MS Windows (GUI) Intel 80386 32-bit
>> STATE:             CLOSED
>> MD5:               e148eaaadceecb2e3e25fd25809cb5db
>> SIZE:              25712
>>
>> But obviously this needs to be made available to the rule language. I
>> was thinking a simple filemd5 keyword to start, allowing matching on
>> single md5's. But the real value is probably in a keyword that allows
>> you to check an entire db of md5's all at once. I'm sure there are ppl
>> sitting on large collections of known bad md5.
>>
>> Does this all make sense? Any other ideas?
>>
>> --
>> ---------------------------------------------
>> Victor Julien
>> http://www.inliniac.net/
>> PGP: http://www.inliniac.net/victorjulien.asc
>> ---------------------------------------------
>>
>
> Very cool!
>
> This seems that can be also used to provide DLP functionality, i.e. keep a database with md5 checksums of files with sensitive data and
> alert if the data is leaked (regardless of filename). I've heard at least of one DLP vendor that uses similar method to detect unauthorized data leaks.
>
>
> _______________________________________________
> Oisf-devel mailing list
> Oisf-devel at openinfosecfoundation.org
> http://lists.openinfosecfoundation.org/mailman/listinfo/oisf-devel



More information about the Oisf-devel mailing list