Joy是一个捕获数据包、分析网络流量数据、网络研究取证及安全监控的工具。
概述
Joy是一个BSD许可的基于libpcap的软件包,用来从实时网络流量或捕获的数据包文件提取数据特征,使用类似于IPFIX或者Netflow的流量导向模式,之后在JSON中表现这些数据特征。Joy还包括了一个可以应用这些文件的分析工具。Joy还能被用来探索大规模数据,尤其是跟安全和威胁有关的数据。
JSON是为了使数据分析工具的数据输出更简单。当JSON输出文件非常长时,JSON文件可以非常小,并且对压缩的响应很好。
Joy可以被配置来获取intraflow数据,这些数据是在网络流量中出现的事件的数据和信息,包括:
序列的长度、IP包到达的时间、数据包的可配置数目; 一个刘的数据部分中字节的经验概率分布以及这个值导出的熵; 序列的长度和TLS记录到达的时间; 其他非加密TLS数据,比如提供密码组的列表、被选择的密码租、clientKdyExchange字段的长度; 与流相关的进程名,正在运行的pcap主机上中为流发起或终止。
Joy是用户安全研究、取证和小规模网络监测来进行漏洞检测、威胁检测、非法行为检测和有害行为检测。研究人员、管理人员、渗透测试人员和安全运营团队可以很好的利用这些信息,保护被监测的网络免受攻击,在某些漏洞情况下,可以通过提高防御姿态保证广泛社区的利益。作为网络监测工具,Joy可能被滥用,所以当你不是管理员或者网络所有人时,请不要使用Joy。
在正向心理学中,流是一种状态,一个人执行一个活动,完全沉入近一种积极性十足、深入参与、快乐的感觉。
Joy是alpha/beta软件,我们希望你使用它并从中受益,但是你要明白,它不适合生产。
信用
这个包是由来自思科高级安全研究小组(ASRG)的David McGrew和Blake Anderson {mcgrew,blaander}@cisco.com 所写。
快速开始
构建
Joy已经成功的在Linux(Debian, Ubuntu和CentOS)和Mac OSX上被测试和运行。这两种系统都使用gcc和GNU make构建,但是它应该也可以在其他开发环境中正常运行。
首先,从github上下载包,并切换到joy所在的目录;
在主目录中运行 make 来构建包:
[joy]$ make
程序被编译、连接、清除、复制到合适的主目录下。它还会执行测试脚本和一个单元测试程序。
用来从pcap文件或者实时数据捕获提取的数据特征的主程序是pcap2flow,它在src/subdictory下。它build成功后被复制到joy主目录下。它可以在该路径下运行或安装,这样它会在Linux或Mac OSX上作为守护程序自动运行。
运行和配置
为了了解pacp2flow是如何被配置的,读取其中一个配置文件(linux.cfg或macosx.cfg)。在脱机模式下处理pcap文件,运行:
[joy]$ ./pcap2flow [ OPTIONS ] filename [ filename2 ... ] e.g. [joy]$ ./pcap2flow bidir=1 output=data.json filename
为了在练级模式下运行数据包捕获,使用相同的命令格式,但是要包括一个interface=命令的options,并且省却命令行中的文件名。
e.g. [joy]$ sudo ./pcap2flow interface=eth0 bidir=1 output=data.json
它有很多命令行选项,所以我们不在命令行中使用所有选项,你可能想要程序读取一个配置文件。这样的两个分布式文件,linux.cfg和macosx.cfg。如果你想要改变程序的默认值(为了准确的捕捉你感兴趣的数据,你可能会这样做),之后复制这份配置文件。
使用不同名称创建一个本地副本,防止Joy更新时,你的配置文件被破坏。
安装
要在系统上安装这个软件,你需要先build它。运行install-sh脚本(root或者使用sudo)来安装这个包。
[joy]$ sudo ./install-sh
如果你运行不带参数的脚本,那么默认时,配置文件就会被安装到/etc/目录。要安装一个不同的陪皮质文件,你要使用-c来安装脚本:
[joy]$ sudo ./install-sh -c local-config-file.cfg
你还可以配置匿名地址,它包含内部子网文件。这些子网的默认文件是internal.net;你可以使用-a来更改配置。同理,你可以更改IP地址的watchfile(使用-w)或者更改用于通过scp上传文件的SSH私钥(使用-k)。使用-h来获得帮助、查看所有安装说明。
文件
手册将作为包的一部分被自动建立、安装。请参阅文件pcap2file.1或者之后被运行的install-sh脚本,通过"man pcap2flow"进入手册。
测试
运行脚本./pcap2flow_test.sh和src/unit_test来测试程序。这些程序都会指出命令行执行成功还是失败。