Snort规则用于检测无效/不匹配的HTTP标头内容大小与实际内容大小

问题描述 投票:0回答:1

情况:攻击者发送一些无效的HTTP数据包,其内容大小与实际内容大小不匹配。我需要写一个Snort规则来捕获这些数据包

问题:据我所知,Snort不允许用户使用Snort变量/值(例如“dsize”)定义规则集。我想做的一个例子如下:

alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (\
    msg:"mismatched HTTP header content size vs actual content size"; \
    offset: *to http header content field*; \
    byte_test: *length of field of content*, !=, dsize; \
    gid: 1; sid:1000001;)

问题:我很清楚以上内容不起作用。有没有办法使用Snort规则实现上述目的?

附加信息1:我使用的是Snort 2

附加信息2:Snort 2是否可以支持脚本(LUA除外)?

附加信息3:我知道http预处理器存在,但不知道如何让它正常工作。如果你建议使用预处理器,你会指出我正确的方向吗?

rules snort
1个回答
1
投票

最简洁的答案是不。”

更长的答案是,是的,你可以为这种类型的检测编写一个插件。插件框架起初可能看起来令人生畏,但您可以非常轻松地从请求中提取内容大小字段,然后根据实际数据内容的大小进行检查。这是插件的理想检测情况。只要你的插件意识到它正在分析的数据包不是它所关心的数据包,就确保你快速拯救。例如,不仅限制您的插件观看端口80,而且还只检查包含HTTP头的数据包。

© www.soinside.com 2019 - 2024. All rights reserved.