随着最近几年网络架构的日趋复杂以及大数据概念的火爆,网络安全态势需要分析的数据量已经从TB 级向PB 级迈进且呈指数级增长。其中不仅数据的来源丰富,而且内容更为细化,数据分析的维度更为广泛,同时随着各类设备的性能增长,数据源发送速率更快,对安全信息采集的速度则要求越来越高。目前传统基于数据的安全分析技术已有广泛应用,如恶意代码检测、入侵检测、安全审计等,但随着网络宽带化、应用丰富化等趋势,各种类型的安全数据越来越多,导致传统分析方法存在局限性,同时新兴威胁与内控/合规的深入也对安全检测分析提出更高要求,所以需要引入新的分析方法来解决面临的问题。

安全态势感知引入大数据分析的必要性

在传统技术架构下,由于采用结构化数据库进行数据存储,数据存储成本高,往往将原始数据进行标准化处理后再进行存储,导致部分信息丢失,长期历史数据难以保存,追踪溯源困难;同时对不完整,包含嘈杂的大型、非结构化数据集上执行分析和复杂查询的效率很低下,实效性和准确性难以保证;此外,对来源于不同系统的异构数据进行融合关联分析,难以形成全局的可视化安全态势,安全运营效率不高。因此传统分析技术难以满足网络安全分析的新要求。

大数据技术作为未来信息架构发展的十大趋势之首,近年在多个领域的应用发展迅速。其具有数据量大、种类繁多、速度快、价值密度低等特点,应用于网络安全分析领域可实现容量大、成本低、效率高的网络安全分析能力(如图1所示)。这些能力主要体现在以下几个方面。

● 容量大:大数据支持海量异构数据的存储与计算,使海量原始安全信息的存储和分析成为可能。

● 成本低:分布式数据库相对传统数据库价格大大降低,且易于在低廉硬件上水平扩展,降低整体安全投入。

● 速度快:异构数据的存储与查询速度更快,从而使安全信息采集、检测响应速度更快。

● 精度高:数据挖掘能力提升,异构及海量数据存储的支持奠定多维多阶段关联分析的基础,基于更长时间的数据及数据间的直接关联关系,提升分析的广度和深度。

图1 传统数据分析与大数据分析对比

大数据分析平台处理流程

大数据技术的核心就是大数据分析(Big Data Analysis)。一般地,人们将大数据分析定义为一组能够高效存储和处理海量数据、并有效达成多种分析目标的工具及技术的集合。目前网络安全分析主要基于日志与流量这两大类数据,同时辅以资产、漏洞、配置、访问、用户行为、应用行为、业务行为、外部情报等信息进行关联分析。其中主要基于日志的安全分析应用包括安全审计、主机入侵检测、网络安全风险分析等;主要基于流量的安全分析应用包括恶意代码检测、僵木蠕检测、异常流量检测、Web 安全分析、网络入侵检测等。引入大数据分析技术,就是在这些安全应用的基础上,将分散日志和数据整合起来,通过高效采集、存储、检索与分析,提高安全检测与处理的效率,减少分析与响应时间;同时通过大量安全信息的关联分析、多阶段组合关联分析、攻击场景关联分析等技术,找出安全事件之间的联系和异常,有效发现0 day、APT 等攻击和数据泄露,提升安全防御的主动性。针对新的应用场景,给出了一个大数据生态系统的模型,通过利用大数据的分析方式来解决当前遇到的瓶颈,如下图:

图2 大数据处理流程

大数据分析平台主要结构

一个大数据平台应该包含的功能模块,首先是能够从多种数据源获取数据的功能,数据的预处理(例如:清洗、验证等)、存储数据、数据处理、数据分析等(例如关联分析、用户画像、预测分析等等),最后呈现和可视化的总结、汇总结果。基于以上几点对于安全大数据分析平台同样应该具有以下的功能。

(1)安全数据采集

为支持海量数据的高速采集,对于日志信息可采用Flume、Flunted、LogStash等工具,通过分布式采集实现每秒数百兆的日志数据采集与传输。其中,采用Flume 实现分布式、可靠和高可用的海量日志采集、聚合和传输,通过定制数据发送方收集不同数据源的数据,对数据进行简单处理后发送到各种定制的数据接收方;对于流量信息可采用传统流量镜像方式,实现全流量数据采集。

(2)安全数据存储

由于安全数据种类繁多,应用方式也不尽相同,为了满足不同分析需求的数据存储,提高分析与查询效率,对不同类型和用途的数据应采用不同的存储方式。

● 对用于查询检索的原始日志信息、流量历史数据等信息,可采用HBase等列式存储方式,利用其快速索引的特点,提供对安全数据查询的快速响应。

● 对用于进行挖掘分析的标准化处理后的日志信息、流量信息等,可基于Hadoop 分布式计算架构,将分析的数据存放于各个计算节点,通过定制化的Hive分析脚本;对安全数据进行挖掘分析,形成分析告警与统计报表,分析的结果存放到列式存储中。

● 对用于实时分析的日志、流量等信息,可采用Storm、Spark Streaming等流式计算架构,将分析的数据存放到各个分析节点,通过对实施事件流的关联分析,生成安全告警与统计数据,分析结果存放到列式存储中。

(3)安全数据检索

采用基于Elastic Search的查询检索框架,将数据查询请求分布到不同的计算节点并行处理,并最终装配每个节点的计算结果,通过分布式并行计算提升安全数据检索效率,可使对海量原始安全数据的条件化查询速度提升到秒级。

依靠跨节点平衡集群中节点间的索引与搜索负载,自动复制数据以提供冗余副本,防止硬件错误导致数据丢失,自动在节点之间路由,检索数据,同时可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

(4)安全数据分析

对于数据实时分析,可在Storm或Spark Streaming等流式计算框架基础上,结合复杂事件处理等技术以及特定的关联分析算法,通过数据内存实时分析、海量安全信息实时监控与关联分析,及时发现安全异常行为;

对于统计分析、历史数据分析等非实时分析,可基于Hadoop 架构,通过HDFS 分布式数据存储及基于Spark的分布式计算与调度,结合数据抽取、数据聚合、数据挖掘等技术,实现风险统计、态势分析、攻击溯源等离线分析。

图3 基于Spark的数据分析

大数据平台关键技术优化

随着安全数据的存储量的越来越大,一般的大数据平台虽然本身都有良好的扩展性和容错性,但是仍然存在很多问题。在庞大的数据量下对数据的分析处理效率,系统的稳定性、容错性,可视化时数据的检索的需求越来越高, 这就需要对现有的平台进行一系列的优化,主要优化的方向有以下几点。

(1)安全数据分析的低延时

为了满足客户对于安全分析结果的实时性要求,针对安全事件分析的复杂性,需要平台能够在海量数据规模的情况下实时的分析安全数据。

● 通过使用自适应的消息打包、自定义序列化、数据行+列压缩、先进的内存管理、和内部缓存队列和线程模型,以及基于下游向 上游“反向”传递压力的流控策略等来对系统整体延时进行优化。

● 通过有效的使用集群资源来降低每个批次的数据处理时间以及设置一个合适的批次大小来提升流式分析处理的速度。

(2)安全数据分析的高效资源利用和性能隔离

由于平台包含多种安全分析作业,不同作业对资源的利用不同,需要平台能够在满足复杂的运维要求和实时计算连续性的同时,实现高效的资源利用和性能隔离。

● 通过支持作业优先级 调度、动态负载均衡和微作业、动态按需分配(即资源的弹性分配),来调度资源消耗特别大的作业;

● 通过支持CPU、内存、网络和磁盘I/O等多维度资源的隔离;

● 通过“多租户”的形式不同业务放置于大规模(几千台服务器组成的)共享集群中,以提高资源利用率。

(3)安全数据流式分析的容错性和稳定性

通过基于输入的重新计算、状态检查点,在不同计算特性下,权衡容错资源消耗和恢复性能,特别是自动的分布式增量检查点功能,由系统自动利用内存、本地磁盘和远程存储构成的多级存储,在不影响流计算延时的情况下异步实现计算状态的持久化,当有故障发生时,保存的状态可以被快速加载,可以确保安全事件流式分析计算需要的连续输入和连续产生输出的稳定性。

(4)安全数据分析结果的高效检索

通过合理利用内存,权衡建索引的性能和检索的时效性,定期对不再更新的索引做最佳选择,根据机器数,磁盘数,索引大小等硬件环境,同时根据测试结果,设置最优的分片数和备份数,单个分片最好不超过10GB,定期删除不用的索引,做好冷数据的迁移,避免返回大量结果集的搜索与聚合,以此来提高安全分析结果的全文检索效率。

图4 大数据平台关键技术优化

结束语

大数据时代已经到来,我们创造的大数据正在改变人类生产生活的各个方面。信息与网络安全作为保障IT数字资产的关键能力也正在被大数据所重新塑造。作为安全保障体系中位于顶层的技术支撑平台,原有的安全管理平台天然具有与大数据结合的特质,所以基于大数据安全分析技术的安全管理平台正在成为未来安全管理平台发展的重要技术方向。同时,我们必须看到,不论安全管理平台的技术如何发展,如何与大数据结合,安全管理平台所要解决的客户根本性问题,以及与客户业务融合的趋势依然未变。对大数据的应用依然要服务于解决客户的实际安全管理问题这个根本目标。目前来看,虽然大数据分析技术有助于我们更好地去解决安全管理过程中的部分问题,但并不能解决所有的问题,同时还可能引入了新的问题。这都需要平台的开发者、服务提供者和客户继续不断的摸索。


安全大数据基础架构详解

2017-10-13
0