来源:https://cwiki.apache.org/confluence/display/METRON/Evolution+of+Apache+Metron
一、Apache Metron的演进过程
要理解Apache Metron,我们必须首先了解这个项目的起源,这个项目来自于Cisco项目OpenSoc。下图突出显示了从Cisco OpenSoc开始的Apache Metron历史中的一些关键事件。
1、2005年至2008年,网络犯罪急剧增加,安全人才严重短缺。第一批关注这一问题的公司是引人注目的银行和大型组织,它们向国家资助的代理商提供有趣的专有信息。所有最好的调查人员和分析师都被跨国银行和金融服务公司、大型医院、电信公司和国防承包商吞并。一个新行业的兴起,被管理的SOC——那些不能获得安全人才的人仍然需要一个团队。思科正坐在他们多年积累的安全人才的金矿上。利用这些人才,他们在管理的安全操作中心周围进行了托管服务。
2、2008年之后,大数据时代改变了一切——大数据时代到来了,带来了更多的流数据、虚拟化的基础设施、数据中心排放vm的机器废气,并带来了您自己的设备程序。数据量暴增,所需的工具(如传统的SIEMs)的成本也暴增。随着这些工具转向数据驱动的许可结构,它们的成本变得难以承受。思科使用这些工具操作托管SOC的能力处于危险之中,安全设备供应商控制了市场。
3、2013年,OpenSOC诞生了,Hadoop成熟了——思科决定建立自己的工具集。他们不仅想要取代这些工具,而且还想利用开源来改进和现代化它们。随着Hadoop的成熟和风暴的到来,Cisco向社区发布了托管SOC服务。它是用例需求和技术的完美结合。OpenSOC是第一个利用Storm、Hadoop和Kafka的项目,并且将遗留方式迁移到前瞻性的未来类型范式中。
4、2013年9月至2015年4月Apache Metron的起源—在首席数据科学家James Sirota的带领下,在平台架构师Sheetal Dolas的Hortonworks团队的帮助下,构建了基于开源大数据技术的下一代托管SOC服务。思科OpenSOC管理的SOC产品于2015年4月开始为许多客户生产。不久之后,思科进行了几次收购,引入第三方技术,将OpenSOC转变为一个基于硬件的封闭源代码版本。
5、2015年12月接受Apache孵化器- Metron(从OpenSOC更名)作为Apache孵化器项目提交并接受。Metron团队构建了一个可扩展的、开放的体系结构来考虑客户环境中使用的各种工具(数千个防火墙、数千个域和大量的入侵检测系统)。Metron的开放方法使得定制社区的用例变得更加容易。
6、2016年4月首次正式发布Apache Metron0.1 -经过4个月的艰苦工作和Metron社区的快速创新,Apache Metron首次发布发布Metron 0.1。
二、Metron的核心功能和功能主题
2.1核心功能的能力
Apache Metron是一种网络安全应用框架,它为组织提供了接收、处理和存储各种安全数据输入的能力,以便检测网络异常并使组织能够快速响应这些异常。
如上图所示,Metron框架提供了4个关键功能:
1、安全数据池/保险库平台——为长期存储丰富的自动测量记录数据提供了成本效益的方法。这个数据湖提供了进行特征工程所需的数据集,这些数据集为发现分析提供了动力,并为操作分析提供了搜索和查询的机制。
2、可插入框架——平台不仅提供了一组丰富的解析器的共同安全数据源(pcap、netflow,bro,snort,fireye,sourcefire),还提供了一个可插拔的框架为新的数据源添加新的自定义解析器,添加新的丰富服务提供更多的上下文信息的原始流数据,可插入扩展英特尔输入的威胁,并自定义安全指示板的能力。
3、安全性应用程序——Metron提供了标准的SIEM功能(警报、威胁、intel威胁框架、接收数据源的代理),还提供了SOC分析师常用的数据包重放实用程序、证据存储和搜索服务。
4、威胁情报平台——Metron将提供下一代防御技术,包括使用一类异常检测和机器学习算法,这些算法可以在事件流进时实时应用。
2.2核心功能的主题
Metron将关注四个核心功能主题。随着围绕Metron的社区继续进行分组,新特性和增强将在这四个主题中得到优先考虑。
4个核心功能主题如下:
1、平台
加强平台性能、规模、可扩展性和可维护性的工作。这还包括关于配置、管理和监视应用程序的功能
2、数据收集
一组数据来源,Metron提供了传输,接收和解析数据到平台的能力
3、数据处理
一组实时执行各种操作的流拓扑,包括:对自动测量记录数据的规范化、丰富、与intel威胁情报的交叉引用、警报、索引和持久化到历史存储中
4、用户接口
为不同的人设置的门户、仪表板和用户界面
三、逻辑架构
https://cwiki.apache.org/confluence/display/METRON/Metron+Architecture#space-menu-link-content
3.1 下图描述了Metron平台的逻辑组件。
下面的小节跟踪一个事件,它通过这些不同的逻辑组件流动。
步骤1 — 自动测量记录事件缓冲区
由Apache Nifi或定制的Metron探测器捕获的每个自动测量记录安全数据源的所有原始事件都将被推入它自己的Kafka主题。一个自动测量记录事件进入到接收缓冲区,标志着Metron处理的开始。
步骤2 — 处理(解析、规范化、验证和标记)
每个原始事件将被解析并规范化为标准化的扁平JSON结构。每个事件都将标准化为至少7元组JSON结构。这样做的目的是为了让拓扑关联引擎能够通过这些字段关联来自不同拓扑的消息。标准字段名如下:
ip_src_addr: 第三层的源IP地址
ip_dst_addr: 第三层的目的IP地址
ip_src_port: 第四层的源端口
ip_dst_port: 第四层的目标端口
protocol: 第四层的协议
timestamp (epoch)
original_string: 人类友好的消息字符串表示
在此步骤中,还可以验证原始事件,并使用后续处理将使用的附加元数据标记它。
在步骤3之后,原始Bro事件将如下所示:
步骤3 — 丰富
一旦自动测量记录事件被解析并规范化,下一步就是丰富规范化事件的不同数据元素。丰富的例子是GEO,它的外部IP地址是通过GeoIP信息(lat / long坐标+ City/State/Country)丰富的,或者是主机的丰富,在这里,IP得到了丰富的主机细节: 例如:IP对应于主机X,它是电子商务应用程序的web服务器集群的一部分。
在步骤4之后,丰富的Bro事件将看上去如下所示:
步骤4——标记
在经过丰富之后,自动测量记录事件经过标记过程。在此阶段所做的操作包括英特尔威胁元数据交叉参考检查,其中自动测量记录事件中的元素可用于查找英特尔威胁元数据源,如Soltra生产的Stix/Taxii输入或其他英特尔威胁聚合器服务。当攻击发生时,这些英特尔威胁服务将使用英特尔威胁元数据标记自动测量记录。
其他类型的服务包括,使用模型作为服务模式执行/评分分析模型,并使用正在流入的自动测量记录事件。
在第5步之后,假设Bro自动测量记录有一个英特尔威胁击中,信息将看起来如下:
第五步-保持警惕。
在此阶段,某些自动测量记录事件可以启动警报。然后,这些类型的自动测量记录事件在警报索引存储中被索引。遥测事件可以产生由多个因素触发的警报,包括:
1 、事件类型——原始自动测量记录事件本身就是一个警报。例如,Snort生成的任何事件都是警报,因此它将自动被编入警报索引。
2、英特尔威胁情报——如果原始自动测量记录事件匹配了英特尔威胁,它将被标记为警报。
在此步骤中,所有经过充实和标记的自动测量记录事件都将被索引并保存在Hadoop中用于长期存储。在Hadoop中存储这些事件会在企业中生成一个安全数据库,以便执行下一代分析。
在步骤6之后,自动测量记录事件存储在HDFS中,并根据配置使用弹性/Solr进行索引。HDFS中的持久化事件如下所示:
步骤6 - UI门户和数据与集成服务
步骤1到6提供了一种机制,可以在企业中的不同数据源中接收、解析、规范化、丰富、标记、索引并将所有安全自动测量记录数据存储到单个安全数据库中。这使得Metron平台可以为不同类型的安全用户提供一组服务,从而更有效地执行他们的任务。其中一些服务包括:
1、实时搜索和交互式指示板/门户-安全操作分析人员查看警报并将警报与导致警报的粒状遥测事件关联的单个窗格。
2、数据建模/特征工程服务——由于Metron框架对数据进行规范化和丰富,并将数据存储在标准化位置的安全数据湖中(HDFS, Hbase),因此平台可以提供各种分析模型。这些模型将具有所需的特征矩阵的规范,因此,特征工程这一分析中最复杂的方面的过程变得相当简单。特征矩阵所需的数据建模服务将由Jupyter、IPython和Zeppelin等工具提供。
3、集成和可扩展性层——Metron平台最强大的功能之一是能够为您自己的需要/需求定制它,包括:
接收新的数据源;
添加新的解析器;
添加新的丰富服务;
增加新的英特尔威胁情报输入;
建立、部署和执行新的分析模型;
与企业工作流引擎集成;
自定义安全指示板和门户;
步骤7a -快速自动测量记录接收
对于大容量网络自动测量记录数据,如数据包捕获(PCAP)、Netflow/YAF和Bro/DPI,可以使用自定义Metron探针直接从网络tap接收数据。
一个例子是使用自定义c++ Metron探针捕获Bro数据。BRO探针捕获的原始BRO事件看起来如下所示:
第7b步-自动测量记录接收。
对于大多数使用传输和协议(如文件、syslog、REST、HTTP、自定义API等)的安全自动测量记录数据源,Metron将使用Apache Nifi在源上获取数据。
一个示例将从带有Nifi的SysLog处理器的FireEye设备中捕获数据。所捕获的原始Fireye事件应该如下所示: