• zeek学习(二)


    简介

    Zeek 是一个被动的开源网络流量分析器。它主要被用作安全监测设备来检查链路上的所有流量中是否有恶意活动的痕迹。但更普遍地,Zeek支持大量安全领域外的流量分析任务,包括性能测量和帮助排查问题。

    架构

    zeek在架构上主要有两个组件:事件引擎和事件处理程序。
    ● 事件引擎:把进入的数据报流简化为一系列高级的事件,这些事件以策略无关的形式反映网络活动。事件引擎包括多个子组件:数据包处理管道、输入源、数据包分析、会话分析、文件分析。事件引擎提供了一个插件架构,用于从核心 Zeek 代码库之外添加任何这些,允许根据需要扩展 Zeek 的功能。
    ○ 输入源:接受来自网络接口的传入流量。
    ○ 数据包分析:处理低级别的协议,从链路层开始。
    ○ 会话分析:处理应用层协议,例如:http、ftp等。
    ○ 文件分析:刨析通过会话传输的文件的内容
    ● 事件处理程序:使用zeek脚本语言编写,这些脚本能够表达安全策略,能够从输入流量中得到任何想要的属性和统计数据。zeek内置许多特定类型和支持的功能,并且可以运行脚本维护时间状态使得他们可以对不同会话和主机之间的通信进行追踪和关联。zeek能够生产实时警报和任意的外部程序。
    在这里插入图片描述

    快速入门

    目录结构
    zeek默认会安装到/usr/local/zeek或者/opt/zeek目录下。其目录结构如下:
    ···
    |_ bin/
    |_ etc/
    |_ include/
    |_ lib/
    |_ logs/
    |_ share/
    |_ spool/
    ···
    ● bin/zeek:zeek二进制程序
    ● bin/zeek-cut:从zeek日志(非json)中提取列,方便进行日志分析,同时还将Unix纪元时间转换为可读的格式。
    ● bin/zeekctl:zeek集群管理工具,一个交互式shell。
    ● etc/networks.cfg:定义本地网络,便于网络流量的有效和正确的分析。
    ● etc/node.cfg:配置集群节点信息。
    ● etc/zeekctl.cfg:zeekcontrl管理的配置文件,包含默认日志、日志轮转时间间隔和电子邮件配置。
    ● logs/current:默认日志存放路径,包含zeek运行时写入的活动日志文件。
    ● share/zeek/base:zeek加载的基本脚本。
    ● share/zeek/policy:zeek附带的其他策略脚本,用户可以选择是否加载它。
    ● share/zeek/site:zeek存放的本地脚本,不会被升级所破坏。

    ZeekControl

    ZeekControl是一个交互式的shell,可以在单个系统上管理zeek安装,并且在流量监控系统中可以跨多个系统。
    配置
    ···
    $ cat $PREFIX/etc/node.cfg
    [zeek]
    type=standalone
    host=localhost
    interface=eth0 # change this according to your listening interface in ifconfig
    ···
    启动
    ···
    zeekctl
    ···
    初始化
    ···
    [ZeekControl] > install
    ···
    启动zeek实例
    ···
    [ZeekControl] > start
    ···

    日志

    zeek带有灵活的基于键值的日志记录界面,允许对记录的内容和记录方式进行细粒度的控制。

    术语

    ● stream:一个日志流对应一个日志。它定义了日志包含的字段集及其名称和类型。
    ● filter:每个流都有一组附加的过滤器,用于确定写出哪些信息以及如何写出。默认情况下,每个流都有一个默认过滤器,它将所有内容直接记录到磁盘。但是,可以添加其他过滤器以仅记录日志记录的子集、写入不同的输出或设置自定义轮换间隔。如果从流中删除所有过滤器,则该流的输出将被禁用。
    ● author:每个过滤器都有一个author。编写器定义正在记录的信息的实际输出格式。默认编写器是 ASCII 编写器,它生成制表符分隔的 ASCII 文件。其他编写器可用,例如用于二进制输出或直接登录到数据库。

    参考资料

    官网:https://zeek.org
    github:https://github.com/zeek/zeek
    文档:https://docs.zeek.org/en/master
    脚本学习:https://try.zeek.org/#/?example=logs-filter-logs

    推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习]

  • 相关阅读:
    使用fastapi和pulumi搭建基于Azure云的IAC Restful API服务 — 对外发布
    Java开发三年四面字节跳动复习一个月斩获offer,寒冬并不可怕啊,所以现在酷暑也要坚持哦
    AI绘画API:提升艺术创作的效率和品质
    多帧三角化原理
    232.用栈实现队列(LeetCode)
    JavaScript基础教程笔记(一)
    文件上传漏洞实验
    【MindSpore】MindQuantum的新功能——量子线路图及测量的svg格式
    双向 LSTM(Bidirectional LSTM)与普通 LSTM 公式过程
    Android通过jni调用本地c/c++接口方法总结
  • 原文地址:https://blog.csdn.net/hzb869168467/article/details/126338030