百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

流影之网络流量留存

bigegpt 2024-08-24 23:00 2 浏览

前言

本文是关于流影中相关数据类型介绍系列文章的第二篇,主要介绍流影网络行为证据留存概要及其应用。 网络原始流量是网络行为分析识别的基石,流影系统从数据采集到分析和呈现的过程中,产出和留存了丰富的网络数据类型,其中包括原始流量的PCAP留存。需要指出的是,流影并没有选择全流量留存的方式,而是针对性的留存了可疑网络行为相关的流量。

PCAP概述

PCAP(Packet Capture)是一种网络流量数据报文捕获技术,封装了操作系统底层的网络抓包接口,通过调用统一接口可以捕获目标网卡上数据帧,并存储为PCAP格式数据文件。比如Unix类系统主要使用libpcap库,而Windows系统主要使用WinPcap,进行网络流量捕获和网络流量PCAP留存,文件扩展名一般为pcap。

网络流量留存一般应用于网络流量分析、网络性能优化和网络安全等领域。PCAP格式网络流量留存是比较成熟和常见形式,许多网络监控和数据分析软件都支持PCAP格式,如tcpdump、Wireshark等。

+---------------------+
| 文件头 (PCAP Header) |
|---------------------|
| 数据头 (Packet Header) |
|---------------------|
| 数据包 (Packet Data) |
|---------------------|
| 数据头 (Packet Header) |
|---------------------|
| 数据包 (Packet Data) |
|---------------------|
| ...                 |
+---------------------+

PCAP格式是一种二进制格式的文件,需要使用支持16进制格式的工具进行打开查看。每个PCAP文件包含一个文件头和一个或多个数据包头和数据包。在PCAP文件中,数据包头和数据包是交替出现的,每个数据包头后面紧跟着对应的数据包。数据包头包含了对后面数据包的描述信息,而数据包则是实际的网络数据帧。PCAP具体格式如下图所示:

以下是PCAP文件头中各个字段含义:

  • Magic Number: 标识PCAP文件的格式和字节顺序
  • Major: 主版本号
  • Minor: 次版本号
  • This Zone: 本地标准时间
  • SigFlags: 时间精度
  • Snaplen: 捕获数据包的最大长度
  • LinkType: 网络链接类型,如以太网、令牌环等

数据包头(Packet Header)字段:

  • Timestamp: 高位时间戳,精确到秒
  • Timestamp: 低位时间戳,精确到微秒
  • Caplen: 捕获数据帧长度
  • Len: 实际数据帧长度

数据包(Packet data)是链路层的数据帧,其长度是Packet Header中定义的Caplen值, 数据包实际内容是标准的网络协议格式,包括IP报文、TCP报文、UDP报文等。 以下是一个用16进制编辑器打开的PCAP文件示例:

上图中红色框内是PCAP文件头,黄色框内是数据头,蓝色框内是一个数据帧。

以上就是对PCAP格式数据的简要介绍。当然,网络流量的留存还有其他方式和格式, 例如cap、pcapng等,这里不再过多说明。流影系统集成了网络数据包留存功能, 采用的是PCAP相关捕获技术和存储格式。

流影之PCAP证据留存

流影网络流量探针ly_probe,集成了PCAP数据包捕获和留存的功能。 该探针基于开源高性能探针nprobe的5.X版本进行了深度定制化开发, 在实际测试和应用中都具有良好的采集吞吐性能,在高速流量场景下仍然能保持比较低的丢包率。 流影并没有选择全流量留存,而是选择性的对可疑流量进行了捕获留存, 避免全流量留存的资源消耗和性能大量损失。

流影证据留存概要

流影PCAP留存技术上是使用的是Libpcap库,C语言实现。 流影探针加载了特征规则,采集流量的同时进行规则匹配, 对命中规则特征的单包进行捕获,记入缓存,每五分钟捕获的数据包汇聚为一个文件, 直接以Pcap格式进行留存,文件名记录了时间戳,便于数据包查找。

特征规则放置在流量探针指定目录, 默认情况下为fp-pattern/ 目录, 包含以JSON格式书写的五类规则。

service.json    -- 应用层协议与服务识别规则
device.json     -- 硬件设备识别规则
os.json	        -- 操作系统识别规则
midware.json    -- 软件平台与中间件规则
threat.json     -- 异常流量识别规则

lyprobe启动时的参数-K指定PCAP的存储路径,默认存储路径配置为/data/cap/3。如下图所示:

留存的PCAP数据包文件如下图所示:

流影PCAP留存的应用

PCAP数据记录了原始网络流量完整信息,在流影中主要用于追溯和分析场景:

  • 用于对包特征识别结果的验证与追溯
  • 作为威胁行为告警的直接证据

流影提供了PCAP查询接口evidence;该接口以数据包微秒级时间戳为key进行查询, 定位和解析数据包,获取数据包MAC、IP、PORT、协议、载荷、包十六进制源数据等信息。 该接口的响应数据如下所示:

# 请求示例
evidence?time=1687074364968817&devid=3

# 响应结果示例
[
    {
		"devid": 3,
		"time_sec": 1687074364,
		"time_usec": 968817,
		"caplen": 531,
		"pktlen": 531,
		"smac": "B0-4F-13-E7-43-2E",
		"dmac": "00-26-88-32-FA-CB",
		"sip": "10.10.1.87",
		"sport": 62766,
		"dip": "10.10.10.21",
		"dport": 21,
		"protocol": "TCP",
		"payload": "GET /faq.php?action=grouppermission&gids[99]=%27&gids[100][0]=)%20and%20(select%201%20from%20(select%20count(*),concat((select%20concat(user,0x3a,md5(1234),0x3a)%20from%20mysql.user%20limit%200,1),floor(rand(0)*2))x%20from%20information_schema.tables%20group%20by%20x)a)%23  HTTP/1.1..Host: 10.10.10.21:21..User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15..Accept-Encoding: gzip....",
		"pkthdr": "3cb68e6471c80e001302000013020000",
		"packet": "00268832facbb04f13e7432e08004500020500004000400619740a0a01570a0a0a15f52e0015252a26790626eaf08018080ae9ce00000101080a7d09755b25614610474554202f6661712e7068703f616374696f6e3d67726f75707065726d697373696f6e26676964735b39395d3d25323726676964735b3130305d5b305d3d29253230616e642532302873656c6563742532303125323066726f6d2532302873656c656374253230636f756e74282a292c636f6e636174282873656c656374253230636f6e63617428757365722c307833612c6d64352831323334292c307833612925323066726f6d2532306d7973716c2e757365722532306c696d6974253230302c31292c666c6f6f722872616e642830292a3229297825323066726f6d253230696e666f726d6174696f6e5f736368656d612e7461626c657325323067726f75702532306279253230782961292532332020485454502f312e310d0a486f73743a2031302e31302e31302e32313a32310d0a557365722d4167656e743a204d6f7a696c6c612f352e3020284d6163696e746f73683b20496e74656c204d6163204f5320582031305f31345f3329204170706c655765624b69742f3630352e312e313520284b48544d4c2c206c696b65204765636b6f292056657273696f6e2f31322e302e33205361666172692f3630352e312e31350d0a4163636570742d456e636f64696e673a20677a69700d0a0d0a"
	}
]

该接口提供的PCAP相关信息,被集成到前端界面之中, 用于证据展示,便于用户查看、分析使用。 例如,从演示环境中查看其中一条包特征识别告警:

点击最后一列的告警事件ID,进入告警详情页面,在下方的事件特征列表中,点击列表第一列的展开按钮, 可以查看解析后的数据包信息, 如下图所示。 该事件payload命中了jndi特征串,疑似为log4j漏洞利用攻击,可以结合其他告警或设备日志进一步确认。

值得一提的是,可以将用户通过其他方法留存PCAP数据导入流影进行分析, 比如可以使用tcpreplay等流量回放工具,将PCAP数据打到流影探针监听的网卡接口, 这样就可以在流影界面看到对应的分析结果。 开源版暂未在界面中提供该功能,商业版可以支持定制化开发集成。

结语

PCAP数据记录了完整网络通信信息,是网络行为分析的最原始和直接的证据。 流影系统集成了网络流量PCAP留存功能,流影并没有选择全流量留存, 而是针对可疑网络行为流量进行了捕获留存,避免探针的大量资源消耗和性能损失。 流影的可视化界面中,对告警事件的PCAP数据进行了解析展示, 便于用户从直接的数据证据中发现威胁,让用户更容易看清和看懂网络通信中异常行为。

转自:https://abyssalfish-os.github.io/news/pcap/

相关推荐

AI「自我复制」能力曝光,RepliBench警示:大模型正在学会伪造身份

科幻中AI自我复制失控场景,正成为现实世界严肃的研究课题。英国AISI推出RepliBench基准,分解并评估AI自主复制所需的四大核心能力。测试显示,当前AI尚不具备完全自主复制能力,但在获取资源...

【Python第三方库安装】介绍8种情况,这里最全看这里就够了!

**本图文作品主要解决CMD或pycharm终端下载安装第三方库可能出错的问题**本作品介绍了8种安装方法,这里最全的python第三方库安装教程,简单易上手,满满干货!希望大家能愉快地写代码,而不要...

pyvips,一个神奇的 Python 库!(pythonvip视频)

大家好,今天为大家分享一个神奇的Python库-pyvips。在图像处理领域,高效和快速的图像处理工具对于开发者来说至关重要。pyvips是一个强大的Python库,基于libvips...

mac 安装tesseract、pytesseract以及简单使用

一.tesseract-OCR的介绍1.tesseract-OCR是一个开源的OCR引擎,能识别100多种语言,专门用于对图片文字进行识别,并获取文本。但是它的缺点是对手写的识别能力比较差。2.用te...

实测o3/o4-mini:3分钟解决欧拉问题,OpenAI最强模型名副其实!

号称“OpenAI迄今为止最强模型”,o3/o4-mini真实能力究竟如何?就在发布后的几小时内,网友们的第一波实测已新鲜出炉。最强推理模型o3,即使遇上首位全职提示词工程师RileyGoodsid...

使用Python将图片转换为字符画并保存到文件

字符画(ASCIIArt)是将图片转换为由字符组成的艺术作品。利用Python,我们可以轻松实现图片转字符画的功能。本教程将带你一步步实现这个功能,并详细解释每一步的代码和实现原理。环境准备首先,你...

5分钟-python包管理器pip安装(python pip安装包)

pip是一个现代的,通用、普遍的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,是Python开发的基础。第一步:PC端打开网址:选择gz后缀的文件下载第二步:...

网络问题快速排查,你也能当好自己家的网络攻城狮

前面写了一篇关于网络基础和常见故障排查的,只列举了工具。没具体排查方式。这篇重点把几个常用工具的组合讲解一下。先有请今天的主角:nslookup及dig,traceroute,httping,teln...

终于把TCP/IP 协议讲的明明白白了,再也不怕被问三次握手了

文:涤生_Woo下周就开始和大家成体系的讲hadoop了,里面的每一个模块的技术细节我都会涉及到,希望大家会喜欢。当然了你也可以评论或者留言自己喜欢的技术,还是那句话,希望咱们一起进步。今天周五,讲讲...

记一次工控触摸屏故障的处理(工控触摸屏维修)

先说明一下,虽然我是自动化专业毕业,但已经很多年不从事现场一线的工控工作了。但自己在单位做的工作也牵涉到信息化与自动化的整合,所以平时也略有关注。上一周一个朋友接到一个活,一家光伏企业用于启动机组的触...

19、90秒快速“读懂”路由、交换命令行基础

命令行视图VRP分层的命令结构定义了很多命令行视图,每条命令只能在特定的视图中执行。本例介绍了常见的命令行视图。每个命令都注册在一个或多个命令视图下,用户只有先进入这个命令所在的视图,才能运行相应的命...

摄像头没图像的几个检查方法(摄像头没图像怎么修复)

背景描述:安防监控项目上,用户的摄像头运行了一段时间有部分摄像头不能进行预览,需要针对不能预览的摄像头进行排查,下面列出几个常见的排查方法。问题解决:一般情况为网络、供电、设备配置等情况。一,网络检查...

小谈:必需脂肪酸(必需脂肪酸主要包括)

必需脂肪酸是指机体生命活动必不可少,但机体自身又不能合成,必需由食物供给的多不饱和脂肪酸(PUFA)。必需脂肪酸主要包括两种,一种是ω-3系列的α-亚麻酸(18:3),一种是ω-6系列的亚油酸(18:...

期刊推荐:15本sci四区易发表的机械类期刊

  虽然,Sci四区期刊相比收录在sci一区、二区、三区的期刊来说要求不是那么高,投稿起来也相对容易一些。但,sci四区所收录的期刊中每本期刊的投稿难易程度也是不一样的。为方便大家投稿,本文给大家推荐...

be sick of 用法考察(be in lack of的用法)

besick表示病了,做谓语.本身是形容词,有多种意思.最通常的是:生病,恶心,呕吐,不适,晕,厌烦,无法忍受asickchild生病的孩子Hermother'sverysi...