20210625-

0.引言

写过一篇文章《Suricata+ELK(Docker化部署)数据展示》,利用suricata在流量出口位置实现网络流量的事件监测。当时采用的规则,是一些开源的规则,当时使用完这些规则之后,发现误报什么的,还是挺多的。

对于suricata来说,这个软件我还是使用了非常多的,因为他本身作为一个流量处理引擎,完成的事情也挺多。所以最近就想着,能不能对他深入进行一些理解,所以在这篇文章中进行记录。

(文章属于自己阅读过程中的随感产物)

1. suricata的学习记录

本部分并没有参考太多的第三方网页内容,而是仅仅针对suricata的官方文档来进行学习,通过大致翻阅他的官方文档[1],来了解他具备哪些特性。在以前的时候,我也了解过一些相关的IDS的内容,例如snort,还有bro。如果仅仅从作用上来看,作为IDS,我们应该关注的就是如何安装这个东西,同时他的规则又应该怎么编写,这两者应该是最重要的。

1.1 整体概览

.
文章的整个目录的标题在上图中被列出:从如何安装,到下发规则,再到最后自定义lua脚本,内容还算是完整。我在逐步读完整个文档之后,感觉文档的内容还是比较清晰的。不过,从内容上来看,内容并不是很复杂,整体阅读难度也比较低(个人感觉)。

这些目录里面比较重点的,就是规则下发和输出。规则管理需要管理各种攻击的指纹,输出代表着各种警告和事件。因为最终的输出并不仅仅是各种规则警告,还有各种流量的解析内容,所以像我这种平时更关心底层流量中都覆盖了什么。

1.2 规则管理与编写

我简单看了一下,规则主要是告警规则,虽然他提示还有异常,但是没具体看清楚这个类型的覆盖范围。告警规则的管理中,其自身提供了一个工具,suricata-update,通过相关的规则源来定期更新。但是其中有一些是商业的,而且之前的时候,我更新过一些开源的,感觉,效果并不是很好。同时,在github上也看到过一些撰写进行规则管理的界面,感觉还是挺好的,特别是在规则非常多的时候,有一个管理界面还是挺重要的。

规则的编写部分对规则进行了详尽的解释。

虽然说,我还没明白规则到底长什么样子,但是看他这个整体的解释过程,也能大概了解了。利用各种关键词来组成一条规则,每个关键词可能都需要满足一定条件才能触发。整体来看,关键词的粒度还是很清晰的。

这部分主要存在三个问题:

  • 规则源都有哪些,商业的规则源效果怎么样,因为在github上看到过有一两个自己开源的规则,是否还存在比较全的规则库
  • 之前看论文的时候,也关注过,他们都说现在的各种实际部署的IDS都是基于指纹的,是否可以定义异常?例如扫描行为?
  • 如果suricata也是基于指纹的,他是否支持带状态的检测呢?说白了,就是想了解他这个指纹是单包指纹还是多个包?比如说我觉得某个应用,某个恶意软件,他每次分步进行了两个行为,这两个行为分为不同的数据包中,是否可以支持?又或者,我要检测包长呢?

1.3 输出

IDS最重要的输出肯定是告警,这个毋庸置疑。还有一个部分,就是suricata提供的事件日志,这部分内容本质上就是涵盖前面规则部分的关键词。所以之前的时候,我一直关注这部分内容,而且有点想偏了。

2. 几个问题

在昨天实时阅读这部分文档的时候,还是问题挺多的;但是现在有点遗忘了。
我个人觉得,不管怎么样,重点就是规则的问题;一方面,我觉得应该考虑这个规则如何编写,理解他的语法,但也要思考,他的灵活性有多高,是不是有些地方不能支持;而另外一方面,规则应该如何提取?可能有专门的研究员来进行规则编写,规则提取。

还有suricata是否支持单向流?另外,好像suricata支持dpdk吗,在文档里面没看到,虽然在github看到过。

3. Suricata相关开源工具

suricata开源规则
开源集成平台(集成IDS的日志)
suricata规则管理平台
suricata docker镜像
suricata DPDK优化

参考

[1]Suricata User Guide

suricata的简单探究相关推荐

  1. [20181226]简单探究cluster table.txt

    [20181226]简单探究cluster table.txt --//简单探究cluster table.以前也做过,有点生疏了. 1.环境: SCOTT@book> @ ver1 PORT_ ...

  2. 简单探究神经网络中权重、偏置维度的关系

    利用PyTorch的tensor和autograd实现一个简单的神经网络,探究神经网络中权重.偏置维度的关系 简单神经网络的分析和实现 本次目标 项目环境 神经网络手绘图 代码实现 简单神经网络的分析 ...

  3. android 结束if循环_简单探究Android平台下' if ' 语句条件判断耗时情况

    2017年6月13日 前言 前几日在改Bug时看到好多调试时用的日志语句都被一个日志开关控制着它的执行权.形如: 1 if(Constants.LOG_TAG){2 Log.d(TAG, " ...

  4. webSql简单探究

    什么是webSql Web Sql Database,中文翻译作"本地数据库",是随着HTML5规范加入的在浏览器端运行的轻量级数据库 在HTML5中,大大丰富了客户端本地可以存储 ...

  5. 关于HAL库中系统嘀嗒时钟的简单探究

    在利用HAL库建立STM32工程时,系统嘀嗒时钟的初始化是在函数HAL_Init()中实现的: HAL_StatusTypeDef HAL_Init(void) {/* Configure Flash ...

  6. ASP.NET Core中间件初始化探究

    前言 在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景,ASP.NET Core默认也为我们内置了许多的中间件,甚至有时候我们需要自定义中间件来帮我们处理一些请求管道 ...

  7. 简单性能测试:springboot-2.x vs actix-web-4.x benchmark

    前面 本次是对两款web框架做一次性能测试,这个测试做的很早,约在两个月前(也是actix-web4.0刚刚发布之后),目的是 比较有gc类web框架(springboot)与无gc类web框架(ac ...

  8. sprintf_s的用法探究

    这个函数定义如下 int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] ... ); 参数说明是这 ...

  9. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...

最新文章

  1. 助力企业抗疫,360金融推出免费AI语音机器人
  2. 在VMware Workstation上安装Kali Linux
  3. hdu 1016 Prime Ring Problem(DFS)
  4. 设置cookie和查找cookie的方法
  5. 设计模式- 命令模式
  6. php页面生成耗时分析
  7. 纽约大街上的免费WiFi,终于铺起来了
  8. windows10安装mysql 8.0_手把手教你在Windows 10安装MySQL 8.0(详细图文)
  9. 大学计算机应用基础第三版简答题答案,大学计算机应用基础习题答案
  10. 推荐 7 个优质技术号
  11. 程序员简单实用的桌面壁纸
  12. 计算机中的各种字符编码
  13. 微信小程序的本地存储
  14. Python绘图实例24:三层嵌套正方形绘制
  15. POJO类与javaBean类的区别
  16. 【零基础一起学习FPS游戏Unity3D手机游戏开发】第1章 准备工作
  17. 动手学深度学习(六、卷积神经网络)
  18. 大学生转入计算机专业申请书,计算机系大学生助学金申请书1000字
  19. python 文件名变量_如何将变量文件名传递给python ete?
  20. 记录Mybatis报Mapped Statements collection already contains value for 的错误的原因

热门文章

  1. Nginx日志时间默认为GMT时间,改为CST时间
  2. winetricks简介
  3. Saving Files
  4. 六十星系之18武曲七杀坐卯酉
  5. Gitlib的使用教程
  6. 泰国监管机构放宽ICO政策
  7. 前端 | (二)各种各样的常用标签 | 尚硅谷前端html+css零基础教程2023最新
  8. form表单登陆人人网
  9. java string 最大长度是多少_String字符串的最大长度是多少?
  10. linux ajp集群,Apache应用集群——AJP方式