Nfstream:一款易于扩展的网络数据分析框架

文章目录

  • 功能介绍
  • 工具依赖
  • 工具下载
    • 使用pip安装
    • 源码构建
  • 工具使用
    • 将pcap转换为Pandas DataFrame:
    • 如果你没找到特定的数据流功能,你可以通过几行代码来向Nfstream增加插件:
  • 项目地址

Nfstream:一款易于扩展的网络数据分析框架插图

Nfstream本质上来说是一款Python包,它可以提供快速、灵活且有效的数据结构,支持针对在线或离线状态的网络数据进行分析,这种方式既简单又直观。在Nfstream的帮助下,广大研究人员可以直接在自己的Python代码中集成数据分析功能,并对真实场景下的实际网络数据进行分析。除此之外,Nfstream目前仍处于开发阶段,该项目将会为研究人员提供各种实验数据复现功能,并成为一款通用的网络数据处理与分析框架。

功能介绍

1、性能:Nfstream的运行速度非常快(集成pypy3后,速度将会快10倍),而且对CPU和内存的需求并不大;

2、七层可见度:Nfstream深度数据包检测引擎基于nDPI实现,它允许Nfstream执行可靠的加密应用识别与元数据提取(例如TLS, QUIC, TOR, HTTP, SSH, DNS);

3、灵活性:引入NFPlugin插件概念,便于实现功能扩展;

4、机器学习:支持以NFPlugin的形式添加训练模型;

工具依赖

广大研究人员可以运行下列命令来完成NFPlugin依赖组件的配置:

apt-get install libpcap-dev

工具下载

使用pip安装

如果你习惯使用pip的话,你可以直接使用pip3命令安装本项目的最新版本:

pip3 install nfstream

源码构建

广大研究人员也可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/aouinizied/nfstream.git

工具使用

当你在处理一个非常大的pcap文件时,如果你只想将其聚合为网络流,那么你只需要实现下列几行代码,剩下的就可以交给Nfstream来完成了:

from nfstream import NFStreamer

   my_awesome_streamer = NFStreamer(source="facebook.pcap") # or network interface (source="eth0")

   for flow in my_awesome_streamer:

       print(flow)  # print it, append to pandas Dataframe or whatever you want :) !

NFEntry(

        id=0,

        first_seen=1472393122365,

        last_seen=1472393123665,

        version=4,

        src_port=52066,

        dst_port=443,

        protocol=6,

        vlan_id=0,

        src_ip='192.168.43.18',

        dst_ip='66.220.156.68',

        total_packets=19,

        total_bytes=5745,

        duration=1300,

        src2dst_packets=9,

        src2dst_bytes=1345,

        dst2src_packets=10,

        dst2src_bytes=4400,

        expiration_id=0,

        master_protocol=91,

        app_protocol=119,

        application_name='TLS.Facebook',

        category_name='SocialNetwork',

        client_info='facebook.com',

        server_info='*.facebook.com',

        j3a_client='bfcc1a3891601edb4f137ab7ab25b840',

        j3a_server='2d1e***17ece335c24904f516ad5da12'

)

NFEntry(

        id=0,

        first_seen=1472393122365,

        last_seen=1472393123665,

        version=4,

        src_port=52066,

        dst_port=443,

        protocol=6,

        vlan_id=0,

        src_ip=’192.168.43.18′,

        dst_ip=’66.220.156.68′,

        total_packets=19,

        total_bytes=5745,

        duration=1300,

        src2dst_packets=9,

        src2dst_bytes=1345,

        dst2src_packets=10,

        dst2src_bytes=4400,

        expiration_id=0,

        master_protocol=91,

        app_protocol=119,

        application_name=’TLS.Facebook’,

        category_name=’SocialNetwork’,

        client_info=’facebook.com’,

        server_info=’*.facebook.com’,

        j3a_client=’bfcc1a3891601edb4f137ab7ab25b840′,

        j3a_server=’2d1e***17ece335c24904f516ad5da12′

)

将pcap转换为Pandas DataFrame:

import pandas as pd

streamer_awesome = NFStreamer(source='devil.pcap')

data = []

for flow in streamer_awesome:

   data.append(flow.to_namedtuple())

my_df = pd.DataFrame(data=data)

my_df.head(5) # Enjoy!

如果你没找到特定的数据流功能,你可以通过几行代码来向Nfstream增加插件:

from nfstream import NFPlugin

class my_awesome_plugin(NFPlugin):

    def on_update(self, obs, entry):

        if obs.length >= 666:

            entry.my_awesome_plugin += 1

streamer_awesome = NFStreamer(source='devil.pcap', plugins=[my_awesome_plugin()])

for flow in streamer_awesome:

   print(flow.my_awesome_plugin) # see your dynamically created metric in generated flows

更多详细的使用方法,请参考Nfstream的官方文档:【点我获取】

项目地址

NFPlugin:【GitHub传送门】

* 参考来源:aouinizied,FB小编Alpha_h4ck编译,转载请注明来自一一网络博客

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » Nfstream:一款易于扩展的网络数据分析框架

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情