freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

流影之证据留存
深海鱼北京科技有限公司 2023-07-06 21:25:09 95073
所属地 北京

引言

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

流量留存和PCAP概述

网络流量留存一般应用于网络流量分析、网络性能优化和网络安全等领域。流量留存的方式包括全流量留存和部分流量留存。顾名思义,全流量留存保存了全部流量记录,需要消耗采集节点大量资源和性能,一般需要专用流量采集和留存设备。全流量留存一般应用于监管部门或者大中型重要组织机构,对流量具有强监管和审计的场景之中。部分流量留存仅仅针对性保存重点流量,需要的资源相对较少,适用于广大中小型企业和组织对重点流量的安全审计场景。

PCAP(Packet Capture)是比较成熟和常见的网络流量捕获技术和留存格式,许多网络监控和数据分析软件都支持PCAP格式,如TCPdump、Wireshark等。PCAP作为一种网络流量数据报文捕获技术,封装了操作系统底层的网络抓包接口,通过调用统一接口可以捕获目标网卡上数据帧,并存储为PCAP格式数据文件。比如Unix类系统主要使用libpcap库,而Windows系统主要使用WinPcap,进行网络流量捕获和网络流量PCAP留存,文件扩展名一般为pcap。

+---------------------+
| 文件头 (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留存技术概要

流影PCAP留存技术上是使用的是libpcap库,C语言实现。流影探针加载了特征规则,采集流量的同时进行规则匹配,对命中规则特征的单包进行捕获,记入缓存,每五分钟捕获的数据包汇聚为一个文件,直接以Pcap格式进行留存,文件名记录了时间戳,便于数据包查找。特征规则放置在流量探针指定目录, 默认情况下为fp-pattern/ 目录,包含以JSON格式书写的五类规则。

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

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

采集如果正常运行,经过一段时间后,留存的PCAP数据包文件如下图所示:

其中temp文件为pcap缓存,可以看到数据以时间戳命名,每5分钟保存一个文件。

流影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数据进行了解析展示,便于用户从直接的数据证据中发现威胁,让用户更容易看清和看懂网络通信中异常行为。

前期已经发布一系列流影功能使用介绍的Blog,能够帮助大家理解流影的功能和应用场景。建议大家阅读,并在部署的实例或演示Demo中进行操作熟悉。欢迎大家使用流影,更加欢迎参与项目贡献。

更多信息

流影广泛适用于各种网络安全防护场景,包括不限于入侵检测、威胁狩猎、攻防演练、网络证据留存、网络行为调查分析、态势感知等。如果有定制化商务需求,欢迎联系合作。


# 资讯 # 网络安全 # 企业安全 # 网络安全技术 # 开源软件
本文为 深海鱼北京科技有限公司 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
流影开源
深海鱼北京科技有限公司 LV.4
深海鱼(北京)科技有限公司
  • 13 文章数
  • 6 关注者
流影之威胁情报应用
2024-04-14
流影之威胁行为告警
2024-04-14
开源流影更新发布V1.1.0版本
2023-12-01
文章目录