写点什么

网络入侵检测系统之 Suricata(三)-- 日志代码详解

作者:于顾而言
  • 2022 年 9 月 17 日
    江苏
  • 本文字数:581 字

    阅读完需:约 2 分钟

网络入侵检测系统之Suricata(三)--日志代码详解

Log Module

Q1:suricata 日志以什么文件格式存储?

分为三类:json、log,pcap 格式


Q2:suricata 日志都分了哪些级别?

日志 level 分为:Emergency、Alert、Critical、Error、Warning、Notice、Info,Debug


Q3:suricata 日志记录哪些信息,内容以什么形式组织的?


  1. eve.json

suricata 所有的告警,元数据,文件信息和特定协议记录都会记录在 eve.json 中,事件类型 分为 alert、http、dns、tls,drop






2. fast.log



3. http.log



4. dns.log



5. stats.log



6. drop.log

被丢弃的报文合集

7. log.pcap.timestamp

pcap 报文

8. 自定义日志输出

利用 Lua 脚本,只需要重写 4 个函数:init(),setup(),log(),deinit()即可以自定义日志输出格式

Q4:suricata 用什么技术记录这些日志的?

Suricata 使用的默认运行模式是 autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。



Suricata 上电时,通过 yaml 配置文件将需要激活的 output module 以全局变量链表 list 串联起来,检测线程将数据送到 output queque 后,Output 线程查看 output_queue,队列里面是通用数据,接着会按 active register 依次将通用数据转换成不同种类日志,并完成打印日志



Q5:suricata 写盘的时机是怎么样的?

autofp 模式会产生一个 outputs 线程,再检测线程检测完毕后,会调用 output 线程,告知其新数据来了,然后 outputs 统一将 output_queue 数据写盘


Code Review

日志实现原理




日志数据流



发布于: 刚刚阅读数: 3
用户头像

于顾而言

关注

| 诗酒趁年华诗酒 √ | 2022.09.10 加入

| NJUST Optical M.A. | | SASE | SangFor | Senior Developer | 知乎专栏:https://www.zhihu.com/people/whisper-of-the-Koo

评论

发布
暂无评论
网络入侵检测系统之Suricata(三)--日志代码详解_网络安全_于顾而言_InfoQ写作社区