snort规则byte_jump规则选项详解

byte_jump规则选项的主要功能是从待检测的数据中获取指定的数值,并对数值按照要求进行加工处理,得到最终结果数值,最后跳过最终结果数值的距离,再进行后面的数据检测。

规则语法

规则格式

规则样式

byte_jump: <num of bytes>, <offset> [, relative] [, multiplier <mult_value>] [, <endian>] [, string, <num_type>] [, align] [, from_beginning] [, from_end] [, post_offset <value>][, dce][, bitmask <value>]

备注:[]标识可选字段

参数说明

|---------------------------|-----------------------------------------------------------------------------------|
| 参数 | 功能说明 |
| < num of bytes> | 使用的字节个数 |
| <offset> | 获取内容的位置(可以为负值) |
| [relative] | 若有relative修饰则offset是指从上一个content匹配位置之后开始计算,若无relative修饰,则offset是指从待检测的内容开始计算偏移字节数 |
| multiplier <mult_value> | 结果值扩大mult_value倍 |
| <endian> | big:大端字节序处理 little:小端字节序处理 |
| [string, <num_type>] | hex|dec|oct |
| [align] | 结果值按照4的整数倍对齐 |
| [from_beginning] | 从待检测数据的起始位置计算跳过的字节数 |
| [from_end] | 从待检测数据的结束位置计算跳过的字节数 |
| [post_offset <value>] | 计算的要跳过的字节数加上value作为最终要跳过的字节数 |
| [dce] | 使用dcerpc协议决定字节序 |
| [bitmask <value>] | 计算的的结果值与上当前的掩码值得到最终结果值(uint64_t) |

示例规则

alert tcp any any -> any any (msg:"byte_jump option test!"; seq:1010; byte_jump:2,20,relative,multiplier 2,string,hex,align,post_offset 10; content:"|60 80|"; within:7; sid:20240201; rev:1;)

规则释义

因规则选项seq:1010即为检测tcp数据帧的seq值是否为1010,在此就不详细赘述了,重在讲解byte_jump在规则中的作用。规则中byte_jump选项的处理流程如下:

  1. 从tcp.payload的起始位置偏移20个字节,然后获取两个字节转换为十进制数a
  2. a * multiplier(2)得到数值b;
  3. 判断数值b是否为4的倍数,若不为4的倍数,则补足为4的倍数,获得数值c
  4. 将数值c + post_offset(10)得到数值d
  5. 将数值d + offset(20) + nbytes(2)得到数值e
  6. 数值e即为十六进制字符串:0x60 0x80的起始检测位置
相关推荐
努力努力再努力wz2 小时前
【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!
java·linux·运维·服务器·c语言·数据结构·c++
物理与数学10 小时前
linux 内存分布
linux·linux内核
枷锁—sha10 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
东城绝神11 小时前
《Linux运维总结:基于ARM64+X86_64架构使用docker-compose一键离线部署MySQL8.0.43 NDB Cluster容器版集群》
linux·运维·mysql·架构·高可用·ndb cluster
creator_Li11 小时前
即时通讯项目--(1)环境搭建
linux·运维·ubuntu
一条咸鱼_SaltyFish12 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
Mr'liu12 小时前
MongoDB 7.0 副本集高可用部署
linux·mongodb
文静小土豆13 小时前
Rocky Linux 二进制 安装K8S-1.35.0高可用集群
linux·运维·kubernetes
北京耐用通信13 小时前
耐达讯自动化Profibus总线光纤中继器:光伏逆变器通讯的“稳定纽带”
人工智能·物联网·网络协议·自动化·信息与通信
科技块儿13 小时前
IP定位技术:游戏反外挂体系中的精准识别引擎
数据库·tcp/ip·游戏