ToB企服应用市场:ToB评测及商务社交产业平台

标题: 开源IDS/IPS Suricata的摆设与使用 [打印本页]

作者: 灌篮少年    时间: 2024-5-18 23:31
标题: 开源IDS/IPS Suricata的摆设与使用
目录

前言

Suricata 是一个高性能的网络入侵检测和防御系统(IDS/IPS)。它是由OISF开辟,完全开源,并且可以免费使用。
Suricata和Snort的区别,有什么上风?
Snort 也是一个开源的IDS,可以或许实时监控网络流量,检测和防御潜在的威胁。与Snort相比,Suricata的设计注重性能和可扩展性,它可以在低至中等规格的硬件上运行,支持多线程,同时处置惩罚高吞吐量的网络流量,同时流分析功能更为强盛和复杂。说白了就是性能更强,功能更多。
Suricata可以或许检测各种网络威胁,包括但不限于:
Suricata的一些主要运行模式:
在Linux上摆设Suricata

废话少说,开始搭建!强烈发起参考官方的安装文档一步步安装:https://docs.suricata.io/en/latest/quickstart.html#installation
官方主要提供了两种安装方式:
第一种是使用包管理工具,参考 Binary packages
第二种是使用源码编译安装,参考 Source
在Ubuntu上安装Suricata,OISF维护了一个PPA suricata-stable,此中总是包含最新的稳定版本。
第一种方式只需要添加相应仓库源即可,需要注意的是,使用root权限或者使用sudo来安装:
  1. sudo apt-get install software-properties-common
  2. sudo add-apt-repository ppa:oisf/suricata-stable
  3. sudo apt update
  4. sudo apt install suricata jq  # jq是用来显示Suricata的EVE JSON输出信息的工具
复制代码
安装后查看正在运行的Suricata版本、选项以及服务状态:
  1. sudo suricata --build-info
  2. sudo systemctl status suricata
复制代码


Suricata的搭建过程非常简单,官方的文档永世是最好的参考文档。
Suricata的基本配置

配置文件

首先来关注一下 /etc/suricata 下的几个配置文件:

Suricata的规则

在 rules/ 目录下存放的各种 *.rules 文件可以包含一个或多个用于检测不同类型威胁的规则,同样采用 Snort 的规则格式。
一个规则主要由以下三个部门组成:

在上图中,红色部门为action,绿色部门为header,蓝色部门为rule options。
action主要有这个:
在IPS模式下,使用任何拒绝动作也会启用drop。
header部门定义协议,IP地址,端口和规则的方向:
rule options定义规则的细节:
比如 rules/app-layer-events.rules 中的一条规则示例:
  1. alert ip any any -> any any (msg:"SURICATA Applayer Mismatch protocol both directions"; flow:established; app-layer-event:applayer_mismatch_protocol_both_directions; flowint:applayer.anomaly.count,+,1; classtype:protocol-command-decode; sid:2260000; rev:1;)
复制代码
关于Suricata的规则还有很多的内容,详细参考:https://docs.suricata.io/en/latest/rules/index.html
Suricata的使用

在使用suricata之前,首先相识surcata的基本的几个命令:
  1. -c # 指定配置文件的路径
  2. -T # 测试配置运行
  3. -i # 指定网卡
  4. suricata-update # 更新规则
复制代码
第一步我们要确定Suricata应该在哪个接口和IP地址上举行检测,ifconfig命令查看网卡和IP地址。

第二步编辑 Suricata 的配置文件 /etc/suricata/suricata.yaml,指明需要监听的网卡,网络范围 HOME_NET。
  1. sudo vim /etc/suricata/suricata.yaml
复制代码


第三步启动运行Suricata
  1. suricata -i ens33 -c /etc/suricata/suricata.yaml
复制代码

使用 -v 参数,增加日志级别来增加Suricata应用程序日志的详细程度。
Suricata检测SQL注入

只需要向Suricata导入SQL的规则就可以检测,根据Suricata的规则我们可以自己编写相关的SQL检测规则来举行检测。幸运的的是已经有开源的项目提供了大量的Suricata rules来检测各种类型的攻击,参考项目suricata-rules
将SQL注入的规则文件但放到 /var/lib/suricata/rules/ 这个目录下:

此外还需要在/etc/suricata/suricata.yaml文件中添加针对SQL注入的检测规则文件sql_injection.rules。
注意:添加新的规则文件以后,必须使用 suricata-update 命令重新加载配置文件,更新规则。

启动Suricata服务,加载配置文件,并指定网卡为ens33
  1. suricata -i ens33 -c /etc/suricata/suricata.yaml
复制代码
使用sqlmap测试一下:

当Suricata检测到可能的SQL注入攻击时,会产生记载日志、发送警报等相应的响应动作,产生的相关日志信息放在目录:/var/log/suricata/
在/var/log/suricata/目录下,此中的 fast.log 文件包含了快速报警信息,提供了关于检测到的安全变乱的扼要择要。fast.log 的每一条记载包含:时间戳、条目的编号、当规则匹配时产生的警报消息msg、使用的协议、源IP地址、目标IP地址。

而 eve.json 文件提供了更多的信息,包括流量细节、规则信息、负载数据等。eve.json 的每一条记载包含:时间戳、流ID、输入接口、变乱类型。源源端口:21、目标IP、目标端口、协议、数据包来源、警报信息、动作开始时间、源IP、目标IP、源端口、目标端口等。

通过分析这些日志文件信息,可以得到变乱发生的确切时间,变乱类型,变乱的来源,受影响的目标等信息,从而达到入侵检测的目的。
踩到的坑:
Suricata在添加规则文件后,必须要使用 suricata-update 命令重新加载配置文件,否则规则会不见效,检测不到相应的恶意流量。自定义的规则文件需要严按照官方的要求举行编写,使用 suricata -T 命令检测规则是否可以正常运行,否则规则文件无法被正确加载,服务无法正常启动。
若有错误,欢迎指正!o( ̄▽ ̄)ブ

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4