suricata规则
Emerging威胁检测规则wiki:http://doc.emergingthreats.net/bin/view/Main/WebHome
Emerging规则文件:http://rules.emergingthreatspro.com/
基本语法
Snort规则与Suricata规则基本语法相同
规则结构
一、规则头部:
1. 规则行为:行为声明,用于通知IDS引擎在触发警报时该怎么做a. Alert 通知IDS引擎记录所有匹配的规则、与匹配规则相关的数据包数据b. Log 通知IDS引擎记录所有匹配的规则、不记录与匹配规则相关的数据包数据c. Pass 通知IDS引擎对该数据包不做任何处理2. 协议:通知IDS引擎该规则适用于何种协议a. tcpb. udpc. icmpd. ip 同时适用于TCP和UDP协议时使用e. any3. 源/目标 主机a. 可以是IP列表,也可以是CIDR形式的IP范围,可以在配置文件中指定来源IP:$EXTERNAL_NET目标IP:$HOME_NETSuricata配置文件:suricate.yamlb. 若无法将规则局限于特定类型的主机,可用关键词“any”匹配任意主机4. 源/目标 d端口a. 可指定具体端口,如80b. 可指定任意端口,any5. 流量方向a. -> 从源到目标地址的单向流量b. <> 双向流量
二、规则选项:
1. 事件信息选项
1. 消息(msg):对规则的描述,可以理解为规则的“名称”2. 特征标识符(sid):用于唯一性地标识规则,sid不能重复,且只能为数值a. 0-10000000:为Sourcefire VRT保留b. 20000000-29999999:为 Emerging Threats(ET)保留c. 30000000+ :公用3. 修订(rev):用于表示规则发生了修改,可以理解为规则的版本号a. 当创建一条新规则时,制定 rev:1; ,以表明该规则为第一版本b. 当规则被改变时,无需创建新规则,可保持sid不变,使rev递增4. 引用(reference):用于链接外部信息来源,从而为规则提供附加的情景资料好处:保持规则整洁,减小规则长度,使其更易编辑管理a. 直接指定: reference:<reference type>,<reference>;reference:url,doc.emergingthreats.net/2010235b. 可通过在suricata.yaml配置reference.config文件来定义引用类型文件中使用格式:config reference:<reference type><reference prefix>;例如 文件中:config reference:cve http://cve.mitre.org/cgi-bin/cvename.cgi?name=规则中:reference:cve,2001-0414实际引用:reference:cve,http://cve.mitre.org/cgi-bin/cvename.cgi?name=2001-04145. 优先级(priority):用于手动指定规则的优先级,提升分析员查看警报的效率此选项可以任意整数设置,可使用0-10之间的数指定优先级,0最高,10最低6. 类别(classtype):用于根据规则所检测的活动类型为规则分类规则中指定方式:classtype:<Classification Name>;通过在suricata.yaml配置classification .config文件来描述规则中的类别文件中格式:config classification: <classification name>,<classification description>,<classification privoroty>classification name:类别名称classification description:类别描述classification privoroty:类别指定的默认优先级,当规则使用类别时以此处优先级为准
2. 检查内容
1. 检查内容(content):检查数据包内容中是否包含某个字符串如:content:"evilliveshere"; 指定多个匹配项:content:"evilliveshere"; content:"here"; a. 使用感叹号!对匹配项的否定:content:!"evilliveshere"; b. 将字符串的十六进制用管道符(|)进行包围:content:"|FF D8|"; c. 字符串与十六进制混合使用:content:"|FF D8|evilliveshere"; d. 匹配内容区分大小写e. 保留字符(; \ ")须进行转义或十六进制转码
2. 检测内容修饰语:通过在匹配内容之后添加一些修饰语,可以精确控制IDS引擎在网络数据中匹配内容的方式。a. nocase:匹配内容不区分大小写,如 content:"root";nocase;b. offset:用于表示从数据包载荷的特定位置开始内容匹配,从载荷其实位置算起注意载荷开始位置从0字节处开始,而不是1字节处content:"root";offset:5;c. depth:用于限制搜索匹配内容的结束位置。若使用了offset,则开始位置为offset,否则为载荷开始位置content:"root";offset:5;depth:7;d. distance:用于指定上一次内容匹配的结束位置距离本次内容匹配的开始位置的距离e. within:用于限制本次匹配必须出现在上一次匹配内容结束后的多少个字节之内f. distance和within的同时使用限制了第二次内容匹配的匹配范围,如下content:"evilliveshere"; content:"here"; distance:1;within:7;在匹配字符串“evilliveshere”后的1到7个字节范围内对字符串“here”进行匹配g. http内容修饰语:针对检测http流量的规则,Suricata提供了http流重组能力,同时提供了用于编写HTTP流量相关的更高效的规则修饰器例如:alert tcp any any -> any 80(msg:"Evil Doamin www.appliednsm.com"; "content:"GET";httpmethod; content:"www.appliednsm.com";http_uri; sid:5445555; rev:1;)常用http内容修饰语:http_client_body HTTP客户端请求的主体内容http_cookie HTTP头字段的“Cookie”内容http_header HTTP请求或响应头的任何内容http_method 客户端使用的HTTP方法(GET,POST等)http_uri HTTP客户端请求的URI内容http_stat_code 服务器响应的HTTP状态字段内容http_stat_message 服务器响应的HTTP状态消息内容http_encode 在HTTP传输过程中所使用的编码类型``` 3. 兼容Perl语法的正则表达式(PCRE):通过正则表达式对内容进行匹配匹配信用卡号码: pcre:"/([0-6]\d\d|7[0-256]\d|73[0-3]|77[0-2])-\d{2} - \d{4} /"; ######3. 通信流量通信流量:根据TCP协议网络流量状态编写规则三次握手:1. 客户端向服务器的监听端口发送SYN包来发起连接2. 此时,服务器需要向客户端回复一个SYN/ACK包3. 一旦收到该包,客户端会回复给服务器一个ACK包数据流规则有一些专用选项,分为三类:1. 状态选项2. 定向选项3. 流量模式状态配置格式:flow:<option>,<option>,<option>有效声明选项分别为1. established:只匹配已经建立TCP会话连接的流量2. stateless:不论是否已建立TCP会话连接均匹配方向选项分别为:1. to_server:从客户端到服务端的流量2. from_server:从服务端到客户端的流量3. to_client:从服务端到客户端的流量4. from _client:从客户端到服务端的流量no_stream:待匹配数据是重组后的流only_stream:待匹配数据是单独的数据包 协议头检测1. TTL:匹配指定的TTL指,可使用关系运算符(< , <=, >=, >),可以用来识别操作系统类型2. dsize:匹配一个指定payload大小的数据包,可使用关系运算符(< , <=, >=, >)3. itype:匹配指定的ICMP类型值4. icode:匹配指定的ICMP代码值5. ip_proto:匹配指定的IP协议,如IGMP、GRE
规则用途
==botcc.portgrouped.rules botcc.rules==
这些是已知和确认的活动僵尸网络和其C&C(command and control)服务器。由一些组织生成,每日更新。
==ciarmy.rules==
封锁被ciArmy.com标记出来的Top Attackers
==compromised.rules==
这是一个已知的受影响的主机列表,每天更新。
decoder-events.rules
解码器事件,里面包含了对解码器解码所产生的事件,比如包无效、包过大、过小等
dnp3-events.rules
包含对dnp3(分布式网络协议)的一些规则,不多,只有几条
dns-events.rules
包含对dns协议的一些规则,比如dnsflooded事件等,不多,只有几条
==drop.rules==
每天更新的Spamhaus DROP(Don't Route or Peer)列表。列出了著名的、专业的垃圾邮件发送者。
==dshield.rules==
每天更新的DShield top attackers。十分可靠。
emerging-activex.rules
主要用来检测与ActiveX控件有关的攻击
==emerging-attack_response.rules==
这些规则是为了捕获成功攻击的结果,诸如“id=root”之类的东西,或者表示可能发生妥协的错误消息(即虽然产生了错误消息,但是攻击已经成功)。
emerging-chat.rules
主要检测聊天软件、即时通讯软件的攻击,大部分是国外的一些软件,比如facebook,雅虎,msn
==emerging-current_events.rules==
这些规则是不打算在规则集中长期保存的,或者是在被包含之前进行测试。大多数情况下,这些都是针对当天的大量二进制URL的简单sigs,用来捕获CLSID新发现的易受攻击的应用程序,我们没有这些漏洞的任何细节。这些sigs很有用,却不是长期有效的。
emerging-deleted.rules
里面都是被注释掉的规则,可能删除后的规则放在这里
emerging-dns.rules
检测dns协议相关的攻击
==emerging-dos.rules==
目的是捕获入站的DOS(拒绝服务)活动和出站指示。
emerging-ftp.rules
检测ftp协议相关的攻击
==emerging-games.rules==
魔兽世界、星际争霸和其他流行的在线游戏都在这里。我们不打算把这些东西贴上邪恶的标签,只是它们不适合所有的攻击环境,所以将它们放在了这里。
emerging-icmp_info.rules emerging-icmp.rules
检测与icmp协议相关的攻击
==emerging-exploit.rules==
直接检测exploits(漏洞)的规则。如果你在寻找windows的漏洞等,他们会在这里被列出。就像sql注入一样,exploits有着自己的体系。
总之就是用来检测exploits漏洞的。
emerging-imap.rules
检测与imap相关的攻击
==emerging-inappropriate.rules==
色情、儿童色情,你不应该在工作中访问的网站等等。WARNING:这些都大量使用了正则表达式,因此存在高负荷和频繁的误报问题。只有当你真正对这些规则感兴趣时才去运行这些规则。
emerging-info.rules
看了一些规则后,似乎是检测与信息泄露、信息盗取等事件的规则,里面会检测后门、特洛伊木马等与info相关的攻击
==emerging-malware.rules==
我个人最喜欢的。这一套最初只是间谍软件,这就足够了。间谍软件和恶意软件之间的界限已经很模糊了。这里不仅仅是间谍软件,但是请放心,这里没有任何东西是你想在自己的网络或者PC上运行的。已知的更新模式、已知的恶意软件的UserAgent字符串和大量的其它有用的东西。如果你只准备运行一个规则集来保证安全性,这个规则集是首选。
emerging-misc.rules
检测混杂的攻击,这种攻击一般没有确切的分类,或者使用了多种技术
emerging-mobile_malware.rules
检测移动设备上的恶意软件
emerging-netbios.rules
检测与netbios有关的攻击
==emerging-p2p.rules==
P2P(Peer to Peer)之类的。我们并不想将它定义为有害的,只是不适合出现在IPS/IDS的网络环境中。
==emerging-policy.rules==
对于经常被公司或组织政策禁止的事务的规则。Myspace、Ebay之类的东西。
emerging-pop3.rules
检测与pop3协议有关的攻击
emerging-rpc.rules
检测与rpc(远程过程调用协议)有关的攻击
emerging-scada.rules
检测与SCADA(数据采集与监控系统)相关的攻击
==emerging-scan.rules==
检测探测行为。Nessus,Nikto,端口扫描等这样的活动。这是攻击前准备时期的警告。
emerging-shellcode.rules
检测shellcode,shellcode是一段用于利用软件漏洞而执行的代码,以其经常让攻击者获得shell而得名。
emerging-smtp.rules
检测与smtp协议相关的攻击
emerging-snmp.rules
检测与snmp协议相关的攻击
==emerging-sql.rules==
这是一个巨大的规则集,用于捕获在特殊应用程序上的特殊攻击。这里面有一些普遍的SQL注入攻击规则,效果很好,可以捕获大多数攻击。
但是这些规则根据不同的app和不同的web服务器,有很大的差别。如果你需要运行非常严格的web服务或者很重视信息的安全性,请使用这个规则集。
emerging-telnet.rules
检测与telnet协议相关的攻击
emerging-tftp.rules
检测与tftp协议相关的攻击
emerging-trojan.rules
检测trojan木马
emerging-user_agents.rules
检测异常的user-agents
==emerging-voip.rules==
检测voip相关的异常,它是一个新兴的规则集,目前还很小,但是我们预计它很快就会增长。
emerging-web_client.rules
检测web客户端的攻击
emerging-web_server.rules
检测web服务端的攻击
emerging-web_specific_apps.rules
检测特殊的web应用程序的异常
emerging-worm.rules
检测蠕虫
modbus-events.rules
检测modbus事件
smtp-events.rulse
检测smtp事件
stream-events.rules
检测stream事件
tls-events.rules
检测tls事件
==tor.rules==
检测使用tor进行匿名通信的流量,tor本身没有威胁,但却是很可以的行为
suricata规则相关推荐
- Suricata规则编写
规则格式 Suricata规则包括以下三部分: action,action决定当signature匹配的时候会发生什么 header, 定义了协议,IP地址,端口和规则的位置 rule options ...
- Emerging Threats rules suricata规则功能介绍
本章节介绍一下Emerging Threats rules中针对suricata的那些规则的功能. ET的规则是业内比较知名的规则集,下载地址见这里,这其中提供了防火墙以及入侵检测系统的规则.IDS/ ...
- Suricata IDS 入门 — 规则详解
suricata是一款开源高性能的入侵检测系统,并支持ips(入侵防御)与nsm(网络安全监控)模式,用来替代原有的snort入侵检测系统,完全兼容snort规则语法和支持lua脚本. 1.规则配置 ...
- suricata 检测规则编写
目录 规则头 规则行为,根据优先级排列: 协议: 源ip,目标ip: 源端口/目标端口: 流量方向: 规则体 msg: flow流匹配: flowbits : sameip源ip.目标ip检测: co ...
- Su+ELK实现网络监测(1)——Suricata安装与配置
Suricata安装配置文档 一.环境准备 1. 基础环境安装 2. 安装基础组件 二.Luajit部署 1. LuaJIT的安装 2. 需要更新动态库 三.suricata部署 1. 安装相关依赖 ...
- Centos 7 部署suricata流量检测
转载自:https://zhuanlan.zhihu.com/p/64742715 对部分安装报错的地方进行了修改,建议按照原文安装,原文有ES对接 内网搭建Suricata进行流量检测 目标机器版本 ...
- Arkime与Suricata联动配置与使用
0x00 前言 Arkime/moloch 全包捕获工具,对于安全来讲最大的优势就是威胁溯源,与suricata结合最好的好处就是,可以定点捕获与告警对应的pcap包,单纯从学习Suricata检测的 ...
- 朔源反制:IDS IPS snort suricata
IDS:Intrusion detection systems 入侵检测系统 IPS:Intrusion prevention systems 入侵防御系统 Snort: 参考:https://www ...
- Bro与Snort或Suricata对比
Snort是最初于1998年开发的开源入侵检测系统(IDS)/入侵防护系统(IPS) Snort标志性格式的规则是整个威胁情报业的事实标准,它借用当时几款流行的开源工具(这些工具用于给网络流量指定唯一 ...
最新文章
- 当你舌吻十秒后,下面就……
- 皮一皮:可怜的西瓜...
- 优先级队列 c语言,队列优先级
- libjpeg的问题
- linux vim打开乱码,linux下解决vim打开文件乱码现象
- Visual Studio 2008创建项目(ATL)
- iview 下拉select样式_Ant Design 4.0 的一些杂事儿 - Select 篇
- python doc转docx_利用python中的win32com模块将doc文件转为docx文件
- 用C语言开发一个BT下载软件 (四) ------ 代码实现-1-种子文件解析模块
- excel批量删除密码解除密码保护 可多个密码
- vs2013设置winp#cap开发环境
- 以数据为中心的路由协议_腰部零售企业如何以数据中台为中心,加速数字化落地...
- CC00009.python——|HadoopPython.v09|——|Arithmetic.v09|语法:核心语法运算符.V1|
- 国内芯片60个细分领域知名代表企业
- linux(centos7)测试带宽
- Job-shop和Flow-shop区别
- GLES2.0中文API-glFramebufferRenderbuffer
- 天津春季高考历年计算机考试卷,春季高考历年真题-2014年天津市春季高考计算机试卷.docx...
- 除非…..,否则你创业不会成功的
- 佩奇——Python方法