Suricata规则配置
Suricata 规则配置
IDS/IPS/WAF
IPS、IDS和WAF分别是入侵防御系统和入侵检测系统以及WEB应用防火墙的简称,很多人说这些玩意不就是盒子吗已经过时了,其实不是,SIEM其实是有效的正规的打法,对于内网安全监控室非常必要的东西。之前大家的方式都是摒弃盒子思维,觉得盒子不靠谱防御不了真正的攻击行为。这样的理解难说不是国内众多盒子厂商(本人待过很多)走低价竞争路线的一个恶性的结果。其实在数据驱动安全的几天,盒子的作用绝不是简单的匹配规则阻断攻击这么简单的了,而是成为内网信息收集的一个Agent节点,作为云化的安全能力中心节点的触角存在,这都是非常有意义而且有必要的。
当然,我们还需要其他的更多的日志,不仅是网络层面的,需要主机层的日志信息、服务应用的日志信息等等。
规则和验证脚本
那么作为云的触角和云的核心节点(安全能力节点)有两种能力是必须具备的。第一脆弱性的发现能力(POC、EXP);第二就是威胁的监控能力,就是匹配规则。二者都来源于对攻击的理解。POC和EXP是模仿攻击的操作。规则是攻击行为的特征,是检测威胁的有效手段。废话不多说了,今天我们来学习Suricata规则。
Suricata规则范式
alert tcp any any -> any any (msg:"";content:"";sid:1;rev:1;)
其实格式就是:
动作 协议 源地址 源端口 方向 目的地址 目的端口 (规则内容)
备注1:规则内容前面称为规则头部分
备注2:规则内容用分号分割,每一项都是一个key-value的键值对 ,如上图示例
Suricata 规则头
动作:
- alert 告警
- log 记录
- pass 通过
- drop 丢弃
协议:
- TCP
- UDP
- ICMP
- IP
- Any
源和目的IP:
- IP地址 举例 10.1.1.1 或者 ! 10.1.1.1 或则[1.1.1.1 , 1.1.1.2] 或者! [1.1.1.1 , 1.1.1.2]
- IP地址段(CIDR)[10.0.0.0/24]
- Any
元和目的端口:
- 端口 80 或者 [80,443] 当然 ! 80 或者 ! [80,443] 再有 [1:80,![2,3]] [80:82]
- Any
方向:
- 单项 ->
- 双向 <>
Suricata 规则内容
Meta-settings
- msg:"description"; 描述字段,报警的时候的一些描述信息,比如某某某攻击等的
- sid: 1; 签名ID编号 1-
- rev: 3; 修订版本 1-
- gid: 2; 组ID
- classtype:trojan-activity; 查看classification.config文件中的配置,后面有优先级。
- reference: bugtraq, 123; http://www.securityfocus.com/bid 或者 reference: url, www.info.nl
- priority:1; 优先级1-255 1-4常用 优先级越小越优先
- target:[src_ip|dest_ip] 报警时候回上报这个格式的,含义是[攻击源|攻击目标]
Header-Keyword
- ttl:10 数据包中的ttl
- ipopts:
- rr 记录路由
- eol list最后
- nop
- ts
- sec
- esec
- lsrr
- ssrr
- satid
- any
- sameip;当数据报文的源和目的IP相同时候
- ip_proto:<name|id>
- 1 ICMP
- 6 TCP
- 17 UDP
- id:1 每一个IP报文发送后id+1,一个IP报文的多个分片ID一致
- geoip
- geoip: src, RU;
- geoip: both, CN, RU;
- geoip: dst, CN, RU, IR;
- geoip: both, US, CA, UK;
- geoip: any, CN, IR; - TCP关键字:
- ack:0;
- seq:0;
- window:55808;
- 等等...
- ICMP关键字:
- itype:8;
- itype:>10;
- icode 和itype类似
- icmp_id 和 icmp_seq
- fragbits和fragoffset


prefilter 预过滤
prefilter之前的规则属于预过滤规则
payload 关键字
- content: ”............” ->
- content:“a|0D|bc”;
- content:”|61 0D 62 63|";
- content:”a|0D|b|63|”;
- pcre:""
- content:"index.";|http_uri;pcre:"";就可以匹配出content符合 index.的payload
- nocase; 忽略大小写
- depth:3 payload出现的具体位置
- offset:4 便宜量
- distance:2
- content:"abc";content:"dev";distance:"1" -> payload:"abcsdev" 匹配成功
- within:4 判断 payload -> "abcxxxdefxxxddsew" content:"abc";content:"def";within:3 -> 第二个匹配段的结尾与第一个匹配段的结尾的距离在within的的数值之内。
- content:"abc";content:"def";distance:4;within:9 -> abcxxxxdef 匹配成功 xxxx 距离4 f到从的距离是xxxx+payload2的长度 = 3+4 = 7
- isdataat:8 看看content结尾字符后面第isdataat位置是否还有数据
- dsize:345; payload长度,也可以是>或者<
- rpc 和RPC相关
- rpc:100009,*,*;
- replace:"asd"; content:"abvd";replace:"abcd" 替换,只能用于IPS之中
- fast_pattern 略
HTTP 关键字
请求字段
| Keyword | Sticky or Modifier | Direction |
|---|---|---|
| http_uri | Modifier | Request |
| http_raw_uri | Modifier | Request |
| http_method | Modifier | Request |
| http_request_line | Sticky Buffer | Request |
| http_client_body | Modifier | Request |
| http_header | Modifier | Both |
| http_raw_header | Modifier | Both |
| http_cookie | Modifier | Both |
| http_user_agent | Modifier | Request |
| http_host | Modifier | Request |
| http_raw_host | Modifier | Request |
| http_accept | Sticky Buffer | Request |
| http_accept_lang | Sticky Buffer | Request |
| http_accept_enc | Sticky Buffer | Request |
| http_referer | Sticky Buffer | Request |
| http_connection | Sticky Buffer | Request |
| http_content_type | Sticky Buffer | Both |
| http_content_len | Sticky Buffer | Both |
| http_start | Sticky Buffer | Both |
| http_protocol | Sticky Buffer | Both |
| http_header_names | Sticky Buffer | Both |
响应字段
| Keyword | Sticky or Modifier | Direction |
|---|---|---|
| http_stat_msg | Modifier | Response |
| http_stat_code | Modifier | Response |
| http_response_line | Sticky Buffer | Response |
| http_header | Modifier | Both |
| http_raw_header | Modifier | Both |
| http_cookie | Modifier | Both |
| http_server_body | Modifier | Response |
| file_data | Sticky Buffer | Response |
| http_content_type | Sticky Buffer | Both |
| http_content_len | Sticky Buffer | Both |
| http_start | Sticky Buffer | Both |
| http_protocol | Sticky Buffer | Both |
| http_header_names | Sticky Buffer | Both |
以上用法
content:"xxxxxx";http_xxxx;
特例:
- uricontent:"xxxx";
- urilen:10 > <也可以
- http_header 不包含URI部分
流信息关键字
flow:to_client 关键字:
- to_client
- to_server
- from_client
- from_server
- established
- not_established
- stateless
- only_stream
- no_stream
- only_frag
- no_frag
stream_size
- >
- <
- =
- !=
- >=
- <=
文件关键字
- filename:"a.php";
- fileext:"jpg";
- filemagic:"";
- filestore:[request|response],[file|tx|ssn]
- filenmd5:[!]filename; filenmd5:md5-blacklist;
- filesize:5 > < 也可以
阈值
- threshold: type <threshold|limit|both>, track <by_src|by_dst>, count , seconds
- threshold: type threshold, track by_src, count 10, seconds 60;
- detection_filter: track <by_src|by_dst>, count , seconds
DNS关键字
dns_query;content:"域名"
Suricata规则配置的更多相关文章
- Suricata规则编写——常用关键字
本篇转载自:http://blog.csdn.net/wuyangbotianshi/article/details/44775181 1.简介 现在的NIDS领域snort一枝独秀,而suricat ...
- 自学Zabbix9.2 zabbix网络发现规则配置详解+实战
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix9.2 zabbix网络发现规则配置详解+实战 1. 创建网络发现规则 Conf ...
- nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
nginx 域名跳转 Nginx跳转自动到www域名规则配置,如果设置使 mgcrazy.com域名在用户访问的时候自动跳转到 www.mgcrazy.com呢?在网上找了好多资料都没有一个完整能解决 ...
- MasaFramework -- 缓存入门与规则配置
概念 什么是缓存,在项目中,为了提高数据的读取速度,我们会对不经常变更但访问频繁的数据做缓存处理,我们常用的缓存有: 本地缓存 内存缓存:IMemoryCache 分布式缓存 Redis: Stack ...
- 在Linux 5/6上使用UDEV SCSI规则配置ASM DISK
格式化磁盘(略) 识别磁盘(/sbin/scsi_id) Oracle Linux 5用如下脚本: #!/bin/sh for i in b c d e f g do echo "KERN ...
- codeigniter nginx rewrite规则配置【转】
转自:http://www.nginx.cn/1134.html nginx如何配置才能支持codeigniter ? 1. codeigniter的url美化去掉index.php 1 2 3 ...
- ThinkPHP第七天(F函数使用,项目分组配置,项目分组模板文件放置规则配置)
1.F(文件名称,写入数据,写入地址),用于将数据写入至磁盘文件中,如F('Data',$arr,'./Data/'),作用是将$arr写入至网站根目录的Data文件夹中的Data.php中. 2.读 ...
- Cloud Foundry中warden的网络设计实现——iptable规则配置
在Cloud Foundry v2版本号中,该平台使用warden技术来实现用户应用实例执行的资源控制与隔离. 简要的介绍下warden,就是dea_ng假设须要执行用户应用实例(本文暂不考虑ward ...
- linux audit审计(6)--audit永久生效的规则配置
定义reboot系统后,仍然生效的审计规则,有两种办法: 1.直接写入/etc/audit/audit.rules文件中,在service文件中需要加入ExecStartPost=-/sbin/aud ...
随机推荐
- [转]Python与设计模式
一.创建类设计模式 前言 什么样的程序员是一个好的程序员?学会很多门编程语言,就是一个好的程序员了么?事实上,学会一门编程语言不是一件很难的事,而“学会”一门编程语言是非常难的一件事.前一个“会”强调 ...
- 利用Powershell自动部署asp.net mvc网站项目 (一)
这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...
- Qt 事件处理的五个层次
看了这篇文章(见http://devbean.blog.51cto.com/448512/231861),然后经过自己的思考,把Qt事件处理的五个层次.同时也是Qt时间处理的流程画了出来.若有不对请批 ...
- 关于B/S和C/S模式
B/S注重的是 1.服务想玩游戏的时候,就出现想看电影的时候,就出现不用下载客户端太麻烦看个电影还要下载一大堆东西,不看了 2.维护升级软件不用一台一台地重新更新,百度一直在更新,但是我们感觉不到 3 ...
- Hibernate注解关系映射
Hibernate Annotation关系映射的几种类型映射用法及使用方法(说明:以前实例的实体是user和role,主键分别是userid和roleid) 1)一对一外键关联映射(单向) @O ...
- debian下系列下的apt-get 命令与deb包的手动安装的dpkg命令
手动下载的deb包的相关操作: 操作deb 使用dpkg 命令工具, dpkg 是Debian package的简写. 下面列举常用的 操作: dpkg –I name.deb 查看 包的详细信息( ...
- 关于Unity 获得和使用GetComponent<MeshFilter>().mesh时的心得
原文地址:http://blog.sina.com.cn/s/blog_7d9405e50100s061.html 今天在使用Unity3D的时候遇到了一个问题:_tesGameObject是在Pro ...
- 深入理解bootstrap框架之第二章整体架构
标注下,正好最近关注前段框架 1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)——这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3 ...
- PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例
前言: 1.关于PureMVC: MVC框架在很多项目当中拥有广泛的应用,很多时候做项目前人开坑开了一半就消失了,后人为了填补各种的坑就遭殃的不得了.嘛,程序猿大家都不喜欢像文案策划一样组织文字写东西 ...
- 视觉SLAM之词袋(bag of words) 模型与K-means聚类算法浅析(1)
在目前实际的视觉SLAM中,闭环检测多采用DBOW2模型https://github.com/dorian3d/DBoW2,而bag of words 又运用了数据挖掘的K-means聚类算法,笔者只 ...