你的网络全流量从来都不「全」

最近一两年间,研究网络流量分析的各种流派,都殊途同归到“全流量”这个方向。你也全流量我也全流量,但究竟什么是全流量,大家不是语焉不详就是讳莫如深。更有甚者,拿开源IDS引擎来直接充当全流量,就像“人工智能”一样,兀自念了一个咒语,就能鸡犬升天。让人不能不感慨,一个IDS的时代结束了,这个时代的人还活着——这是一件很残酷、却很常见的事。

流量,顾名思义,即流淌于网络中的各种数据。全,则是全部的意思。放在一起,望文生义来说就是网络中全部的数据。用小学生的视角去看,与“全”对应的就是“部分”。使用过众多流量分析工具的各位都知晓,大部分工具输入的就是全部网络流量,那这个被大家集体鄙视的“部分”又从何而来?

PART1

全从何来

我们不妨直接去看故事的结尾,安全管理和维护人员,最常遇到的用户对网络的反馈。

反馈1:今天我电脑被勒索了,是不是从网络来的,你花钱买的安全设备为什么没防住,明天就开除你!

反馈2:昨天下午四点钟,这网络慢死了,你告诉我为什么?我花了这么多钱买带宽,买设备,以后不能这样了!

不切身走到一线,很难体会网络安全和维护工程师,此时面对一堆安全设备告警和网管软件流量曲线的无奈感。用户对网络的要求究竟是什么,问题又到底出在哪里?

PART2

全流量何以可能

2.空间维度

在传统分层结构的网络架构中,由于出口网关、骨干路由器、核心交换机和汇聚交换机等设备的存在,要提取网络中的流量,在物理结构上相对容易。在网络出口镜像或者分光,可以解决南北向数据提取的问题,在核心交换机的镜像功能则可以解决绝大部分的东西向流量采集。

随着5G和云网络技术的普及,一切都发生了根本性改变。绝大多数的政企网络已经完成或正在经历从单一园区网,向移动化、多分支化和云化的迈进。一个总部、多个云、众多分支和移动办公的普及,已经变成了网络管理人员所要面临的常态。单点镜像分光能解决的问题,已经退化到了只能解决为数很少的骨干网节点,其他位置已经失去了基本的存在可能。在这种网络结构下,多分支多点逐跳采集、云南北向采集、云东西向采集和移动端数据采集,就成了当前全流量采集首先要面对的基础问题。

3.成本维度

以我们多年研究网络原始流量的经验来看,一个经验丰富的数据分析师,在配有较为强大的数据分析工具前提下,一天能处理的原始数据量达到1TB就是极限。换句话说,1Gb链路一天产生的流量,如果要做到同步分析,需要10个有经验的分析师才能在滞后一天完成。与看起来高昂的存储成本相比,这才是全流量所要面对的最大成本——你会被淹死在数据的海洋里!

PART3

三个境界

铺陈许多,现在就来解剖一个全流量系统的逻辑模块,来阐述全流量系统的境界差异。从逻辑结构上,可以将任意一个全流量系统拆分为采集、预处理、在线分析、数据包存储、离线分析五个部分,通过一张图来展示如下。

与传统的单点分层网络结构相比,云化多分支的网络结构有了比较大的变化,整个云化分支网络的六大采集点包括:总部网络出口、分支网络出口、数据中心出口、云网络南北向出口、云东西向流量和移动用户接入数据。要实现真正的“全流量”采集,就需要覆盖到以上的所有采集点,这种情况下,需要各种实体和虚拟化探针的加持才能完成。

采集后的流量需要先进入预处理引擎,预处理引擎再根据规则丢弃一些流量。丢弃多少流量,丢弃哪些流量,取决于在线分析引擎的实际输入需求,也取决于预处理引擎的分析能力。预处理引擎对性能要求高,一般采用ASIC、FPGA、DPU/SmartNIC和DPDK/eBPF等技术架构简单过滤方式,比如:根据IP地址、端口丢弃包,剩下的部分流量穿透到在线分析引擎。

在线分析引擎接收预处理引擎给到的流量,并根据分析目标的不同将所有流量生成不同种类的摘要,然后将生成的摘要作为索引送到数据包存储引擎。后续再根据索引做分析,每个索引种类会对应不同的全流量设备。常见的摘要类型包括:告警、会话、文件和元数据。IDS、IPS、WAF、SoC等产品对应的索引是告警;NPM、流分析、溯源、威胁情报和DDoS等产品则使用会话作为处理依据和索引;防病毒、APT、内容审计类的全流量分析,则更多依赖的是还原的文件。元数据本质上是更高一个维度的索引储备,在生成的那一刻只是代表未来可能会要求被快速提供,并不即刻就对应一个结果。例如:HTTP协议的UserAgent字段元数据,经常会被用来事后追溯一种特殊的HTTP客户端,用于离线分析,但是在生成提取的时候并没有确切的结果。

数据包存储是全流量分析的重要组成部分,与传统的数据分析不同的是,全流量数据存储需要存储原始数据报文。1Gb带宽的实时流量,每天就会产生10TB的原始数据包。面对海量数据的存储,对数据库的选择、数据的区分、索引的创建、内存的分配、文件格式、缓存以及中间表都有更高的要求。最终所有的数据组成大的存储矩阵,为了方便提取,优秀的索引管理也就尤为重要。

离线分析引擎的主要针对已经存储好数据包内容和索引进行分析和处理,需要有丰富的进一步深度解码数据包、报表和分析模型创建能力。为了保障分析的准确性,离线分析引擎可以根据原始数据进一步更新索引表内容,例如以一个新解析的元数据类型重构索引,同时还需要具备文件还原、数据重放、场景回滚等能力。离线分析引擎还需要提供对外接口,用于和其它产品或数据库对接,常见的比如Hadoop原始文件接口、Kafka消息接口等。

要量化的评价一个全流量系统基础能力,可以有三个参数,或说是全流量的三个境界:

境界一:输入全部(C0=1):拥有俯视一个已完成云化和多分支化的网络的能力,在任何时刻都可以按需完成对其中云化多分支六大采集点的流量采集和回传,是全流量的第一个目标。能采集的流量和要害节点总流量的比例,就是评价系统能力的第一个参数C0。C0的取值范围为[0,1],越接近1,说明采集输入的能力越强。

境界二:分析全部(C1=1):任何品类的在线分析引擎,在物理硬件限制下都有两个确定参数:生成摘要的种类和最大处理能力。基于摘要的种类和处理能力,可以反推预处理引擎需要基于哪些规则,来丢弃不处理的流量。被预处理引擎保留不丢弃的流量和输入预处理引擎的总流量的比例,是评价系统能力的第二个参数C1。C1的取值范围为[0,1],越接近1,说明在线分析引擎的性能越强劲,需要预处理引擎干预的越少。

境界三:记录全部(C2=1):基于在线分析引擎建立的摘要,指令数据包存储引擎来保存哪些原始数据包。同时,这个记录的能力受限于存储管理模块的性能和硬件设备的写入瓶颈。所有记录的原始数据,都必须是基于摘要可回溯的。实际存储的原始数据包流量和发送到在线分析引擎的流量比例,是评价系统能力的第三个参数C2。C2的取值范围为[0,1],越接近1,说明记录和回溯原始数据的能力越强。

PART4

未来到哪里去

在上一章里提到的C0值,理论上C0=1最佳,但是要在现网中实现园区出口、企业出口、政府出口、云南北向出口、云东西向流量等等点位的采集,面临着极大的挑战。当离散的采集点过多时,探针成本问题、专线成本问题、数据分析问题会接踵而至。

探针成本的问题,不仅来自于部署探针点位的多少,更在于各类数据分析产品的探针无法通用,导致探针存在重叠部署。探针采集到的全量数据回传至总部,需要大量的网络带宽,所以带宽成本也高居不下。假设预算充足,以上问题均已得到有效解决,但是从海量的数据中提取有价值的信息堪比大海捞针。因此,所有流量采集点部署全部的检测能力并全部回传,从来都是一个永远不可完成的任务。

从上一章可以得出,用户的实际场景需求决定了预处理的需求,也决定了C1值的大小。因此流量预处理的判断精度要实现三层到应用层的转变,仅仅依靠IP、端口等方式进行筛选难以完成此重任。举例说明:例如用户使用的是WAF产品,在预处理过程中则可以丢弃所有非Web访问,但是有大量非80/443端口的Web流量,不能用依据端口的规则进行丢弃,要细化到应用级别。再例如用户使用的是APT产品,需要在已知流量中寻找异常,丢弃是不允许的,比如有未知协议使用53端口,如果依据端口规则直接丢弃,则会失去对异常流量的判断能力。如果面对海量的数据输入时,可以通过增加硬件,集群化部署来缓解预处理引擎的压力,拥有云原生的横向扩展能力,而不是简单地使用ASIC、FPGA等应用层处理能力低下的快速筛选。

全流量分析产品的在线分析引擎,首先要保证强大的处理性能,其次是保证数据分析的全量。在线分析引擎要基于会话或是元数据创建索引,同时又兼容文件、告警等多种交叉索引方式,真正实现C2=1。在线分析引擎每多一种索引,就增加一个网络分析的维度,同时也加大一次引擎的性能消耗,如何在索引和性能之间取得更好的折中是在线分析的最大难题之一。简单如Netflow,复杂如几千种元数据的实时采集建模。索引的选取,直接决定了最终的产品类型,交叉索引则产生更有戏剧性的结果,比如最近颇为流行的APT分析产品。在实时展示方面,要设置丰富的筛选条件,支持多级的数据检索能力,同时保障元数据快速的检索能力。

在线分析引擎的传统硬件部署方式,虽然可以解决流量吞吐问题,但是灵活性较差。为了更好地适应网络的发展,其一定要具备云原生的弹性扩展能力。在公有云、私有云以及混合云市场蒸蒸日上的大环境下,和在线分析引擎本身一样,探针和数据库也需要具备云原生弹性扩展能力。

经过在线分析引擎输出的数据随时有可能会被用户读取,如果采用随机存储的方式,那么对于用户读取数据来说,会变得相当困难。

【举例说明:以开头的故事为例,运维人员想要快速查询“昨天下午14:00-14:30之间,A分支至总部的视频会议时延超过300ms的会话有哪些”。】

面对这样的多纬度分组聚合查询,需要有很多方面的优化,比如:

对采集的数据进行时序存储,并采用固定块大小,固定文件个数,轮询覆盖最老文件,减少硬盘存储碎片。

通过内存进行原始数据压缩,减少硬盘存储文件的数量,达到存储性能提升的目的,并且使用内存进行数据压缩,并不会消耗太多性能,毕竟压缩文件是内存的强项。

将元数据与原始数据包的分级存储,元数据存在SSD上面,原始数据包存在机械硬盘上面。以此保证索引信息的快速查询,又不会因为原始数据包过多,造成用户硬盘存储成本的增加。

对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的分组、排序等字段,都要建立相应索引,一般还可以建立复合索引。

如果是对云南北向出口或是云东西向的流量进行存储时,为了减少中间链路的传输压力,原始数据的存储将会放到云端,因此,数据包存储引擎也必须支持云化的弹性部署。

除了存储方式的优化,该部分还要具备原始数据包的回放能力,被回放的数据一般会用于对接第三方的安全产品。数据回放可以复原当时网络的真实情况,方便运维人员对故障或是安全事件的分析。

所谓大隐隐于市,异常的通信内容隐蔽伪装在常用协议中,是很多恶意应用的常用手段。离线分析引擎需要对已经识别的协议,根据协议、目标去向、域名、URL、DNS请求、用户身份、地理位置、UA等元数据,建立数据仓库,然后再根据它们的波动、差分、排序等统计规律寻找异常变化,最后对锁定的异常变化会话数据进行深度的原始数据分析,就会到很多问题的答案。

通常情况下,被在线分析引擎确定为未知的协议数据有三种:小众协议、已知协议数据的漏识别以及广泛使用的非正常协议。在离线引擎中,可以利用同目标其他识别结果的交叉校验,排除大量已知协议数据情况,然后再结合交叉地理位置、使用频度等情况,剩余的小众协议和广泛使用的非正常协议就会快速的浮出水面。值得一提的是,两种协议分别是APT类未知威胁发现和黑产类未知威胁发现的重点分析目标。

PART5

选择需要慧眼

在现实中,并不存在一个“完美”的全流量系统。前述C0、C1、C2和索引的选择,可以用于评价一个全流量系统的目标和现实水平。

从采集完整度讲,C0=1是理想目标,但其面临的是六大离散的采集点的复杂度,成本和管理复杂度都是大问题,C0值需要根据具体任务目标灵活设定。例如:只是监控和保护服务器,C0=0.15就是可以接受的选择,而如果目标是全网态势感知,监控全部分支内外通信,则C0必须大于0.8以上,否则从数据样本就已满盘皆输。困扰大部分全流量系统的是在线分析引擎的性能,而C1决定的预处理引擎,可以极大消减输入的数据数量。C1的取值某种程度上体现出对在线分析引擎能力的信心,但是依据任务不同,的确有很多的流量是可以不用注入在线分析引擎。例如:对WAF来说,非HTTP/HTTPS的流量就是无谓的性能浪费。C2越大,则意味着原始痕迹越多,离线分析引擎进行再贴标签和回滚问题的几率越大。

诚然,世界上并没有绝对完美的全流量产品,但是全流量产品的种类会越来越丰富,与用户网络的结合度也会越来越高。自己定义的目标,决定了全流量产品选择的优劣。大多数人都是又懒又蠢的,只要稍微用点心,稍微努力点,就能比大多数人做得更好一点。为了不和又蠢又懒的人为伍,大家在定义自己想要的全流量系统时,可以问自己四个问题:

THE END
1.学堂在线数据挖掘网课答案mob64ca12d70c79的技术博客数据分析:通过不同的算法来分析数据并提取有价值的模式。 结果评估:评估模型的效果,选择最佳模型。 结果呈现:通过可视化工具展示分析结果。 下面是数据挖掘流程的示意图: 数据采集数据预处理数据分析结果评估结果呈现 实际代码示例 在这个示例中,我们将使用Python进行简单的数据分析。我们假设有一个包含客户消费数据的CSVhttps://blog.51cto.com/u_16213327/12894449
2.大数据在线分析近线分析与离线分析近线分析介于在线分析和离线分析之间,它允许数据处理和分析在短时间内完成,但不一定要求实时处理。近线分析的目标是在可接受的延迟范围内提供分析结果。 特点 准实时性:数据处理延迟通常在几分钟到几小时内,具体取决于应用场景。 灵活性:相比在线分析,近线分析可以处理更复杂的数据处理任务。 https://blog.csdn.net/weixin_44231544/article/details/142467700
3.在线分析并且,有些目标物不稳定,不便于长期贮存,离线检测中从采样到送检的这段时间有可能发生变化,导致检测结果与实际情况的差异,这时候在线检测就体现出它的优势。离线分析通常只是用于产品(包括中间产品)质量的检验,而在线分析可以进行全程质量控制,保证整个生产过程最优化。https://www.360doc.cn/article/1081018318_1081018318.html
4.离线分析离线分析 就是生产流取样并将样品送到便于分析器分析的某一分析地点进行的分析 离线分析 analysis off-line 从生产流取样并将样品送到便于分析器分析的某一分析地点,此处并不与生产装置直接相连,也可以说分析器位于远处的实验室。https://baike.baidu.com/item/%E7%A6%BB%E7%BA%BF%E5%88%86%E6%9E%90/12730463
5.OLAP在线分析引擎介绍及应用嘲腾讯云开发者社区OLAP(Online Analytical Processing,在线分析处理)引擎是一种专为复杂数据分析和报告设计的系统,它使用户能够从多个角度快速地对大量数据进行交互式分析。 核心原理:1. 多维数据模型:OLAP的核心是一个多维数据模型,通常体现为数据立方体(Data Cube)。数据立方体由维度(Dimensions)、层次(Levels)和度量(Measures)组成。维度https://cloud.tencent.com/developer/article/2424720
6.总有机总有机碳toc分析仪在线离线有什么特点?怎么选用?大家在使用总有机总有机碳toc分析仪的时候,不了解什么是在线监测,什么是离线检测?应该怎么选用?下面有我为大家介绍一下:如果是实验室使用,选择离线检测,如果是测流动的水,比如连接管道,选择在线检测。总有https://www.chem17.com/tech_news/detail/3008773.html
7.用手机导航是个坑细说麻烦在哪里?GPSGPS新闻离线版软件优缺点分析 那么看到了在线电子地图导航的一些缺陷之后,我们最快能够相当的解决办法就是安装一款离线版导航软件。其实行货手机中偶尔会附赠一些离线版的导航软件供用户使用,但是不一定好用,所以很多用户更加倾向于选择比较熟悉的凯立德、道道通、高德等导航软件。 https://gps.zol.com.cn/239/2399981_all.html
8.啥是离线数据处理什么是离线数据处理离线数据处理是指在数据存储和处理过程中,将数据从其原始来源中移除,并在离线环境中进行处理和分析的过程。这种处理方式通常用于对历史数据进行分析,以便找出趋势、模式和其他有价值的信息。 离线数据处理的主要优势包括: 更大的数据处理能力:离线处理可以使用更大的计算资源和存储空间,以处理大量的数据。 https://cloud.tencent.cn/developer/information/%E5%95%A5%E6%98%AF%E7%A6%BB%E7%BA%BF%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86-video
9.什么是离线大数据分析帆软数字化转型知识库什么是离线大数据分析 离线大数据分析是指在不依赖实时数据流的情况下,对收集到的大规模数据进行批处理分析的过程,高效、灵活、经济是其显著特点。高效是指能够在较短时间内处理大规模数据,灵活则是指可以根据需求进行多种分析和处理,经济主要体现在可以利用相对低廉的硬件资源进行大规模数据处理。高效是离线大数据分析的https://www.fanruan.com/blog/article/46659/
10.全面解析十七种数据分析方法,具象数据分析思维!在当今数据驱动的商业环境中,数据分析已经成为了企业获取竞争优势的关键工具。无论是为了优化运营效率,提高客户满意度,还是推动产品创新,企业都需要通过分析大量数据来做出明智的决策。数据分析方法多种多样,每种方法都有其独特的定义和用途,适用于不同的业务场https://mp.weixin.qq.com/s?__biz=MzU3OTg5Njk2NA==&mid=2247496232&idx=1&sn=ed89f750c935267d4a22d9e57fe28c7c&chksm=fd5da1c3ca2a28d581a1063b691e029137d86bbb2a7640e3a50bbd3dc6553a46ebbfcb51cda1&scene=27
11.在线气相色谱仪软件中的在线和脱机模式的功能比较在线气相色谱仪是一种常用的化学分析仪器,其软件系统在实验过程中起到至关重要的作用。其中,在线模式和脱机模式是两种常见的工作模式。http://www.jinghe17.com/huaijun-News-1510187/
12.一文入门Go的性能分析go tool pprof 可以对采集到的 CPU、内存等信息进行分析,go tool trace 则是对采集的 trace 信息进行分析。 2.1 在线分析 go tool pprof 既可以对采集到的离线数据进行分析,也可以是结合上面的 pprof Http 接口,直接在线上进行分析,比如分析程序的内存使用情况: https://xie.infoq.cn/article/58f7ed6c58b97ed01d859f2e3
13.笔记——Dragoon:ahybridandefficientbigtrajectory在本文中,我们提出了一个混合和高效的框架,称为dragoon,基于Spark,以支持离线和在线大轨迹管理和分析。该框架具有一个可变的弹性分布式数据集模型,包括RDD共享、RDD 更新和RDD镜像,它支持历史和流轨迹的混合存储。它还包含一个实时分配器,能够有效地分发轨迹数据,并支持离线和在线分析。因此,Dragoon提供了一个混合分析https://www.jianshu.com/p/e2a4474d8b98
14.NanoscopeAnalysis官方版(AFM数据离线分析软件)下载v1.5.0.0在实验室做研究的各位用户一定需要一款软件帮助分析各种数据,尤其是一些做秘密研究的更是不能够在有网络的情况下使用,这款nanoscope analysis就是非常不错的AFM离线数据分析软件,如果是一位实验室工作人员,那么一定知道AFM是什么,如果你是不小心点进来的那么小编告诉你,这就是原子力显微镜,是众多现代实验室必备的一个东https://www.32r.com/soft/12163.html
15.关于DataLake的概念架构与应用嘲介绍极客公园支持多种分析引擎 可以通过多种引擎对湖上数据进行分析计算,例如离线分析、实时分析、交互式分析、机器学习等多种数据分析场景。 计算可扩展性 计算引擎需要具备可扩展的能力,具备随数据量不断变大、业务不断增长的弹性数据分析的能力。 存储与计算分离(云上) https://www.geekpark.net/news/303245
16.JProfiler帮助文档分析一个应用程序,JProfiler有两种完全不同的方式:默认情况下,你在连接JProfiler GUI的情况下进行分析。 JProfiler GUI为你提供了开始和停止记录按钮,并显示所有记录的分析数据。 在某些情况下,你想在没有JProfiler GUI的情况下进行分析,并在以后分析结果。对于这种情况,JProfiler提供离线分析。 离线分析允许你使用https://www.ej-technologies.com/resources/jprofiler/help_zh_CN/doc/main/offline.html
17.大显身手!固态拉曼分析仪轻松应对各类分析应用(文末有礼)在过程分析技术中有四种主要的分析类型:在线,线上,旁线和离线。新型过程分析技术(PAT)对准确性和可靠性有更高的要求。对 PAT 而言,最 重要的也许就是不受位置和接口限制,使过程分析具有充分的适应性。 本文介绍了在线,线上,旁线和离线四种采样方式的过程分析类型中,固态拉曼系统如何提供快速、连续和准确的成分分https://www.yiqi.com/news/detail_15588.html