一 前言
有机会接触到这款软件,还是同事的一个图,图介绍了开源项目Zed和基于Zed做的一款全流量安全产品Brim。整个产品其实是不少开源项目的一个小集成,只所以感兴趣,除了brim在github有1.5k个star的原因外,更吸引我的是它使用了一种新的数据结构,超结构化的数据模型,通过这种结构可以集数据的压缩、索引、数据的分析于一体,而不用数据存储的各类数据库、NoSQL,简单方便。
二 Zed和它的支持格式
Zed简单来看就是一款开源的命令行工具,可以操作Zed新型的超结构化的模型数据,复杂来看,可以看看官方的解释:
1. zed 数据模型和语义的抽象定义;
2. zed是ZNG、VNG、ZSON格式、这些格式都遵循相同的Zed数据模型。
3. zed是存储可选索引的Zed数据模型。
4. zed是一种数据流语言、可以执行查询、搜索、分析、转换或上面的组合;
2.1 Zed数据模型
zed数据为一个或多个类型化的数据值的有序序列、可以支持常见的编程语言中的原始数据类型比如:
uint8(无符号8位整数)
decimal128(IEEE-754 十进制128)
bytes(8字节的有界序列)
...
ip(ipv4、ipv6)
net (IPv4 或 IPv6 地址和网络掩码)
type 一个zed类型值
null(空类型)
还支持复杂的数据类型:
record - 具有零个或多个排序的集合、每个称字段
array、set、map、union、enum、error
2.2 Zed支持的格式
zed原始格式包括ZNG,VNG和ZSON。 ZNG是高效的、面向序列的序列化格式,适用于任何数据,类似于Apache Avro、没有结构定义、在数据流中嵌入所有类型信息。 ZSON 是人类可读的、基于文本的序列化格式 超结构化数据格式。 VNG,发音为“ving”,是基于Zed 数据模型的列式数据的文件格式。
除了支持以上三种Zed的数据模型格式外,还支持arrows、json、csv、parquent、zjson、zeek(等多种格式)。
三 brim一款基于zed数据模型的pcap分析工具
3.1 brim 简单说明
brim是一种分析zed数据模型的pcap工具,相对于wireshark来说,分析的速度更快,而且可以和wireshark 联动,从而通过wireshark来获得更多分析,相对于wireshark来说,brim的速度要快的多:
brim 官方说明:
Brim 是一个用于安全和网络的开源桌面应用程序 专家。Brim 可以轻松搜索和分析来自以下方面的数据:
* 数据包捕获,如[Wireshark](https://www.wireshark.org/)创建的数据包捕获,以及
* 结构化日志,尤其是来自[Zeek](https://www.zeek.org/)网络分析框架的日志。
Brim 对于需要处理大型数据包捕获的安全和网络运营商特别有用, 尤其是那些对于 Wireshark、tshark 或其他数据包分析器来说很麻烦的。
从我理解的角度来看,它是由以下几种软件组合而成,如下:
brim后台通过brimcap将pcap文件转成zng格式,并且通过zeek和suricat工具进一步丰富解析信息,然后brim UI借助zed分析zng文件进行展示。
可以看下官方的图:
3.2 brim使用说明
相对于wireshark来说,brim的分析pcap的速度要快的多,界面如下图:拖拽pcap文件到如上图的红框中,即可以进行分析,来看看分析是什么样子。
左下脚处的菜单处可以点击(里面还包含suricata告警信息),调出分析命令,比如点击第一个Activity Overview 如下图:
点击后,会在输入栏中显示zq命令,下面数据支持两种格式,一种是表格,一种是类似 json数据格式。树状数据结构展示:
3.3 详细分析
我们可以通过点击列表里面协议名,右键,选择Open details,得到信息如下图:
在细节里面可以看到流信息和传输的http和文件信息:
点击文件会显示文件md5值通过右键VirusTotal lookup 查看这个文件是否是恶意木马等:
我们还可以通过右键Whois Lookup查询域名的信息,查看域名详细信息:
brim的输入栏是zq的命令,复制这个命令,直接可以在命令行中运行。
四开源地址
brim开源地址:https://github.com/brimdata/brim zed开源地址:https://github.com/brimdata/zed brimcap开源地址:https://github.com/brimdata/brimcap