zoukankan      html  css  js  c++  java
  • 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:"域名"

  • 相关阅读:
    table拖动列宽
    解决 wm_concat函数 长度不够问题
    「Luogu」[JSOI2007]字符加密 解题报告
    Markdown数学符号
    「P5004」专心OI
    「CF242E」XOR on Segment 解题报告
    「CF86D」Powerful array 解题报告
    「USACO08JAN」电话线Telephone Lines 解题报告
    「Luogu P2015」二叉苹果树 解题报告
    「Luogu P3866」[TJOI2009]战争游戏 解题报告
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/8810354.html
Copyright © 2011-2022 走看看