suricata7 rule加载(三)加载options

suricata7.0.5

加载options

(msg:“HTTP Request Example”; flow:established,to_server; http.method; content:“POST”; http.uri; content:“query.php”; bsize:>9; http.protocol; content:“HTTP/1.1”; bsize:8; http.host; content:“360”; bsize:>3; classtype:bad-unknown; sid:25; rev:1;)

SigParseOptions(...)

大致逻辑:

  • 通过;拆分,获取单个的关键字以及值
  • 通过:拆分,获取关键字名称以及值
  • 调用SigTableGet函数,通过关键字名称获取对应的提前注册好的关键字节点
  • 调用节点中设置的Setup回调函数进行处理
    请添加图片描述
    以下按照rule中的顺序依次进行解析

msg

"msg" -> sigmatch_table[DETECT_MSG] -> DetectMsgSetup
请添加图片描述

flow

"flow" -> sigmatch_table[DETECT_FLOW] -> DetectFlowSetup
请添加图片描述

http.method

"http.method" -> sigmatch_table[DETECT_HTTP_METHOD] -> DetectHttpMethodSetupSticky

请添加图片描述

content

"content" -> sigmatch_table[DETECT_CONTENT] -> DetectContentSetup
这里的content是关联前面http.method,通过sig->init_data->list进行关联,SigMatch节点是挂在id=g_http_method_buffer_id的位置,如果后面还有bsize等关键字关联http.method的则会链式的继续挂在后面。如下图
请添加图片描述

http.uri

"http.uri" -> sigmatch_table[DETECT_HTTP_URI] -> DetectHttpUriSetupSticky
请添加图片描述

content

请添加图片描述

bsize

"bsize" -> sigmatch_table[DETECT_BSIZE] -> DetectBsizeSetup
请添加图片描述

http.protocol

"http.protocol" -> sigmatch_table[DETECT_AL_HTTP_PROTOCOL] -> DetectHttpProtocolSetup
请添加图片描述

content

请添加图片描述

bsize

请添加图片描述

http.host

"http.host" -> sigmatch_table[DETECT_HTTP_HOST] -> DetectHttpHostSetup

请添加图片描述

content

请添加图片描述

bsize

请添加图片描述

classtype

"classtype" -> sigmatch_table[DETECT_CLASSTYPE] -> DetectClasstypeSetup

请添加图片描述

sid

实际上代码里,sid是第一个解析的,因为每个rule都必须有sid,如果没有则可以快速的跳过。
"sid" -> sigmatch_table[DETECT_SID] -> DetectSidSetup
请添加图片描述

rev

"rev" -> sigmatch_table[DETECT_REV] -> DetectRevSetup
请添加图片描述

总结

sig->init_data->buffers中的每个节点对应一个关键字,其中的id对应g_buffer_type_hash中的关键字编号
请添加图片描述

到这里,第一步将rule加载到内存中算是完成。
接下来就是最关键的如何将其构建成匹配树。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/796083.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java毕业设计 基于SSM vue电影订票系统小程序 微信小程序

Java毕业设计 基于SSM vue电影订票系统小程序 微信小程序 SSM 电影订票系统小程序 功能介绍 用户 登录 注册 忘记密码 首页 图片轮播 电影信息 电影详情 评论 收藏 预订 电影资讯 资讯详情 用户信息修改 电影评价 我的收藏管理 用户充值 在线客服 我的订单 管理员 登录 个人…

【微信小程序知识点】自定义构建npm

在实际开发中,随着项目的功能越来越多,项目越来越复杂,文件目录也变得很繁琐,为了方便进行项目的开发,开发人员通常会对目录结构进行优化调整,例如:将小程序源码放到miniprogram目录下。 &…

基于B站视频评论的文本分析,采用包括文本聚类分析、LDA主题分析、网络语义分析

研究主题 本研究旨在通过对B站视频评论数据进行文本分析,揭示用户评论的主题、情感倾向和语义结构,助力商业决策。主要技术手段包括Python爬虫、LDA主题分析、聚类分析和语义网络分析。首先,利用Python爬虫采集大量评论数据并进行预处理。运…

通用详情页的打造

背景介绍 大家都知道,详情页承载了站内的核心流量。它的量级到底有多大呢? 我们来看一下,日均播放次数数亿次,这么大的流量,其重要程度可想而知。 在这样一个页面,每一个功能都是大量业务的汇总点。 作为…

Mac M1安装配置Hadoop+Flink SQL环境

Flink 1.18.1 Hadoop 3.4.0 一、准备工作 系统:Mac M1 (MacOS Sonoma 14.3.1) JDK:jdk1.8.0_381 (注意:尽量一定要用JDK8,少用高版本) Scala:2.12 JDK安装在本机的/opt/jdk1.8.0_381.jdk/C…

认识R155法规(UN Regulation No. 155)-MUNIK

背景 Background 随着汽车新四化(电动化、智能化、网联化、共享化)政策的提出,大数据和人工智能等技术的发展,以及软件驱动汽车、舱驾一体、行泊一体等新型架构概念的提出,车内外智能传感器采集的大量数据&#xff08…

数据结构4.0——串的定义和基本操作

串的定义(逻辑结构) 串,即字符串(String)是由零个或多个字符组成的有序数列。 一般记为Sa1a2....an(n>0) 其中,S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n0时的…

观察者模式的实现

引言:观察者模式——程序中的“通信兵” 在现代战争中,通信是胜利的关键。信息力以网络、数据、算法、算力等为底层支撑,在现代战争中不断推动感知、决策、指控等各环节产生量变与质变。在软件架构中,观察者模式扮演着类似的角色…

SpringBoot实战:枚举类型转换问题

1.在controller层中完成service注入 2.调用业务层进行查询所有房间类型标签 Tag(name "标签管理") RestController RequestMapping("/admin/label") public class LabelController {Autowiredprivate LabelInfoService service;Operation(summary &qu…

dm-verity hashtree的结构

参考了:实现 dm-verity | Android Open Source Project (google.cn)。基于这个添加了一层原始数据,便于理解。 结构图如下: 对hashtree结构图的解释: dev data:表示我们的分区数据。这里我们将dev data按照指定的大…

【JAVA poi-tl-ext 富文本转word】

富文本转word 环境使用poi-tl-ext的原因富文本转word代码 环境 jdk 1.8 <dependency><groupId>io.github.draco1023</groupId><artifactId>poi-tl-ext</artifactId><version>0.4.16</version> </dependency>poi-tl-ext已经包…

学习C++,应该循序渐进的看哪些书?

学习C是一个循序渐进的过程&#xff0c;需要根据自己的基础和目标来选择合适的书籍。以下是一个推荐的学习路径&#xff0c;包含了从入门到进阶的书籍&#xff1a; 1. 入门阶段 《C Primer Plus 第6版 中文版》 推荐理由&#xff1a;这本书同样适合C零基础的学习者&#xff0…

中国蚁剑的安装(附文件)

1.下载压包&#xff08;注意两个都要下载&#xff09; 我先挂几个月&#xff0c;后续怕找不到的话&#xff0c;就自己保存网盘 链接:https://pan.baidu.com/s/1bhBe6a1_5VFYUY35XG1N9Q?pwdx9gp 提取码:x9gp 链接:https://pan.baidu.com/s/1u8CMkOORRVpCI2zJysJPQQ?pwdx9gp …

java Web学习笔记(三)

文章目录 1. 前置知识2. Vue使用vite构建项目SFC入门使用ref和.value体会响应式数据&#xff08;使用ES6和setup&#xff09; 3. Vue视图渲染技术及其语法模板语法&#xff1a;命令插值表达式渲染双标><中的文本&#xff08;还挺可爱&#xff09;属性渲染命令事件渲染命令…

内网对抗-基石框架篇域树林域森林架构信任关系多域成员层级信息收集环境搭建

知识点&#xff1a; 1、基石框架篇-域树&域林架构-权限控制-用户和网络 2、基石框架篇-域树&域林架构-环境搭建-准备和加入 3、基石框架篇-域树&域林架构-信息收集-手工和工具1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的…

24/7/12总结

axios Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。 get请求: <script>function…

WordPress 主题技巧:给文章页增加“谁来过”模块。

模块功能&#xff1a; 我个人目前在做一个电影类的网站&#xff0c;在开发文章页的模版时候&#xff0c;突然觉得给文章页增加一个“谁对本电影感兴趣”的功能模块可能会比较有趣&#xff0c;这个功能有点类似于‘足迹’的感觉&#xff0c;用户可以通过这个功能&#xff0c;发…

C# Winform 系统方案目录的管理开发

在做一个中等复杂程度项目时&#xff0c;我们通常有系统全局配置&#xff0c;还要有对应的方案目录的管理和更新。 比如我们有如下需求&#xff1a;开发一个方案管理&#xff0c;可以新建、打开和保存方案&#xff0c;同时还需要保存方案中的各种文件。我设计的采用目录管理和…

短视频SEO矩阵系统:源码开发与部署全攻略

在数字化时代&#xff0c;短视频已成为人们获取信息、娱乐休闲的重要方式。随着短视频平台的兴起&#xff0c;如何让自己的内容在众多视频中脱颖而出&#xff0c;成为每个创作者和内容运营者关注的焦点。本文将为您深入解析短视频SEO矩阵系统的源码开发与部署&#xff0c;助您在…

Flink异常:org/apache/hadoop/hive/ql/parse/SemanticException

在flink项目中跑 上面这段代码出现如下这个异常&#xff0c; java.lang.NoClassDefFoundError: org/apache/thrift/TException 加上下面这个依赖后不报错 <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId…