moloch1.8.0简单操作手册
- Sessions 页面:Sessions主要通过非常简单的查询语言来构建表达式追溯数据流量,以便分析。
- SPIView 页面:
- SPIGraph页面:SPIGraph 将以流量趋势图的方式展示指定字段的流量情况。除了直接在 SPIGraph 界面中选择字段,也可以在Sessions 及 SPIView 界面进行指定要查看的字段,通过 SPIGraph 选项跳转至本界面。
- Connections页面:Connections 用于直观的展示源节点与目的节点的关系。
- Files页面:Files 显示已捕获的 pcap。
- Stats页面:Stats 为 Moloch 状态信息。在 Moloch 维护及故障排除方面有较大帮助。
- History页面:History 可以查看用户的历史操作记录,并支持对历史操作的重现。
- Settings页面:Settings 可对当前登录账号各项信息进行配置。
- Users页面:Users 负责用户管理。可进行添加、删除用户,也可对已有用户的权限进行限制。
1. Sessions页面
1.1 搜索栏————输入过滤表达式,点击 search 进行检索
1.1.1 字符串搜索
在Moloch中,字符串字段是特殊的,因为它们可以以几种不同的方式搜索。当字段被索引时,它们的大小写可能是标准化的,也可能不是标准化的,这在下面的fields表中有记录。字符串搜索的类型有:
- 通配符:
如果表达式中出现*,则假定使用通配符匹配。支持的通配符是*,它匹配任何字符序列(包括空字符),以及?,它匹配任何单个字符。
通配符查询针对全文字符串运行,如果字段启用大小写规范化,则在大小写规范化之后运行。
例如http.uri == "www.f*k.com"将捕获http.uri字符串,它包含www.fork.com或www.frack.com。 - 正则表达式:
正则表达式查询必须被前斜杠包围,并且始终被锚定。这意味着您几乎总是希望包含一个开头和结尾。
在regex查询中。regex查询在字段的大小写规范化(如果启用)之后针对全文字符串运行。
例如http.uri = = /.* www \ .f.* k \ com.* /。它使用不支持大多数PCRE特性的Lucene regex实现。 - 列表:
在Moloch中,列表被用作执行多个或查询的快速方法。
例如,协议== [http,ssh]。该查询将搜索包含http或ssh的任何会话。
注意:包含通配符或正则表达式字符串的列表将作为普通字符串处理,而不是通配符和正则表达式。
1.1.2 IP搜索
IP搜索非常灵活,可以使用完整的IP地址、部分IP地址或CIDR表示来执行。
对于包含端口号的字段,可以使用冒号(ip4)或点(ip6)跟踪任何IP表示,然后使用端口号进一步细化查询。端口也是一级搜索,可以直接搜索。
例如:ip == 1.2.3.4/24:80。该查询将搜索所有包含1.2.3.4/24 CIDR范围内的IP地址的会话,并在会话期间使用端口80。
IP搜索也可以使用IP列表来完成,这些IP可能是混合表示的:ip == [1.2.3.4,1.3/16]。
1.1.3 数字搜索
除了默认的=和not =查询类型之外,数值字段还支持简单的范围操作符。例如,要显示传输的字节小于10000的事件,可以使用以下查询:bytes <= 10000。
数值字段还使用列表支持简单的或查询。例如,port == [80,443,23]。
1.1.4 日期搜索
(1)除了默认的=和not =之外,Date字段还支持简单的范围操作符。例如:starttime == "2004/07/31 05:33:41"。
(2)还使用列表支持简单的或查询。例如:stoptime ==["2004/07/31 05:33:41","2004/07/31 06:33:41"]。但是,使用搜索栏下的时间限制控件要容易得多,如下:
(3) 使用Splunk语法支持相对日期和可选的快照。
--------以加号(+)或减号(-)开头的字符串表示当前时间的偏移量。
--------用数字和单位定义时间量。支持的时间单位为:
- 秒:s, sec, sec, second, seconds
- 分钟:m, min, minute, minutes
- 小时:h, hr, hrs, hour, hours
- 天: d, day, days
- 周:w, week, weeks
- 月:mon, month, months
- 季度:q, qtr, qtrs, quarter, quarters
- 年: y, yr, yrs, year, years
1.1.5 字段存在查询
检查一个字段在会话中是否存在或者不存在使用:存在某字段,field==EXISTS!,或者否定存在某字段,field!=EXISTS!。
例如,为了验证一个证书没有签发者常用名但是具有一个签发者组织名称,那么应该使用:cert.issuer.cn != EXISTS! && cert.issuer.on == EXISTS!
1.1.6 例子
找出会话中涉及俄罗斯(RU)或者中国(CN),并且使用端口号80且主机名中包含“COM”的会话:(country == RU || country == CN) && port == 80 && host == *com
找出会话类型为"text/plain",涉及加拿大(CA),包含少于20个数据包的会话: tags == "http:content:text/plain" && country == CA && packets < 20
1.1.7 应用&创建默认过滤
经预先设置后,将指定的条件作为默认过滤。
a. 创建一条规则,与 IP 172.18.20.220 相关 TCP数据。
b. 点击 “New View” 可以添加新的默认过滤条件。可设置默认过滤名称及相应过滤表达式。
1.2 时间边界
1.2.1 设置回溯区间:如最后一个小时、最后一天等,点击 “Search”,查询数据。
1.2.2 设置回溯时间段:开始框允许选择开始时间/日期------结束框允许选择结束时间/日期,点击 “Search”,查询数据。
1.2.3 边界框:用于选择应用时间边界的位置(最后一个包、边界、会话重叠、数据库)。
- First Packet:按选中的区间,在会话显示面板按时间正序显示捕获的会话。
- Last Packet:按选中的区间,在会话显示面板按时间倒序显示捕获的会话。
- Bounded:过滤出已完成的会话数据。
- Session Overlaps: 过滤出已捕获到第一个包,还未接捕获最后一个包(即:会话正在进行)的会话数据。
- Database:按会话写入数据库的时间进行显示(有一定延迟,可能是在收到最后一个包的几分钟后)。
1.2.4 流量趋势:显示单位时间内流量趋势。(默认为小时)
1.3 会话显示与流量视图
1.3.1 会话显示: 设置 Sessions 页面显示会话数。(页面默认显示50条会话)
1.3.2 分页:每个页面选择框的分页控制和记录都在时间范围输入下找到,并允许用户导航返回的会话。将鼠标悬停在每页文本的记录上,以获取关于搜索了多少条目的更多信息。
1.3.3 流量面板:展示了实时监控趋势。
- 用户可以点击“+”或“-”放大镜,快速缩小或放大被观察的时间窗口
- sessions(会话)、packets(包)、databytes(字节)为三种展现形式
- 可选择以折线图(Lines)或柱状图(Bars)来展示流量趋势
1.3.4 源&目的:在地图中展示通信双方的地理位置
- S(source country)
- D(destination country)
1.4 会话数据信息(很重要)
点击以上页面选中的项,可将想要在页面中显示的字段应用为列。
1.4.2 自定义列信息: 点击旁边的按钮,可将经选择后展示在页面中的列形成一条配置,并进行命名。
可以看到除了默认配置(Moloch Default)之外,还定制了名为“IP Protocol”的配置,就是将刚刚上面选择的保存为自定义列信息, 方便后续直接应用。
通过查看 “Settings” 面板中的 “Column Configs” 条目,可以清楚的看到默认配置与 “IP Protocol” 配置的区别,即选择默认配置时将多出一列 “info” 信息。
1.4.3 显示完整的会话信息:
(1)点击每条会话前的 '+',将显示完整的会话信息。
(2)点击 “Download Pcap” 或下拉 “Action” 菜单,选中 “Export Pcap” 即可下载该数据包。
(3)所有字段名均带有下拉菜单
以上图HTTP为例,对 5 项操作进行说明(单击每一项就能显示具体信息):
- Export Unique Method(显示支持的HTTP方法):POST、GET、HEAD、PUT、OPTIONS
- Export Unique Method with counts(对选中区间内各HTTP请求方法进行计数):GET, 23444、POST, 23330、HEAD, 189、PUT, 33、OPTIONS, 2
- Open Method SPI Graph(在SPIGraph界面对各HTTP请求方法进行统计)
- Toggle Method column(将Request Method应用为列)
- Toggle Method in info column(将本次请求详细内容显示在info列中)
1.5 保存数据包---下箭头
下箭头按钮包含几个选项:
- 导出所需会话数据的PCAP。
- 查看器中的数据也可以导出为CSV,以供进一步查看和操作。
- 可以从分析人员的查询检测到的会话中添加或删除标记。然后,可以使用标记==“blah”语句收回这些事件。
- 将选定的数据发送到另一个系统进行进一步分析。
2. SPIView页面
3. SPIGraph页面
SPIGraph 将以流量趋势图的方式展示指定字段的流量情况。
除了直接在 SPIGraph 界面中选择字段,也可以在Sessions 及 SPIView 界面进行指定要查看的字段,通过 SPIGraph 选项跳转至本界面。
4. Connections页面
6. Stats页面
Stats 界面为 Moloch 状态信息。在 Moloch 维护及故障排除方面有较大帮助。
6.1 Capture Graphs
Capture Graphs 选项卡显示了当前网卡的实时捕获的会话数。(实际使用方法不清楚,页面说明中提到使用时需要将浏览器像素宽调整到1500+...)
6.2 Capture Stats
Capture Stats 选项卡中为当前捕获节点详细信息。可通过列配置下拉框选择在该页面显示的字段,下图对默认信息进行了说明。
字段说明:
Node:捕获节点 Time:捕获时间 Seesions:当前监测到的会话数 Free Space:所有配置磁盘的剩余空间的百分比 CPU:Moloch占用CPU大小 Memory:Moloch占用内存大小 Packet Q:待处理数据包 Disk Q:待发送到磁盘的数据包 ES Q:待发送到ES的数据包 Packet/s:待添加到Packet Q数据包(我们试图每秒将接收到的未损坏的数据包的数量添加到packetQ中) Bytes/s: 待添加到Packet Q数据包大小(接收到的所有未损坏的数据包的大小,我们尝试将其添加到每秒的packetQ中) Sessions/s:每秒发送到Elasticsearch会话数 Packet Drops/s:每秒丢包数 Bits/Sec:与Bytes/s相同,只不过由字节/秒变为位/秒 Written Bytes/s:Moloch写入磁盘的所有数据包的大小 Unwritten Bytes/s: Moloch未写入磁盘的所有数据包的大小 Active TCP Sessions:监测中的TCP会话数 Active UDP Sessions:监测中的UDP会话数 Active ICMP Sessions:监测中的ICMP会话数 Active SCTP Sessions:监测中的SCTP会话数 Active ESP Sessions:监测中的ESP会话数 Used Space:已使用磁盘大小 ES Health Response MS:ES健康状态响应 Closing Q:接收到FIN和Moloch的TCP会话的数量正在等待查看是否实际关闭 Watting Q:准备写入但正在等待异步请求(明智的,插件)完成的会话数 Active Fragments:活跃的ES分片数 Fragments Dropped/Sec:每秒丢弃的分片数 Total Dropped/Sec:总共丢弃的分片数 ES Session Bytes/Sec: 每秒ES会话字节大小 Overload Drops/s:因为没有可以自由处理它们的包队列而丢失的包数 ES Drops/s:由于每秒队列溢出而放弃的Elasticsearch搜索请求数 ES Session Size/Sec: 每秒ES会话大小
6.3 ES Nodes
ES Nodes 选项卡中为 ES 节点信息。可通过列配置下拉框选择在该页面显示的字段。
字段说明:
Name:索引名 Documents:索引中文档数量 Disk Used:使用磁盘大小 Disk Free:磁盘剩余空间 Heap Size:堆大小(未知) OS Load:系统加载(未知) CPU:占用CPU百分比 Read/s:读取速率 Write/s:写入速率 Searches/s:查询速率 IP:节点对应IP IP Excluded:未知 Node Excluded:未知 Non Heap Size:除去堆后剩余大小(未知) Searches timeout:检索间隔
6.4 ES索引
ES indexes选项卡显示一个表,其中包含每个Elasticsearch索引的信息。请使用列配置下拉框更改显示的字段。
字段说明:
Name:索引名 Documents:索引中文档数 Disk Size:改索引所占存储 Shards:ES分片数 Segments: ES段 Replicas:备份分片 Memory:该索引占用内存 Health:索引健康状态(Green为最健康状态,Yellow为基本的分片可用,Red为部分的分片可用) Status:索引状态(打开/关闭) Created Date:索引创建时间 Current Query Phase Ops:当前查询阶段(未知) UUID:索引内部UUID
6.5 ES Tasks
ESs任务选项卡显示一个表,其中包含每个Elasticsearch任务的信息。
字段说明:
Action:任务正在至此执行的操作 Description:正在执行的操作的更多描述 Start Time:任务起始时间 Children:相关子任务
6.6 ES Shards
ES Shards 选项卡中为索引与节点分片的对应关系。每个单元格描述该索引在该特定节点中的shard数量。灰色表示它是一个可选的shard,另一种颜色表示它是一个主shard。悬停在单元格上以获取更多信息。
6.7 ES Recovery
ES Recovery 选项卡中为ES任务信息(Recovery 是指将一个索引的未分配 shard 分配到一个结点的过程。)。可通过列配置下拉框选择在该页面显示的字段。
7 History页面
History 可以查看用户的历史操作记录,并支持对历史操作的重现。
普通用户只能查看自己的操作,而管理员可以查看所有用户的操作。
(1)使用页面顶部的搜索输入来搜索特定的历史项。 (2)有关如何查询历史表的更多信息,请参阅ES查询字符串语法。 (3)利用搜索栏下的时间控件按时间范围过滤历史记录。 (4)通过单击任何列标题对历史进行排序。 (5)使用filter按钮按特定字段值过滤历史记录。 (6)使用列标题中的复选框来显示始终具有该字段值的历史项。 (7)使用expand按钮显示有关历史项的更多信息。 (8)使用open按钮“转到”历史项。这将打开操作/查询发出的页面。
9 Settings 界面
Settings 界面可对当前登录账号各项信息进行配置,具体细节如下:
9.1 General ------一般常规设置选项卡
Timezone Format:设置时区格式 Session Detail Format:默认会话包解析格式 Number of Packets:返回包默认数量 Show Packet Timestamps:显示/隐藏 数据包时间戳 Issue Query on Page Load:是否在页面加载时就进行查询 Sort Sessions By:默认会话排序 Default SPI Graph:SPI图形默认字段 Connections Src:默认源字段 Connections Dst:默认目的字段
9.2 Views 选项卡-----用户可在此界面添加、更新、删除过滤规则。(具体用法已在Sessions部分说明)
9.3 Cron Queries选项卡-----设置定时任务,每隔一段时间会在 Sessions 界面执行定义好的过滤语句。(执行时相对会话有90s延迟,确保会话已完全传输)
9.4 Column Configs选项卡------对 Sessions 页面显示的列信息进配置。(具体用法已在Sessions部分说明)
9.5 SPI View Configs-----对 SPI View 界面进行检索的字段进行配置。(具体用法已在SPI View部分说明)
9.6 Themes选项卡-----用户可以选择自己喜欢的配色方案
9.7 Password选项卡----用户更改密码
9.8 Notifiers选项卡----配置可添加到cron查询的通知程序(如邮件)。
10 USER
Users 页面负责用户管理。可进行添加、删除用户,也可对已有用户的权限进行限制。
主要对以下三个选项进行说明:
Forced Expression:当前用户的默认过滤条件。(如设置 protocols==tcp,则该用户只能查询到 tcp 数据) Admin:是否赋予当前用户管理员权限(即拥有增删改权限) Web Auth Header:登录时不需要密码,只需要基于Web头进行认证
.....