摘要: 网络安全事件溯源取证陷入僵局,往往是因为传统系统日志和产品日志很难在维度和粒度上满足取证的需求,经常遇到关键证据缺失、上下文无法关联、线索无法展开等问题,最终无法完整且详细地还原事件的来龙去脉。因此,一旦攻击事件发生,要想获得完整的取证数据,需要提前建立独立...
网络安全事件溯源取证陷入僵局,往往是因为传统系统日志和产品日志很难在维度和粒度上满足取证的需求,经常遇到关键证据缺失、上下文无法关联、线索无法展开等问题,最终无法完整且详细地还原事件的来龙去脉。因此,一旦攻击事件发生,要想获得完整的取证数据,需要提前建立独立的存取证系统,在存证的维度和粒度上做到完整和精准的覆盖:在维度上,尽量做到最广泛的数据源覆盖、最完整的存证对象覆盖和最长的时间范围覆盖;在粒度上,尽量取得原始级细粒度的存证数据。
在过去几年中,企业网络的带宽应用已经从10Gbps发展到40Gbps,再到100Gbps,以支持快速增长的互联网流量。在超过100Gbps的高速链路上实现网络攻击溯源取证是一项具有挑战性但不可缺少的任务。
在与高速链路安全监测与流量留存分析领域类似的网络性能监控(Network Performance Management,NPM)领域和应用性能监控(Application Performance Management,APM)领域,国际顶尖的厂商纷纷提出100Gbps全包捕获和存储能力的解决方案。例如日本的ToYo Synesis、FMADIO、Artiza,德国的NEOX、意大利的N2DISK公司。通过对这些厂商提供的产品配置进行分析,我们发现,为了获得100Gbps线速捕包的能力,这些厂商均使用了顶级的FPGA智能网卡,且以Napatech NT200A02居多。这种顶级的FPGA智能网卡,采购价格都非常昂贵,且交付周期都很长。以主流的Napatech NT200A02智能网卡为例,采购价格为2万美金左右,且需要提前3个月订货。而金睛云华采用的通用100G网卡,无论是Intel E810-CQDA2、Mellanox MCX516A-CCAT,采购价格均在1000美金左右,成本只是上述厂商采用的FPGA智能网卡的二十分之一,而且无需提前订货,随时可以交付。
2023年1月,金睛云华率先发布了全球第一款基于通用服务器硬件的100Gbps线速64字节全包捕获、存储、索引和溯源取证类产品族,包括全流量威胁溯源取证产品TFS-100G和全流量滚动存储产品TRS-100G。金睛云华产品与主流厂商100G产品对比如图 1所示,单设备具备以下特性:
(1) 支持100Gbps的64字节数据包线速捕获,零丢包;
(2) 支持100Gbps的64字节数据包线速压缩&存储,零丢包;
(3) 支持100Gbps的64字节数据包线速索引,零丢包;
(4) 支持PB级PCAP数据包(对应320亿以上的会话元数据),1s以内溯源取证;
(5) 支持100K QPS高并发溯源取证。
图 1 主流厂商100G产品对比
100Gbps性能的突破离不开关键技术的创新,产品应用了以下专利技术:
(1) NUMA感知框架
在通用服务器的架构中,CPU的不同级别缓存访问延迟不同,跨CPU插槽的内存分布也提供不同的内存访问延迟。具体的访问成本描述如下:CPU的L1缓存的访问成本是3个时钟周期,L2缓存的访问成本是11个时钟周期,L3缓存的访问成本是32个时钟周期,本地节点内存访问大约是140个时钟周期,远程节点内存访问大约是300个时钟周期。因此,技术挑战是如何在通用服务器上设计数据包最佳处理流程,充分利用CPU的缓存资源,进而减少昂贵的内存访问,特别是跨NUMA内存访问。
为了解决以上问题,金睛云华基于专利技术,实现了一种非统一内存访问(Non Uniform Memory Access,NUMA)的感知框架,精心选择针对每个数据包处理阶段优化的算法和技术。该框架能够根据端到端的数据包处理路径,NIC缓冲区、IO存储、PCIe总线、系统内存、CPU缓存、CPU的封装工艺和多核架构等各种硬件和相关软件套件,通过优化配置动态选择数据包处理管道和处理策略,实现单个NUMA节点线速处理50Gbps带宽。NUMA感知框架提出了数据流处理逻辑单元概念,如图 2所示,即CPU的Die核心处理的数据包仅在本地内存、本地PCIe网卡、本地PCIe的Raid卡以及Raid卡上的存储介质上进行流转,完整的数据包处理流程发生在其中。最后,为了提高通用服务器的总处理性能,可以在单个服务器的所有NUMA节点上复制多个此类单元,最终将数据包处理能力线性扩展到100Gbps+流量速率。
图 2 数据流处理逻辑单元
(2) 自适应接收端缩放
捕获高速网络中的流量通常使用分片技术将计算资源切分以便并行处理流量,每个分片都以完全独立的方式进行流量处理,避免内核间的通信进而获得更高缓存命中效率。若传入负载在内核之间分配不平衡,会导致某些内核最终会缓冲比其他内核更多的数据包,导致过载而丢包。而此时,可能存在系统多个核心几乎处于空闲状态,但仍会出现这些高尾延迟(>10毫秒)和数据包丢失,而且通过简单地配置并不能解决该问题。
为了解决以上问题,基于专利技术,实现了一种自适应的接收端缩放技术ARSS,(Adaptive Receive Side Scaling,ARSS),通过动态规划算法在分片之间迁移RSS间接桶来解决数据包调度问题。ARSS跟踪每个RSS桶接收到的数据包数量。然后,ARSS统计哪些桶向每个CPU核心发送数据包,计算每个桶对每个CPU核心负载的贡献程度。之后,修改RSS间接表从过载的CPU核心移动到负载不足的CPU核心。需要时,ARSS可以通过将存储桶移动到新内核或重新分配计划移除的内核存储桶来动态扩展内核数量。通过保存每个桶的流表,当一个桶被重新分配给另一个CPU核心时,所有相应的流都可以一次迁移完成。为了防止在迁移过程中数据包重新排序,ARSS会跟踪CPU核心清空其队列的时间,然后释放其关联的每条流状态。ARSS通过实现有状态的服务器内负载平衡,使得即使在200Gbps链路的速度下也能充分确保对CPU的极高利用率。它通过强制数据包流到具有更高亲和力的核心、优化并最小化核心之间的每条流状态传输以及利用网卡中存在的基于硬件的RSS负载平衡方案来实现ARSS。
(3) 超快索引技术
对于高速链路安全监测与流量留存分析领域,如何快速的检索网络流量数据是非常关键的技术。通常会对存储的网络流量数据建立索引以满足后续的检索工作。在面对100Gbps+的高速链路、大规模网络和复杂多样应用时,仍旧存在检索性能的挑战:
① 索引建立过于简单,整个索引随着时间积累变得非常庞大,甚至难以引导到内存中,查询代价较高。此外,缺少时间索引、过滤索引,用户的查询直接遍历磁盘上的数据包索引文件,导致对复杂的查询需求效率较低。而且,对于索引文件和原始数据没有进行压缩,存储效率较低;
② 全流量实时处理、查询和存储使用不平衡:较多的全流量存储系统难以实现在流量实时存储和查询性能之间兼顾;
③ 面对动辄PB级别的全流量PCAP包数据(对应320亿以上的会话元数据条数),用户需要高并发检索(10K并发的QPS),秒级甚至秒内返回用户检索的会话PCAP包。而传统技术,例如NTOP公司的N2Disk产品,16TB的PCAP包需要小时级的检索复杂度。[1]
为了解决以上问题,基于专利技术,实现了一种面向会话的超快检索算法,具备以下特点:
① 流生成:采用面向会话的处理、索引和检索方法,优于传统面向数据包的处理方法,极大的提高存储、索引和检索效率;
② 索引生成:采用五级索引和二级过滤定位用户关注的会话PCAP文件,如图 3所示。其中,五级索引包括时间索引、布隆过滤器索引、压缩位图索引RBM、KV索引和会话数据包索引;二级过滤,元数据过滤用于筛选时间粒度不够引入的误差,BPF过滤(可选)用于进行最后包特征匹配;
③ 检索过程:采用CPU缓存、内存、SSD阵列和HDD阵列四级存储结构。通过将检索进程绑物理核心方式避免CPU核心的频繁上下文切换,将用户访问最频繁的会话索引放入CPU缓存,以最近的会话索引放入的内存作为热索引,其他索引存储在SSD阵列中,PCAP文件存储在HDD阵列中,确保最慢的硬件尽量少的访问。
利用面向会话的超快检索算法,在全流量留存分析领域,金睛云华具备全球领先的PB级数据秒内检索性能,单台设备就可以实现在PB级的PCAP数据(对应320亿会话元数据)中,检索用户关注的所有会话pcap,返回时间不超过1秒。
图3 超快索引原理
(4) 高性能的倒序数据包索引技术
随着高级网络威胁日益增长,对于网络安全产品提出了新的要求,即检测类、审计类、安全运营类产品需要能够完整还原威胁攻击过程,为运营人员提供与威胁告警对应的完整会话原始流量,以溯源取证网络威胁。然而,传统的检测类、审计类、安全运营类产品在设计之初重点放在威胁检测、审计和运营领域,引擎和业务设计忽略了完整会话PCAP溯源取证能力,仅部分产品能对特征签名检测技术提供基于包的溯源取证能力,远不能满足用户对还原威胁攻击过程的需求。此外,新颖的检测技术层出不穷,例如情报检测、异常检测、AI检测、关联分析、图挖掘等,这类检测技术的特点是大多数是准实时和离线检测,难以获取到威胁告警对应的完整会话PCAP。
在面对100Gbps+的高速链路、大规模网络和复杂多样应用时,为其他安全产品提供PCAP溯源取证功能,仍旧存在以下挑战,包括高并发的检索请求、会话PCAP重组、大象流拼接等。
为了解决以上问题,基于专利技术,实现了一种高并发的倒序数据包索引技术,该技术利用了以下假设前提:
① 使用场景是与其他检测类安全设备配合,仅需要会话ID查询来获取会话PCAP文件;
② 单设备PCAP存储介质是有限的,与之对应的索引数量也是在确定的范围内;
③ 若能够将会话PCAP的索引完全放入内存,则能够提供给用户最大的并发查询速度;
④ 高并发响应过程中,从落盘的大文件中提取会话数据包并合并为会话PCAP返回给客户。假设平均每个会话包含100个数据包,则100K QPS的响应需要10M的读IOPS。对于NVME存储介质,单盘通常能够提供0.6M以上读写IOPS。因此,需要Raid技术支持。
基于以上前提,高并发的倒序数据包索引算法如图 4所示,描述如下:
① 三级索引结构:一级索引,KV结构,Key为会话ID,Value为存储介质上的文件ID以及该会话最后一个数据包在文件ID中的偏移量;二级索引,通过文件ID和数据包偏移量,获取会话ID的最后一个数据包,并提取该会话剩余的数据包的位置向量;三级索引,通过该会话剩余数据包的位置向量,从存储介质的文件ID中提取会话ID的所有数据包并进行重组和返回;
② 存储结构:一级索引,主要位于CPU缓存和本地内存,存储介质中数据主要用于索引数据持久化和最久、最不频繁访问的索引数据留存;二级索引,位于存储介质中,一个文件ID中;三级索引,位于存储介质中,可能在多个文件ID中;
③ 冷热分离:传统的冷热分离方式,根据CPU缓存和内存大小水平分割索引数据,如图5所示。与传统冷热分离方式不同,本技术通过创新的将索引结构算法进行重新设计,利用垂直切分方式,如图 6所示,仅一级索引放入CPU缓存和本地内存,降低索引对CPU缓存和本地内存的需求,使得内存中完全可以放入新设计的一级索引,进而提高并发QPS。而二级索引和三级索引放到存储介质,以Raid卷管理的存储介质能够提供较高的IOPS支持高并发的检索响应;
④ 检索响应:一般情况下,对于一级索引的查询将会返回一条记录,进而利用二级和三级索引获取会话PCAP文件。然而,当遇到大象流时,对于一级索引的查询将会返回多条记录,进而利用二级和三级索引获取多个PCAP文件,这些文件同属于一条大象流会话,需要进行进一步会话拼接和重组,返回大象流会话PCAP。
图 4 高并发的倒序数据包索引算法
图 5 传统冷热分离的索引切分技术
图 6 高并发倒序数据包索引算法的冷热分离实现方法
(5) 流量压缩存储技术
对于100Gbps网络流量,在无压缩的情况下,存储24小时需要1.03 PB存储,一个月需要30PB存储。按照当前主流最大磁盘容量为18TB,需要1706块18TB磁盘,成本接近430万人民币。传统的降低存储成本技术通常采用有损流量存储、离线压缩存储和实时压缩存储等技术,这些技术都存在一定的问题。
为了满足100Gbps链路的网络流量落盘留存、原始流量溯源并显著降低存储成本,提出了一种基于高效压缩算法的全流量存储技术,能够实现原始流量压缩率小于60%、流量索引压缩率小于20%。如图7所示,该技术包含三个关键模块:
① 面向流的数据重组和索引,将数据包流转换为面向流的形式,提高了检索和数据压缩效率;
② 高效的数据压缩算法:针对数据包包头和载荷,分别使用有效的数据压缩技术降低总存储成本。其中,包头压缩技术,通过利用同一流中数据包的包头冗余来减少数据包包头的存储大小,即冗余压缩技术;载荷压缩技术,利用可变长度块重复数据删除与每块字典压缩相结合来压缩有效负载;
③ 冷热分离存储,将频繁使用和随机访问的索引数据存储到NVME SSD上,存储介质上保留不经常访问的批量数据,例如PCAP包,从而改善检索延迟。
图 7 基于高效压缩算法的全流量存储技术关键模块
将以上技术进行有效的整合,共同支持100Gbps全流量存储与溯源系统实现其存储性能和成本目标。例如,流重新排序大大提高了压缩的有效性,数据压缩可以将经常访问的数据存储在SSD上,而不会显着增加总存储成本。
金睛云华将溯源取证作为NG-XDR体系在高级威胁治理领域中最重要落地能力之一,率先发布全球第一款基于通用服务器硬件的100Gbps线速64字节全包捕获、存储、索引和溯源取证类产品。基于流量分析引擎领域的多项专利技术和创新实践的通用性,100Gbps+流量处理能力可以相对轻松的扩展到金睛云华的其他产品族,如威胁检测与响应产品(Network Detection and Response,NDR)、入侵检测产品(Intrusion Detection System,IDS)、网络性能监控与诊断产品(Network Performance Management and Diagnostics,NPMD)、应用性能监控产品(Application Performance Management,APM)。金睛云华基于通用服务器硬件的200Gbps+线速全包捕获、存储、索引和溯源取证类产品也在研发中。金睛云华将不忘初心,持续在网络安全领域创新,为用户创造价值,敬请期待!