IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 网络数据检测规则 -> 正文阅读

[网络协议]网络数据检测规则

?目录

规则头

规则行为,根据优先级排列:

协议:

源ip,目标ip:

源端口/目标端口:

流量方向:

规则体

msg:

flow流匹配:?

flowbits :

sameip源ip、目标ip检测:

content内容匹配:

不区分大小写 nocase:

偏移位置 offset:

结束位置 depth:

在xx范围外 distance :

在xx范围内 within:

有效载荷大小 dsize:

pcre正则 ?pcre:

http修饰符:

fast_pattern快速匹配模式:?

threshold阀值:

reference引用:

priority优先级:

classtype类别:

sid特征标示符:

gid组:

rev修订:

metadata元数据:

自定义一个规则




参考: https://suricata.readthedocs.io/en/latest/rules/index.html#

规则头

alert tcp $HOME_NET any -> $EXTERNAL_NET 1024:

?

规则行为,根据优先级排列:

????????pass 如果匹配到规则后,suricata会停止扫描数据包,并跳到所有规则的末尾

????????drop ips模式使用,如果匹配到之后则立即阻断数据包不会发送任何信息

????????reject 对数据包主动拒绝,接受者与发送中都会收到一个拒绝包

????????alert 记录所有匹配的规则并记录与匹配规则相关的数据包

协议:

????????在规则中指定匹配那些协议,suricata支持的协议要比snort多一些

????????TCP、UDPICMPIP(同时用与TCPUDP)、httpftpsmbdns

ip,目标ip

????????支持单个ipcidrip组,[96.30.87.36,96.32.45.57],所有主机any,以及规则文件中配置?的?ip变量$HOME_NET(受保护的ip段)与$EXTERNAL_NET(其他所有ip):

源端口/目标端口:

????????支持设置单个端口80,端口组[80,8080],端口范围[1024:65535]以及any任意端口,还可以在配置文件中添加端口组,通过!号来进行排除

流量方向:

????????-> 单向流量,从源ip到目标ip的单项流量

????????<> 双向流量,2ip往返之间的流量

规则体

(msg:"ET MALWARE Win32/HunterStealer/AlfonsoStealer CnC Exfil"; flow:established,to_server; content:"|50 4b 03 04 14 00|"; depth:6; content:"Desktop.png"; distance:0; fast_pattern; reference:md5,20f025a45247cc0289e666057149c28e; reference:md5,7f053ba33d6e4bf07a15ee65dd2b0d92; classtype:command-and-control; sid:2031198; rev:1; metadata:affected_product Windows_XP_Vista_7_8_10_Server_32_64_Bit, attack_target Client_Endpoint, created_at 2020_11_11, deployment Perimeter, former_category MALWARE, malware_family HunterStealer, signature_severity Major, updated_at 2020_11_11;)

msg

????????规则名称,规则中的第一个字段,ids告警上显示的信息

????????ET MALWARE Win32/HunterStealer/AlfonsoStealer CnC Exfil??

flow流匹配:?

????????flow是特定时间内具有相同数据的数据包(5元组信息)同属于一个流,suricata会将这些流量保存在内存中。

????????to_client/from_server?? ?服务器到客户端

????????to_server/from_client??? ?客户端到服务器

????????established?????? 匹配已经建立连接的(tcp则是经过3次握手之后,udp则是有双向流量)

????????no_established???? 匹配不属于建立连接的

????????only_stream?? ?匹配由流引擎重新组装的数据包

????????no_stream?? ?不匹配流引擎重新组装的数据包

flowbits :

????????flowbits set , name??? ?设置条件

????????flowbits isset, name?? ?选择条件

????????一旦设置flowbits之后,第一条规则没有命中那么第二条规则即使命中了也不会显示出来,例如一些攻击行为的响应信息,现在请求中设置条件,然后在响应中选择条件

????????

sameipip、目标ip检测

????????会将流量中源ip和目标ip相同的显示出来。

????????alert ?ip any any -> any any (msg:"GPL SCAN same SRC/DST"; sameip; ?????????reference:bugtraq,2666; reference:cve,1999-0016; ?????????reference:url,www.cert.org/advisories/CA-1997-28.html; classtype:bad-unknown; ?????????sid:2100527; rev:9; metadata:created_at 2010_09_23, updated_at 2010_09_23;)

content内容匹配:

????????检测数据包中是否存在此内容,例如检测流量中是否存在Desktop.png

????????如果有多个匹配项可以使用 content:"evilliveshere";? ?content:"here"; 这种写法,注意如果没有用内容修饰的话,ids不会按照先后顺序去匹配的,只会在内容中匹配是否包含这2个值,必须用内容修饰来调整先后顺序,用distance 0 来让第二个匹配项在第一个匹配项匹配位置之后匹配,并且如果有多个content他们的关系是and关系必须都匹配到才告警

????????使用感叹号!对匹配项的否定:content:!"evilliveshere";

????????将字符串的十六进制用管道符(|)进行包围:content:"|FF D8|"; 字符串与十六进制混合使用:content:"|FF |SMB|25 05 00 00 80|"; ?

????????匹配内容区分大小写,保留字符(; \ "|)须进行转义或十六进制转码

????????内容修饰,能够更加精准匹配

不区分大小写 nocase

????????content:"root";nocase;??? #修饰符直接在;号后面添加

偏移位置 offset

????????content:"xss";offset 100;?? ?#代表了从数据包开始位置0往后偏移100位字节后进行匹配

结束位置 depth

????????content:"xss";offset 100;depth 200; #代表了匹配数据包结束的位置,如果没有offset则是从开始位置计算,有offset则是从offset开始,此次则是从100字节开始匹配到200字节内的内容。

xx范围外 distance

????????本次匹配必须在上一次匹配结束位置到distance设置的偏移位置区间之外,例如content:"msg1";content:"msg2";distance:25; 如果msg1在第100行找到,那么就会在100+25后匹配msg2 ?

xx范围内 within

????????本次匹配必须在上一次匹配结束位置之内,如果上次结束是100within 15;那么第二次匹配必须在100115之内开始匹配

????????如果withindistance同时出现 content:"evilliveshere";? content:"here"; ?distance:1;within:7; 则匹配here? evilliveshere位置结束1-7内匹配

有效载荷大小 dsize

????????dsize: >64?? 用来匹配payload大小,可以用来检测异常包大小

pcre正则 ?pcre

????????content:"xss"; pcre:"xss\w"? ?先匹配content内容后才进行匹配pcre正则,这样的话减少系统开销

http修饰符:

????????更多详细内容查看:http://suricata.readthedocs.io/en/suricata4.0.4/rules/http-keywords.html

alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET EXPLOIT Mi Router 3 Remote Code Execution CVE-2018-13023"; flow:to_server,established; http.method; content:"GET"; http.uri; content:"/cgi-bin/luci/|3b|stok="; fast_pattern; content:"&sns=sns&grant=1&guest_user_id=guid&timeout="; distance:0; reference:url,blog.securityevaluators.com/show-mi-the-vulns-exploiting-command-injection-in-mi-router-3-55c6bcb48f09; reference:cve,2018-13023; classtype:attempted-admin; sid:2030311; rev:2; metadata:affected_product Linux, attack_target IoT, created_at 2020_06_11, deployment Perimeter, former_category EXPLOIT, signature_severity Minor, updated_at 2020_06_11;)

????????http.method???????? 客户端使用的HTTP方法(GETPOST等)

????????http.uri?????????????? ? HTTP客户端请求的URI内容

????????http.header????????? HTTP请求或响应头的任何内容

????????http.request_body? http 客户端请求的主体内容

????????http.request_line

????????http.header_names? http 头字符串("Referer" "User-Agent"等)

????????http.user_agent

????????http.referer

????????http.content_type

????????http.host

????????http.protocol? http版本("HTTP/1.0"

????????http.content_len

????????http.stat_code 服务器响应的HTTP状态字段内容

?

fast_pattern快速匹配模式:?

????????如果suricata规则中有多个匹配项目,快速匹配的目的是设置优先级最高的匹配项,如果设置了快速匹配模式没有命中则跳过这条规则

threshold阀值:

????????threshold: ?type <threshold|limit|both>, track <by_src | by_dst>, count <N>, seconds <T>

????????threshold 最小阀值? 也就是说只有匹配到至少多少次数才进行告警

????????limit 限制告警次数,例如最少5分钟内告警一次

????????调节阀值主要是通过2种方法,一种是通过规则内的threshold关键字来调节,下图中类型是limit也就是限制告警次数,track ?by_src代表来源ipseconds 60 每个60秒告警一次count 1

????????另外一种则是通过配置文件/etc/threshold.config来进行控制,更加推荐这种方法,写在规则内部每次更新后都会替换掉。

????????event_filter gen_id 1(组id, sig_id ?1101111(规则id, type limit ,track by_src, count 1 , ?seconds 60

????????suppress 则是告警排除,排除指定ip产生的规则告警,下图则表示如果来自217.110.97.128/25如果命中图中的规则后则不会产生告警,主要用于排除一些扫描ip

?

reference引用:

????????连接外部信息来源,补充描述,reference:url,sf-freedom.blogspot.com/2006/07/heap-spraying-internet-exploiter.html

priority优先级:

????????手动设置规则优先级别,范围1-2551最高,一般都是1-4suricata会首先检查优先级较高的规则

classtype类别:

????????根据规则检测到的活动类型为规则分类, ?classtype:attempted-user

sid特征标示符:

????????用于唯一性规则标识,sid不能重复,0-10000000 VRT保留,20000000-29999999 Emerging保留,30000000+:公用

gid组:

????????[1:2000000] 告警前面的1代表组id

rev修订:

????????规则版本号,每次修改规则rev则递增1

metadata元数据:

????????suricata会忽略元数据背后的语句,用于添加备注

自定义一个规则

alert? tcp any any -> any any (msg: "Http rule test!";? flow:to_server,established; http.host; content:" y.gtimg.cn"; sid:3030303; rev:1;)

?

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:30:30  更:2021-09-12 13:31:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 10:55:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计