网络威胁情报处理系统的设计与开发

2020-08-11 16:10黄必栋
网络安全技术与应用 2020年8期
关键词:流式数据处理情报

◆黄必栋

(南京铁道职业技术学院 江苏 210031)

威胁情报在网络安全防护中起着重要的作用,它是一种基于证据的知识,包括了情境、机制、指标、隐含和实际可行的建议,其描述了现存的或即将出现针对资产的威胁,可以用于通知主体针对相关威胁采取某种响应[1]。英国基础设施保护中心(CPNI)将威胁情报分为四类[2]:战略情报、可操作情报、战术情报和技术情报。战略情报为总结性的信息,站在全局的角度为决策层提供参考。通常为行业总览、攻击趋势等比较宏观的报告。可操作情报是针对特定组织即将发生的攻击的情报。战术情报通常指Tactics,Techniques,and Procedures(TTPs),TTPs是用来描述攻击者如何进行攻击的,包括攻击者的方法,工具和策略。技术情报是特定恶意软件或网络攻击的指标,包括文件哈希、域名和IP等,通常被称为失陷检测指标IOC(Indicator Of Compromise),可用于“威胁”自动化检测和分析。战术情报和技术情报的可操作性强,可直接应用于安全防护,在企业中经常使用到。战术情报通常先要经过安全人员的分析,再转化成可执行的防护措施,而技术情报可以直接配置到安全产品中用于检测[3]。本文介绍了一种可以自动化生成技术情报的威胁情报处理系统,包括了系统的架构、大数据在系统中的应用、关键模块设计等。

1 系统架构

1.1 系统结构

威胁情报处理系统是安全防御的后台系统,通过收集不同来源和类型的情报数据,使用特定的情报生成算法生成情报,再把情报分发至各种安全产品。整个过程以自动化的方式进行,使情报持续的输出并及时的应用于安全产品。系统结构如图1所示,虚线框中为威胁情报处理系统,安全分析师和研究员使用威胁情报系统对情报数据进行分析、评估和情报相关算法的调整。

系统主要由数据收集、数据处理、数据存储与分析、情报生成以及情报管理模块构成。数据收集模块根据数据类型和特征采用不同的收集方法,如DNS域名解析、Top域名、IP指纹等使用主动收集方法,如蜜罐数据、开源情报、安全产品反馈数据等使用被动收集方法,除了自动化数据收集方式还有人工提交数据功能。数据处理模块提供了数据ETL功能,对收集来的数据进行提取、过滤、变换处理后,持久化至“数据仓库”中。部分采集过来的数据经过数据处理即可直接生成情报,如开源情报、蜜罐数据等。数据存储与分析模块使用分布式文件系统、全文检索数据库、OLAP分析型数据库以及分布式数据处理系统等大数据技术提供情报数据的存储、查询和统计分析功能。情报生成模块是系统的核心模块,使用各种情报生成模型,基于情报数据生成情报。情报管理模块负责情报数据的存储、查询和分发。

图1威胁情报系统

1.2 大数据技术在系统中的应用

系统中使用了各种大数据技术,按模块分如图2所示。数据处理模块使用流式数据处理和数据处理管道技术,对收集来的数据进行过滤、格式转换、复杂变换和数据丰富化等处理,使用数据管道再进行数据分发。数据流式处理使用Spark Structure Streaming,数据处理管道使用Logstash和Kafka。数据存储使用基于Hadoop HDFS的数据仓库Delta Lake,配合分布式数据处理引擎Spark进行数据分析和挖掘。全文检索和分析型数据库用于“热数据”的搜索、统计和分析。云端对象存储S3用于数据备份和中转。技术栈的选择并非唯一的,如数据流式处理可以选择Flink、分析型数据库可选择ClickHouse等,最终的选择根据实际使用需求、云平台的使用以及开发和使用人员的技术偏好等因素综合考虑。

图2大数据技术在系统的使用

2 情报数据处理

2.1 数据处理要求

系统输入的数据要进行适当的处理后才能用于数据分析和情报生成。数据处理方法有两种[4]:(1)Data at Rest,数据落入数据仓库后再进行处理;(2)Data in Motion,数据落入数据仓库前进行处理,如图3所示。方法1需要消耗额外的数据库资源,使用批处理方法,处理速度比方法2慢。

一些情报数据具有量大、价值密度低的特点,如蜜罐数据、样本行为数据等,若采用方法1将大大增加数据仓库的负担,且处理速度较慢。这类数据适合使用方法2进行处理,即在数据落入数据库前使用流式处理方法。情报数据处理的要求有:(1)复杂数据处理能力。系统不仅要能进行过滤、去重和选择等常规操作,还能使用自定义的函数处理数据,如对数据中的IP地址进行实时指纹查询,并依据查询结果打标签。(2)近实时的数据处理能力。情报数据中有些属性具有较强的时效性,如蜜罐数据中的IP地址和域名,对这些数据处理越快得到的结果越准确。(3)弹性扩展能力。由于输入数据具有量大、不稳定等特点,系统要能按照输入负载灵活扩展以保证数据处理的性能。(4)灵活的系统调整能力。情报系统的输入不固定,随时可能接入新的数据,或者原有的数据格式和内容发生变化,这要求系统能灵活地调整接入数据、处理内容和流程。

图3 Data at Rest和Data in Motion

2.2 数据处理设计

开源流式处理系统虽然能满足大部分的数据处理要求,但还要考虑数据的缓冲、分发以及系统调整能力。Spark Streaming支持读取各种数据源,以及写入多种数据存储[5]。但还存在一些问题:1.数据源和存储的更改不方便,更改时要调整代码并重启流式程序。2.并发写入多种数据存储时,稳定性欠佳。考虑到系统的稳定性和可靠性,Spark Streaming的数据源和输出都为Kafka。通过不同Kafka topic区分不同的数据流,再通过Logstash数据管道分发至对应数据存储中。

数据处理架构如图4所示,由数据缓冲、流式处理以及数据处理管道组成。数据输入先写入Kafka缓冲并持久化,确保数据可靠落地。Kafka部署为集群模式,提供了数据缓冲的分布式处理能力,保证了系统的高可用性以及支持系统弹性扩展。Spark Streaming程序读取Kafka topic,处理后再输出至Kafka topic,输出的topic可以作为中间结果被其他的Spark Streaming程序读取,也可以通过数据处理管道分发至存储。Logstash数据管道用于轻量的数据处理、数据丰富化以及数据分发,例如过滤选择特定的消息、IP的地理位置信息的添加等。

图4数据处理架构

图5为一数据处理流程示例,展示了Spark流式程序如何消费、生产Kafka topic,以及如何通过数据管道分发数据。数据首先输入至Kafka topic A,由Spark流式处理程序1消费处理,输出处理结果至topic B。Spark流式处理程序2再消费处理topic B,输出结果至topic C。Topic B和topic C的数据分别由Logstash的两个数据处理管道收集,最后分发至存储中。这个数据处理流程使用了两个Spark流式处理程序和两个数据处理管道,Spark流式处理程序负责复杂的数据处理任务,而数据处理管道负责数据的分发、落地以及轻量的数据处理任务。使用两个流式处理程序,是由于中间处理结果需要进行导出存储。

图5数据处理流程示例

3 交互式数据查询和统计分析

3.1 数据分析要求

交互式查询与统计是系统的关键模块,提供数据的即席查询、数据仪表盘以及数据报表等功能以供安全分析人员使用。该模块涉及的数据主要包括:系统近期处理的数据、最终情报数据以及部分关键数据。近期处理数据是近三个月内经过数据处理模块落入系统的热数据,查询时要求具有近实时性,能够查询到秒级范围内落入系统的数据。这类数据通过数据仪表盘可视化展示当前系统的运行状况,通过数据报表展示近期数据的历史趋势和数据分布,并且可以查询详细的内容以方便进行数据分析和溯源。最终情报数据和部分关键数据是经常查询的数据,需要方便地进行即席查询和统计分析。

3.2 系统设计

系统架构如图6所示,导入ElasticSearch的有两部分数据,一部分数据来自数据处理模块,以流式数据的形式通过Logstash导入;另一部分数据来自数据批处理,通过Spark程序导入。用户使用Kibana访问ElasticSearch,进行数据可视化探索与分析,包括数据检索、数据仪表盘以及报表分析。

图6系统架构

离线数据存储于Hadoop分布式文件系统HDFS中,使用Spark进行离线数据分析的结果可以通过elasticsearch-hadoop组件写入ElasticSearch中,即可以进行交互式数据查询和分析。这种方法是Spark数据分析的补充,可充分利用Kibana与ElasticSearch的数据可视化与探索能力。Kibana提供了强大的数据可视化和探索功能,可以不编程而直接使用界面配置出各种类型的图表,方便了安全分析人员进行数据分析。

流式数据中带有时间戳属性,导入ElasticSearch中可进行时间序列的统计分析,如数据的历史变化趋势、异常流量分析等。ElasticSearch数据库具有良好的实时性[6],导入的数据可以近实时的被查询到(亚秒~秒级),通过数据仪表盘可以近实时的展示系统输入以及数据处理的运行情况。

4 结束语

构建威胁情报系统的难度在于如何可靠稳定的收集、处理数据,如何提高情报的置信度,以及如何进行高效的情报数据管理。这问题的解决需要系统在运行过程中不断地调整、优化,持续地进行改进。本文介绍的是经过多次优化的系统设计,由于篇幅有限仅介绍了整个系统的整体结构和关键设计,为类似系统的设计提供有价值的参考。

猜你喜欢
流式数据处理情报
常熟开关新品来袭!CSX3系列电气防火限流式保护器
情报
情报
情报
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
基于低频功率数据处理的负荷分解方法
流式大数据数据清洗系统设计与实现
无人机测绘数据处理关键技术及运用
一种汽车空调平行流式冷凝器侧进风性能研究
基于MATLAB语言的物理实验数据处理探讨