joy

用于捕获和分析网络流数据和流内数据的包,用于网络研究、取证和安全监控。(A package for capturing and analyzing network flow data and intraflow data, for network research, forensics, and security monitoring.)

Github星跟蹤圖

概述

Joy是一个BSD许可的基于libpcap的软件包,用于从实时网络流量或数据包捕获(pcap)文件中提取数据特征,使用类似于IPFIX或Netflow的面向流的模型,然后在JSON中表示这些数据特征。它还包含可应用于这些数据文件的分析工具。 Joy可用于大规模探索数据,尤其是安全性和威胁相关数据。

使用JSON是为了使输出易于被数据分析工具消耗。虽然JSON输出文件有点冗长,但它们相当小,并且它们对压缩反应良好。

Joy可以配置为获取内部流数据,即有关网络流中发生的事件的数据和信息,包括:

  • IP数据包的长度和到达时间的顺序, 最多可配置的数据包数量。
  • 流的数据部分内的字节的经验概率分布,以及从该值导出的熵。
  • TLS记录的长度和到达时间序列。
  • 其他未加密的TLS数据,例如提供的密码套件(ciphersuites)列表,选定的密码套件,clientKeyExchange字段的长度以及服务器证书字符串。
  • DNS名称,地址和TTL。
  • HTTP头元素和HTTP BODY的前八个字节,以及
  • 与流关联的进程的名称,用于流在运行pcap的主机上发起或终止。

Joy旨在用于安全研究,取证以及(小规模)网络的监控,以检测漏洞、威胁和其他未经授权或不需要的行为。研究人员、管理员、渗透测试人员和安全运营团队可以充分利用这些信息,保护受监控的网络,并在漏洞的情况下,通过改善防御态势为更广泛的社区带来好处。与任何网络监控工具一样,Joy可能会被误用;请勿在您不是所有者或管理员的任何网络上使用它。

在积极的心理学中,Flow是一个人完全沉浸在充满活力的专注、深度参与和快乐的感觉中的状态。第二个含义激发了此软件包名称的选择。

Joy是alpha/beta软件。我们希望您使用它并从中受益,但一定要明白,它不适合生产使用。

与思科ETA的关系

Joy 帮助支持了为思科加密流量分析 (ETA) 铺平了道路的研究, 但它并没有直接集成到任何实施 ETA 的思科产品或服务中。Joy中的分类器几年前就在一个小数据集中接受了训练, 并不代表 eta 的分类方法或性能。此功能的目的是允许网络研究人员在 joy 生成的数据功能的子集上快速训练和部署自己的分类器。有关训练您自己的分类器的详细信息, 请参阅 saltui自我自述或联系 joy-users@cisco.com。

归功于

这个软件包由David McGrew,Blake Anderson,Philip Perricone 和Bill Hudson撰写。{mcgrew,blaander,phperric,bhudson}@cisco.com。思科系统公司的高级安全研究组(ASRG)和安全与信任组织(STO)。

2.0版

我们很高兴地宣布该软件包的2.0版本,它具有以下特点:

  • JSON模式已更新为更好的组织,更具可读性和更多可搜索性(将可搜索关键字作为JSON名称),
  • 新的sleuth工具取代了query/joyq,并带来了新的功能,如-fingerprint,
  • 大量改进的文档,涵盖了joy和sleuth工具,示例以及JSON模式 (请参阅 使用喜悦

......

版本4.0.0

我们很高兴地宣布该软件包的4.0.0版本具有以下功能:

  • 添加对使用autotools构建的支持。 ./configure;make clean; make

我们希望您觉得它很有用!

  • Joy Team

快速入门

Joy已在Linux(Debian,Ubuntu,CentOS和Raspbian),Mac OS X和Windows上成功运行和测试。 该系统使用gcc和GNU make构建,但它也应该与其他开发环境一起使用。

转到维基页面查看构建指南: 构建说明

许可证

请参阅许可证的喜悦

有关外部库的许可,请参见复制

概覽

名稱與所有者cisco/joy
主編程語言C
編程語言Makefile (語言數: 10)
平台Linux, Mac, Raspbian, Windows
許可證Other
發布數22
最新版本名稱v4.4.1 (發布於 )
第一版名稱1.5 (發布於 )
創建於2016-01-08 20:30:43
推送於2024-04-01 09:50:44
最后一次提交2019-11-08 10:26:59
星數1.3k
關注者數113
派生數328
提交數1.5k
已啟用問題?
問題數86
打開的問題數25
拉請求數202
打開的拉請求數6
關閉的拉請求數12
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

_
(_) ___ _ , / _ , (), _, /, ___/ _,, __/, ___/

        A package for capturing and analyzing network
     flow data and intraflow data, for network research,
          forensics, and security monitoring.

Build Status

TLS Fingerprinting

Addendum: For our most recent network fingerprinting tools and data, please see Mercury.

Overview

Joy is a BSD-licensed libpcap-based software package for extracting
data features from live network traffic or packet capture (pcap)
files, using a flow-oriented model similar to that of IPFIX or
Netflow, and then representing these data features in JSON. It
also contains analysis tools that can be applied to these data
files. Joy can be used to explore data at scale, especially
security and threat-relevant data.

JSON is used in order to make the output easily consumable by data
analysis tools. While the JSON output files are somewhat verbose,
they are reasonably small, and they respond well to compression.

Joy can be configured to obtain intraflow data, that is, data and
information about events that occur within a network flow,
including:

  • the sequence of lengths and arrival times of IP packets,
    up to some configurable number of packets.

  • the empirical probability distribution of the bytes within the
    data portion of a flow, and the entropy derived from that value,

  • the sequence of lengths and arrival times of TLS records,

  • other non-encrypted TLS data, such as the list of offered
    ciphersuites, the selected ciphersuite, the length of the
    clientKeyExchange field, and the server certificate strings,

  • DNS names, addresses, and TTLs,

  • HTTP header elements and the first eight bytes of the HTTP
    body, and

  • the name of the process associated with the flow, for flows
    originate or terminate on the host on which pcap is running.

Joy is intended for use in security research, forensics, and for
the monitoring of (small scale) networks to detect vulnerabilities,
threats and other unauthorized or unwanted behavior. Researchers,
administrators, penetration testers, and security operations teams
can put this information to good use, for the protection of the
networks being monitored, and in the case of vulnerabilities, for
the benefit of the broader community through improved defensive
posture. As with any network monitoring tool, Joy could
potentially be misused; do not use it on any network of which you
are not the owner or the administrator.

Flow, in positive psychology, is a state in which a person
performing an activity is fully immersed in a feeling of energized
focus, deep involvement, and joy. This second meaning inspired
the choice of name for this software package.

Joy is alpha/beta software; we hope that you use it and benefit
from it, but do understand that it is not suitable for production
use.

TLS Fingerprinting

We have recently released the largest and most informative open source TLS fingerprint database. Among other features, our approach builds on previous work by being fully automated and annotating TLS fingerprints with significantly more information. We have built a set of python tools to enable the application of this database, as well as the generation of new databases with the help of Joy. For more information, please see the TLS fingerprinting documentation.

Relation to Cisco ETA

Joy has helped support the research that paved the way for Cisco’s Encrypted
Traffic Analytics (ETA), but it is not directly integrated into any of the
Cisco products or services that implement ETA. The classifiers in Joy were
trained on a small dataset several years ago, and do not represent the
classification methods or performance of ETA. The intent of this feature is
to allow network researchers to quickly train and deploy their own classifiers
on a subset of the data features that Joy produces. For more information on
training your own classifier, see saltUI/README or reach out to joy-users@cisco.com.

Credits

This package was written by David McGrew, Blake Anderson, Philip Perricone
and Bill Hudson {mcgrew,blaander,phperric,bhudson}@cisco.com of Cisco Systems
Advanced Security Research Group (ASRG) and Security and Trust Organization (STO).

Release 4.5.0

  • Added the ability to use AF_PACKET v3 and AF_FANOUT instead of libpcap
    use --enable-af_packet on the configure command for AF_PACKET
  • minor bug fixes

Release 4.4.0

  • Fix SIGSEGV in DNS parsing (recursion depth bug)
  • Fix bug in IPv6 payload calculation
  • Fix bug in IPv6 IDP length
  • Bump MAX library contexts to 64 (user request)

Release 4.3.0

  • Add IPv6 support to Joy and libjoy
  • IPFix collection and export only support IPv4
  • NFv9 only supports IPv4
  • Anonymization only supports IPv4 addresses
  • Subnet labeling only supports IPv4 addresses

Release 4.2.0

  • Re-write joy.c to use libjoy library
  • Updated joy.c to utilize multi-threads for flow processing
  • Updated unit tests and python tests to reflect new code changes
  • Removed guts of the updater process to prepare for re-write
  • Fixed bug in processing multiple files on the command line
  • Other minor bug fixes

Release 4.0.3

  • Added support for make install for Centos

Release 4.0.2

  • Add support for fingerprinting

Release 4.0.1

We are pleased to announce the 4.0.1 release of the package, which has these features:

  • Add additional API's for parent application processing of Flow Records and data features
  • Fixed TCP retransmission and out of order detection
  • Better identification of IDP packet
  • Fixed some memory usage issues
  • Fixed minor bugs
  • Removed dead code

Release 4.0.0

We are pleased to announce the 4.0.0 release of the package, which has these features:

  • Add support for building with autotools. ./configure;make clean;make

Release 3.0.0

We are pleased to announce the 3.0.0 release of the package, which has these features:

  • Modified JOY infrastructure code to be thread safe.
    • Allowed support multiple work threads for packet processing.
    • Each worker thread uses own output file.
    • Removed global variables for Config.
    • Modified code infrastructure to use Config Structure.
  • Modified the Makefile system to build the JOY infrastructure as a static and shared library.
  • Implemented an API for utilizing the JOY Library (joy_api.[hc]).
  • Implemented a Vector Packet Processing integration scheme to utilize VPP native infrastructure when building that integration.
  • Created 2 API test programs, joy_api_test.c and joy_api_test2.c.
  • Modified existing test programs to link against static JOY library instead of re-compiling the infrastructure code.
  • Modified versioning to use Common Security Module (CSM) conventions.
  • Modified build_pkg to accept package version on the command line.
  • Cleaned up coverity errors and warnings.
  • Various bug fixes.

Release 2.0

We are pleased to announce the 2.0 release of the package, which has these features:

  • The JSON schema has been updated to be better organized, more readable, and more searchable (by putting searchable keywords as the JSON names),
  • The new sleuth tool replaces query/joyq, and brings new functionality such as —fingerprint,
  • Much improved documentation, which covers the joy and sleuth tools, examples, and the JSON schema
    (see using-joy)

Quick Start

Joy has been successfully run and tested on Linux (Debian, Ubuntu,
CentOS, and Raspbian), Mac OS X and Windows. The system has been built with
gcc and GNU make, but it should work with other development
environments as well.

Go to the Wiki for a guide on building:
Build Instructions

License

See License of Joy

See Copying for licenses of external libraries

去到頂部