suricata文件提取

1.架构

文件提取代码在一些协议解析器之上工作。应用程序层解析器在流重组引擎和UDP流跟踪之上运行。

在HTTP的情况下,解析器负责解压缩并在必要时解压缩请求和/或响应数据。

这意味着流引擎,重组引擎和应用程序层解析器中的设置都会影响文件提取的工作。

实际提取并存储到磁盘的文件由规则语言控制。

支持的协议是:

HTTP

SMTP

FTP

NFS

SMB

2.设置

stream.checksum_validation控制流引擎是否拒绝具有无效校验和的数据包。通常一个好主意,但网络接口执行校验和卸载很多数据包可能似乎被打破。默认情况下启用此设置,可以通过设置为“no”来禁用此设置。请注意,可以按接口控制校验和处理,请参阅示例配置中的“checksum_checks”。

file-store.stream-depth控制流重组的完成程度。超过此值不会重新组装。这意味着在此值之后将不再跟踪HTTP会话。默认情况下,使用1兆字节的设置。0将其设置为无限制。如果设置为no,则禁用它并考虑stream.reassembly.depth。

libhtp.default-config.request-body-limit / libhtp.server-config.<config> .request-body-limit控制http_client_body关键字跟踪检查HTTP请求主体的数量,但也用于限制文件检查。值0表示无限制。

libhtp.default-config.response-body-limit / libhtp.server-config.<config> .response-body-limit与请求主体限制类似,只适用于HTTP响应主体。

3.输出

3.1 File-Store和Eve fileinfo

有两个输出模块用于记录有关提取的文件的信息。第一个是记录记录eve.files的eve子记录器fileinfo。这些fileinfo记录提供有关文件的元数据,但不提供实际的文件内容。

必须在eve输出中启用此选项:

图1

另一个输出模块file-store将实际文件存储到磁盘.

file-store使用它自己的日志目录(默认情况下存储在默认日志目录),并使用日志文件的内容的SHA256作为文件名。然后将每个文件放在名为00到ff的目录中,其中目录共享文件名的前2个字符。例如,如果解压缩文件的SHA256十六进制字符串以“f9bc6d ...”开头,则我们将文件放在目录 filestore/f9中。

使用SHA256作为文件名允许自动重复数据删除提取的文件。但是,如果再次提取相同的文件,则会更新预先存在的文件的时间戳,类似于touch命令。

可选地,fileinfo可以将记录写入其自己的文件,共享与其引用的文件相同的SHA256。为了处理每次出现的提取文件的元数据,这些文件名包含一些额外的字段以确保唯一性。目前的格式是:

<SHA256>.<SECONDS>.<ID>.json

<SECONDS>是触发存储文件的数据包的秒数,并且<ID>是Suricata实例的运行时的唯一ID。不应依赖这些值,仅用于确保唯一性。

这些fileinfo记录对fileinfo记录到eve输出的记录是必不可少的。

3.2 File-Store(V1)

注意:文件存储版本1已被版本2取代,不再推荐使用。

图2

存储的每个文件都将具有名称“file.<id>”。除非使用waldo选项,否则将重置ID并覆盖文件。如果write-meta设置为yes(默认),则生成包含文件元数据的“file.<id> .meta”文件。如果设置了include-pid选项,则文件将改名为“file.<pid>.<id>”,元文件将为“file.<pid>.<id> .meta”。文件在打开时还会带有后缀“.tmp”,只有在最终确定时才会删除。

3.3 File-Log(已弃用)

file-log 是一个独立的记录器,用于记录有关提取的文件的信息。它已被弃用,不应使用。它已被eve.files在Eve输出取代。

图3

4.规则

没有规则就不会进行提取。最简单的规则是:

alert http any any->any any(msg:"FILE store all";filestore;sid:1;rev:1;)

这只会将所有文件存储到磁盘。想要以pdf扩展名存储所有文件?

alert http any any->any any(msg:"FILE PDF file claimed";fileext:"pdf";filestore;sid:2;rev:1;)

或者更确切地说是所有实际的PDF文件

alerthttpanyany->anyany(msg:"FILE pdf detected";filemagic:"PDF document";filestore;sid:3;rev:1;)

或者只是存储来自黑名单校验和md5的文件?

alerthttpanyany->anyany(msg:"Black list checksum match and extract MD5";filemd5:fileextraction-chksum.list;filestore;sid:4;rev:1;)

或者只存储黑名单校验和sha1中的文件?

alerthttpanyany->anyany(msg:"Black list checksum match and extract SHA1";filesha1:fileextraction-chksum.list;filestore;sid:5;rev:1;)

或者最后从黑名单校验和sha256存储文件?

alerthttpanyany->anyany(msg:"Black list checksum match and extract SHA256";filesha256:fileextraction-chksum.list;filestore;sid:6;rev:1;)

绑定Suricata下载是一个包含更多示例规则的文件。在存档中,转到rules/目录并检查files.rules文件。

5.MD5

Suricata可以动态计算文件的MD5校验和并记录它们。

5.1 配置

在suricata yaml:

图4

对于JSON输出,可选:

图2

确保depth: 0 它可以完全跟踪所有文件

图3

确保我们有request-body-limit:0和 response-body-limit:0

图4

5.2 测试

出于测试目的,我们仅在file.rules(测试/示例文件)中使用此规则:

alert http any any->any any(msg:"FILE store all";filestore;sid:1;rev:1;)

上面的规则将保存通过HTTP打开/下载的文件的所有文件数据

启动Suricata(-S选项仅加载指定的规则文件,如果在suricata.yaml中启用了任何其他规则,则忽略它):

suricata -c /etc/suricata/suricata.yaml -S  file.rules  -i  eth0

元数据:

图5

在files-json.log(或eve.json)中:

{"id":1,"timestamp":"05\/01\/2012-11:10:27.693583","ipver":4,"srcip":"2.23.144.170","dstip":"192.168.1.91","protocol":6,"sp":80,"dp":51598,"http_uri":"\/en\/US\/prod\/collateral\/routers\/ps5855\/prod_brochure0900aecd8019dc1f.pdf","http_host":"www.cisco.com","http_referer":"http:\/\/www.google.com\/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&url=http%3A%2F%2Fwww.cisco.com%2Fen%2FUS%2Fprod%2Fcollateral%2Frouters%2Fps5855%2Fprod_brochure0900aecd8019dc1f.pdf&ei=OqyfT9eoJubi4QTyiamhAw&usg=AFQjCNGdjDBpBDfQv2r3VogSH41V6T5x9Q","filename":"\/en\/US\/prod\/collateral\/routers\/ps5855\/prod_brochure0900aecd8019dc1f.pdf","magic":"PDF document, version 1.6","state":"CLOSED","md5":"59eba188e52467adc11bf2442ee5bf57","stored":true,"size":9485123}

{"id":12,"timestamp":"05\/01\/2012-11:12:57.421420","ipver":4,"srcip":"2.23.144.170","dstip":"192.168.1.91","protocol":6,"sp":80,"dp":51598,"http_uri":"\/en\/US\/prod\/collateral\/routers\/ps5855\/prod_brochure0900aecd8019dc1f.pdf","http_host":"www.cisco.com","http_referer":"http:\/\/www.google.com\/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&url=http%3A%2F%2Fwww.cisco.com%2Fen%2FUS%2Fprod%2Fcollateral%2Frouters%2Fps5855%2Fprod_brochure0900aecd8019dc1f.pdf&ei=OqyfT9eoJubi4QTyiamhAw&usg=AFQjCNGdjDBpBDfQv2r3VogSH41V6T5x9Q","filename":"\/en\/US\/prod\/collateral\/routers\/ps5855\/prod_brochure0900aecd8019dc1f.pdf","magic":"PDF document, version 1.6","state":"CLOSED","md5":"59eba188e52467adc11bf2442ee5bf57","stored":true,"size":9485123}

5.3 没有任何规则下记录所有MD5

如果你想记录MD5s的所有内容以及通过Suricata检查的流量,但不记录文件本身,那么你所要做的就是禁用文件存储并只启用带强制MD5的JSON输出 - 在suricata.yaml设置如这样: 

图6
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 226,979评论 6 528
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 97,750评论 3 412
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 174,647评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,299评论 1 307
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,104评论 6 405
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,623评论 1 320
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,716评论 3 434
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,873评论 0 285
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,380评论 1 330
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,344评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,496评论 1 365
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,055评论 5 355
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,756评论 3 343
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,146评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,410评论 1 281
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,072评论 3 386
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,485评论 2 370