APP下载

一种基于开放聚合框架的网络流量安全监测体系设计

2018-10-13王艳伟罗赟骞史春见

网络安全与数据管理 2018年9期
关键词:网络流量引擎流量

王艳伟,邬 江,罗赟骞,史春见

(中电长城网际系统应用有限公司,北京 102209)

0 引言

随着信息技术的发展,黑客破坏、数据篡改、信息泄露、间谍软件等攻击事件层出不穷,网络安全形势越来越严峻。Gartner[1]和CB Insights[2]的分析表明,网络流量分析是目前网络攻击检测的重要手段,因此,各信息安全厂商推出多种基于网络流量或特定网络协议的安全检测引擎或系统,具备不同的检测重点和功能特点。但是,随着信息技术不断进步,出现了大量复杂和未知的网络攻击,仅靠单一的检测手段难以有效监测。研究既能解决检测手段的瓶颈问题,又能利用多种现有流量分析引擎的监测体系变得具有重要的现实意义。

随着大数据技术的广泛应用,国内外相关组织和厂家的安全产品向大数据平台迁移的趋势越来越明显,出现了多个开源的安全大数据分析框架和平台。Intel和Cloudera构建了Apache spot,采用大数据分析及机器学习提供先进的威胁检测,提高了对安全威胁的可视性[3];Hortonworks构建了Apache Metron网络安全应用框架,专注于安全信息和事件管理(Security Information & Event Management,SIEM)[4];Security Onion基于Elastic套件提供了一个免费的安全分析平台[5],重点是入侵检测、企业安全监视和日志管理;Moloch通过Elasticsearch构建了一个流量回溯分析系统,实现对原始PCAP文件的快速查看[6]。上述平台中,Apache Metron和Security Onion专注于SIEM,Apache spot和Moloch专注于网络流量分析,两组框架在各自的应用场景中都有较强的优势。

本文结合SIEM的优势和网络流量分析的特点,提出一种新的网络流量监测体系设计方法,通过定义一套开放聚合的框架和通用的数据输入、输出访问接口,来完成各类流量检测引擎的快速适配和接入,实现多种检测引擎的能力聚合和统一分析,应对新形势下复杂、动态、隐蔽的网络攻击,展开高效检测和交叉验证的新篇章。

1 开放聚合式的网络流量安全监测体系架构

1.1 整体框架设计

整体框架按照数据的处理流程划分为三层,依次是流量采集输入层、聚合检测分析层和检测告警输出层。如图1所示。

图1 开放聚合式网络流量监测体系架构

流量采集输入层:主要负责IP流量采集、协议识别、元数据提取的工作,完成元数据标准化输出接口,提供聚合多种协议解析的处理组件,以适配统一和特定的数据输入要求。

聚合检测分析层:提供容纳多种流量检测引擎和模型的容器,经过数据输入、输出的适配后,可以快速进行部署应用,实现检测能力的聚合。

检测告警输出层:定义统一的告警输出接口,接收多种聚合引擎或模型检测上报的安全告警,在规范一致的数据层面开展告警展示、查询、关联分析等应用。

另外,资产信息和威胁情报作为知识库,提供资产风险评估和规则检测的数据支撑。

这些框架和设计可以建立在大数据平台上,但在此不对大数据存储和分析展开讨论,针对安全大数据分析的应用和技术文章可以参考文献[7]~[12]。

1.2 流量采集输入层

网络流量的数据来源目前主要包括流量端口镜像、NetFlow、Proxy、SNMP(Simple Network Management Protocol)等采集方式。NetFlow由Cisco提出并实现,目前大部分网络设备都提供类似的功能支持,NetFlow可以提供网络流量的会话级视图,易于管理和易读,但不能提供网络流量的完整记录;镜像流量方式可以采集完整的网络流量数据包,有利于开展全流量分析,但需要考虑实时大数据存储与计算资源需求的平衡;其他几种方式适用于特定应用和协议的数据采集,不具备通用性和扩展性。

流量采集输入层采用镜像流量方式,可以获取完整的IP数据报文和元数据信息。流量采集输入层主要负责IP流量采集、协议识别还原、元数据提取和定义输出接口的工作,工作原理描述如下。

IP流量采集探针基于镜像端口捕获数据包,一路输出到上层的聚合检测规则模块,进行基于流的规则检测,也可以定义上层检测规则模块的回调接口,进行实时的规则匹配或过滤;另一路按照PCAP包格式落盘存储,用于开展后续的全流量回溯分析;最后一路将采集到的数据流提交到协议识别和还原的模块,进行预处理解析工作。

协议识别模块完成基础元数据的提取(如五元组信息等),同时允许定义多种协议解析的插件,以适配新的协议识别需求;协议还原模块基于通用应用协议类型还原文件,还原完成的文件落盘到存储模块,后续开展基于文件的恶意样本检测。协议识别后的结构化数据提交到元数据提取模块。

元数据提取模块接收协议识别模块输出的结构化元数据,按照JSON(JavaScript Object Notation)格式定义元数据标准化输出格式。同时针对单个元数据包提供基于会话层的数据聚合,以支持基于会话层的检测引擎。元数据标准化输出格式按照粒度划分为两种:IP单包元数据和会话层元数据。

为了适配上层多种类型的聚合检测引擎,定义了几种元数据推送的方式:JSON文件、数据库存储、Kafka[9]流推送、RESTFul接口[10],同时定义相应的过滤器,针对不同的应用类型或字段进行定制输出。

1.3 聚合检测分析层

聚合检测分析层提供一个聚合的容器机制,通过对输入元数据和输出告警的标准化适配后,可以快速接入特定的检测模块,实现检测能力的聚合。

聚合检测模块分为三类,分别是聚合检测规则、聚合检测引擎和聚合检测模型,依次表示了检测技术演进的不同阶段。

聚合检测规则包括了基于黑白名单的静态检测规则、基于流式特征的检测规则、基于组合的检测规则,规则对输入数据的需求主要包括基于五元组的元数据信息和IP流式数据包。

聚合检测引擎针对特定流量或各类协议的检测引擎进行数据接口的封装,数据源从流量采集输出层按照不同的推送方式订阅,经过检测引擎的分析,产生最终的检测结果,以统一的告警形式输出。

聚合检测模型针对特定应用场景的流量检测算法和模型进行深度的集成,然后用基础元数据完成二次数据的预处理分析。

1.4 检测告警输出层

检测告警输出层作为聚合检测能力的呈现,定义统一的告警输入接口,告警包含攻击类型、攻击方式、攻击路径和异常点的结构化描述信息。检测告警输出层定义统一的告警输出方式,至少包括Syslog日志格式和RESTFul接口两种开放式的输出类型,以松耦合的方式接收多种聚合引擎或模型检测上报的安全告警。

告警被接收后,最终落地输出到统一的数据库存储,在规范一致的数据层面开展告警展示、查询、关联分析等应用。

2 开放聚合式网络流量安全监测体系设计实现

2.1 基于开放聚合框架的边界流量安全监测平台构建

基于开放聚合式的网络流量安全监测体系架构的设计思路,结合现实环境中具备的流量采集和流量检测分析能力,构建具备开放聚合能力的边界流量安全监测平台(以下简称为监测平台),实现企业级甚至运营商城域网出口流量的安全监测需求。监测平台允许第三方流量安全检测引擎分别在元数据输入层、检测告警输出层接入平台,并完成检测能力的聚合,具体平台设计如图2所示。

图2 基于开放聚合框架的边界流量安全监测平台设计

图3 元数据标准格式

监测平台构建在分布式环境上,操作系统为CentOS 7,流量采集探针采用C++语言,聚合协议处理组件封装为动态库方式进行加载,分布式存储利用Hadoop环境下的HDFS/HBASE[11],部分参考了文献[12]里采用的大数据技术,检索分析使用ES(ElasticSearch)技术,在线数据共享通过端口复制、Kafka、Syslog、RESTFul等技术完成聚合检测组件的松耦合接口对接。

2.2 业务流程设计

2.2.1流量采集流程和接口

流量采集输入层重点负责流量采集探针、聚合协议处理组件和元数据推送接口三个部分的工作。

流量采集探针设计了两种流量采集方式:对千兆以下的网络直接利用网卡驱动进行抓包;对千兆以上的网络使用DPDK(Data Plane Development Kit)技术完成高速流量下的数据采集。以太网镜像流量经过高速数据采集后,一部分通过端口复制方式推送给流式规则检测组件,或无法接入元数据的第三方检测分析设备,采集探针同时根据平台部署,将已解析流量以PCAP格式输出到HDFS存储,以便后续开展追踪溯源。

IP流数据进入聚合协议处理组件,进行协议识别、会话重组、元数据提取以及应用解析还原。聚合数据处理组件输出的各类元数据信息、文件、邮件等,作为聚合检测分析引擎的分析对象输入,按照统一的元数据标准格式和接口进行推送。

元数据按照JSON格式进行标准化输出,第一层包含IP五元组等关键信息,具体应用层协议的元数据信息在第二层展开描述,具体的格式定义参考图3。

上述以IP单包元数据格式输出的元数据标准格式,以及通过会话重组后基于会话层输出的元数据标准格式,增加了会话和协议汇聚后的信息。

元数据推送接口包含两部分内容:元数据过滤器和推送方式。元数据过滤器以ES常用的DSL脚本查询语言为基础进行定义,根据不同的聚合检测组件要求进行配置。推送方式以Kafka流为例来说明:按照不同的过滤器和组件推送需求,创建不同的Kafka主题,以消息订阅分发的方式完成元数据的推送,Kafka具备分布式消息缓存机制,能应对大流量环境下的数据吞吐量和缓解高峰期消息处理压力。

2.2.2聚合检测分析流程和接口

聚合检测分析层的核心功能是:使用威胁情报技术和入侵检测技术对流量进行预处理,发现已知威胁;使用人工智能技术对还原文件和网络流量进行检测,发现未知威胁。其检测流程图如图4所示。

图4 聚合检测流程

流量采集输入层采集流量后,通过消息队列将流量数据推送给聚合检测分析层进行在线分析,或者将还原文件存储到Hadoop环境的HDFS中。

在线分析层进行数据预处理,并开始聚合规则检测。IP流数据或元数据进入聚合规则检测组件,进行三类规则(五元组+关键词规则、Suricata规则、数据回溯规则)检测,并使用符合STIX(Structured Threat Information eXpression)标准格式的威胁情报信息作为输入标准,对输入流进行威胁匹配。威胁情报库将定时从外部威胁情报源接收最新的威胁情报信息。

智能检测在实现聚合检测分析相关功能上,主要体现在流量统计分析、回溯分析、域名分析、邮件分析、文件分析、异常流量检测,其核心技术是采用人工智能分析文件和流量。

恶意代码检测模块定期读取HDFS中存储的文件,采用动态和静态分析的方式提取文件的相关特征。静态分析采用反汇编的方式提取文件相关静态特征;动态分析采用沙箱的方式提取文件相关动态特征。基于提取的特征,使用浅层机器学习或深度学习的方法,如LSTM(Long Short-Term Memory)、CNN(Convolutional Neural Network),构建模型检测文件属性。流量检测模型实时检测NoSQL数据库中存入的流量元数据,根据网络流量和应用层元数据信息,提取相关特征,采用浅层机器学习或深度学习方法构建模型,实现DGA(Domain Generation Algorithm)域名检测、用户行为分析、恶意连接分析和恶意流量检测。鉴于流量的海量性,一般采用非监督的学习方法构建检测模型[13],如:Auto-Encoder,DAGMM(Deep Autoencoding Gaussian Mixture Model)模型。

使用人工智能方法对文件和流量进行检测,不仅能够提高检测精度,还能减少误报率。聚合检测分析层发现的安全事件或检测结果按照告警标准格式输出,接收模块提取的告警信息在NoSQL数据库内集中存储,并在可视化层进行通用展示分析。

2.2.3检测告警输出流程和接口

检测告警输出层定义了告警标准格式、输出方式以及告警的应用分析。

告警标准格式参考国际国内相关标准规范、网站安全事件信息发布格式、国测事件型漏洞定义、绿盟/科来等Syslog日志、部分项目安全分析报告、系统生成/外部集成/人工分析等多类应用场景、安全大数据综合分析应用场景,制定安全告警事件的标准格式,参见表1。

安全告警接收接口定义了两种实现方式:Syslog和RESTFul接口,安全告警接收模块收到各类安全告警事件,统一输出到安全告警事件库中。

告警接收模块基于元数据和安全告警存储记录,结合威胁情报信息和资产信息,开展告警统计、告警关联分析、杀伤链分析、资产风险分析和流量溯源追踪等相关服务和应用。

表1 元数据标准化格式定义

2.3 现实应用情况

基于开放聚合框架的网络流量监测体系设计思路,结合流量采集、规则检测、流量协议分析等子系统,在3个月内完成边界流量安全监测平台的构建,形成较完整的边界流量检测方案,在通过内部环境测试之后,迅速应用到重点项目的安全监测工作中,并且发挥了良好的安全监测效果,体现了架构的开放性和快速聚合能力。

3 结论

本文提出了一种基于开放聚合框架的网络流量监测体系设计,通过以此设计构建的边界流量平台,初步具备了开放和聚合的特点,可以快速集成第三方流量检测引擎,实现安全监测能力的聚合。未来,还需要在聚合协议处理组件的完备性、通用分布式计算能力和告警应用分析场景上继续对此设计作深入的研究和改善。

猜你喜欢

网络流量引擎流量
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
冰墩墩背后的流量密码
张晓明:流量决定胜负!三大流量高地裂变无限可能!
新海珠,新引擎,新活力!
寻找书业新流量
三生 三大引擎齐发力
AVB网络流量整形帧模型端到端延迟计算
蓝谷: “涉蓝”新引擎
五位一体流量平稳控制系统