Joy:监控加密的网络流量

获取Joy

git clone https://github.com/cisco/joy
./config
make

$ sudo apt-get install build-essential libssl-dev libpcap-dev
libcurl4-openssl-dev
$ sudo apt-get install python-dev python-numpy python-setuptools
python-scipy
$ sudo easy_install -U scikit-learn

Joy的软件组成

  1. joy
  2. sleuth
  3. model.py

《Using-joy-05.pdf》

1.1.2 Ethics

一个单向数据流的JSON描述的例子:
在这里插入图片描述

1.2 网络和数据背景

flow在joy里面有一个常规的网络五元组:(sa, da, ,pr, sp, dp)
在这里插入图片描述

Chapter 2 The joy tool

默认情况下,它的输出是 GZIP 压缩的 JSON,使用第 5 节中描述的格式。未压缩的输出或 bz2 压缩的输出可用作编译时选项(请参阅文件 src/include/output.h)。 有许多软件工具可以处理 GZIP 压缩数据,尤其是在 Linux 和其他 POSIX 环境中,例如 gunzip、zless 和 zcat。 在离线模式下应用 Joy 并使用 gunzip 将其输出转换为未压缩形式的示例调用:
在这里插入图片描述

2.1 Overview

每个joy 选项(-x 除外)的格式为option=value,其中option 是标识选项的字符串,value 是布尔值(0 或1)、(非负)数字或字符串。有两种类型的选项:通用选项(2.2)和控制输出数据特征的选项(2.3)。
Joy 可以在几种不同的模式下运行。在离线模式下,joy 处理一个或多个数据包捕获 (PCAP) 文件并将网络流的(压缩的)JSON 摘要打印到标准输出;此模式由命令行上的一个或多个文件名指示。文件名必须跟在所有存在的选项之后,并且每个文件名不应包含等号 (=),以避免joy 将PCAP 文件与选项混淆的可能性。
在线模式下,joy 监听一个或多个网络接口。此模式通过使用 interface=I 选项(第 2.2.2 节)指定接口 I 来指示。如果存在选项 output=F(第 2.2.4 节),则(压缩的)JSON 输出将写入文件 F . 在这种模式下,输出文件轮换可以用count(2.2.6节)指定,日志文件可以用logfile(2.2.5节)指定。
输出文件可以通过带有上传选项的 SCP 上传到单独的服务器(第 2.2.7 节)。在线模式在大多数操作系统上都需要 root 权限;为了安全起见,在开始捕获后,joy 将放弃其特权(第 2.2.23 节)。
Joy 还可以用于 Netflow 或 IPFIX collect 模式(第 2.2.13、2.2.14 节)或** IPFIX 导出器模式**(第 2.2.15、2.2.16 和 2.2.17 节)。

2.1.1 配置对象

在初始化和任何其他输出之前,joy 写出一个 JSON 对象,描述其完整配置,以及生成它的 Joy 程序的版本。 此信息很重要,因为这些选项会影响哪些数据元素可以出现在流对象中。 分析 Joy JSON 输出的程序应该检查配置对象并确保它们不会将它当作流对象来处理,并且它们应该通过检查顶层的 version 字段的存在来做到这一点 目的。 配置对象的注释示例:
在这里插入图片描述

Chapter 3 The sleuth tool

3.1 Model

sleuth 程序可用于处理来自 JSON 文件或 PCAP 文件的流对象; 它可以从文件或标准输入中读取,过滤出符合特定条件的流,从流中选择数据元素,执行其他类型的分析,并打印出结果。 通过对其执行一个或多个操作来处理每个流以便读取它。 提供给程序的参数决定了执行的操作及其顺序。 通过将多个操作链接在一起,可以计算出许多不同的结果。

可以查询JSON/PCAP文件中想要的数据

select 确定将从流中选择哪些元素; 省略其他元素
where 设置流必须匹配的条件; 省略所有不匹配的流
dist 计算流的分布(计数和总数)
groupby 导致所有具有相同 groupby 值的流被一起处理
sum 计算所选元素的总和

一些应用例子:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Show flows that contain a packet whose payload is exactly 50 bytes in length:
在这里插入图片描述

Chapter 5: JSON Schema

Joy 的 JSON 输出默认使用 GZIP 算法进行压缩。在其压缩形式中,它可以方便地使用 zless 程序读取或使用 zcat 管道传输到标准输出。在未压缩形式中,文件的每行有一个 JSON 对象。元数据对象始终包含 version 字段,该字段指示用于创建它的欢乐捕获工具的版本。该对象包含该程序的完整配置,在分析它生成的流对象时了解这一点很重要。当 Joy 在在线模式下运行时,它会将其输出写入一个文件或一系列文件,并且它写入的第一个对象是描述其配置的元数据对象。流对象包含大部分输出。捕获工具按照流的创建顺序写出流对象;时间开始字段按递增(或至少非递减)顺序排列。流对象将包含不同的数据元素,具体取决于流包含的协议。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值