Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3008122
  • 博文数量: 167
  • 博客积分: 613
  • 博客等级: 中士
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 21:35
个人简介

人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

文章分类
文章存档

2015年(19)

2014年(70)

2013年(54)

2012年(14)

2011年(10)

分类: 大数据

2015-04-16 17:41:42

OpenSOC初探

2015/4/16 17:39:41
Cisco在最近的BroCon大会上公布了旗下的OpenSOC项目即将开源的消息,在其GIT站点上也开始放出了部分代码,应该说OpenSOC对于当今大数据分析的“落地”有着重要的意义。一直以来各界都鼓吹大数据的神奇力量,但是却一直无法真正落实到实际中发挥作用,OpenSOC则为我们展现了一次大数据的成功应用。 OpenSOC是Cisco的安全大数据分析架构,其建立了一个平台,专注于网络数据包和流的大数据分析。功能上实现了实时地检测网络内的异常,并且可以根据需要扩展节点。OpenSOC的部署全部依靠开源软件,存储上使用的Hadoop,实时索引采用ElasticSearch,而在线实时分析使用的Storm,因此可以说,OpenSOC是各种开源大数据架构和安全分析工具的有机结合。今天我们来从整体功能和架构上认识下OpenSOC。

一、OpenSOC的功能

作为一个大数据安全分析平台,OpenSOC集合了众多优秀的开源架构和软件,因此具备非常强大的功能,比如:

  1. 可扩展的接收器和分析器能够监视任何遥测数据源;
  2. OpenSOC具备很强的扩展性,且支持各种遥测数据流;
  3. 支持对遥测数据流的异常检测和基于规则的实时报警;
  4. 通过预设时间使用Hadoop存储遥测收集的数据流;
  5. 支持使用ElasticSearch实现自动化实时索引遥测数据流;
  6. 支持通过Hive使用SQL查询Hadoop中的数据;
  7. 兼容ODBC/JDBC并且继承已有的分析工具;
  8. 支持自动生成报告、异常报警;
  9. 支持原数据包的抓取、存储和重组;
  10. 支持数据驱动的安全模型;

作为Cicso发布的开源大数据分析平台,OpenSOC除了获得思科的全力支持外,还具有以下优点:

  • 免费、开源,所有模块基于Apache授权;
  • 基于高可扩展平台Hadoop\Kafka\Storm;
  • 基于可扩展的插件式设计;
  • 具有灵活的部署模式,可在企业内部部署或者云端部署;
  • 具有集中化的管理流程、人员和数据

Refer :以上内容参考自

二、OpenSOC的架构设计

OpenSOC中使用了多个开源架构,存储上基于Hadoop,实时处理实用Storm,实时索引查找借助ElasticSearch,除此之外还有一些其他的框架,整体如下图:

上图从左至右代表平台由下到上的层次,分别是数据源系统-->数据收集层-->消息系统层-->实时处理层-->存储层-->分析处理层,下面我们分别就每一层的功能和实现的开源模块做一个简单的介绍。

  1. 数据源系统:这个层主要设定大数据分析平台的数据来源,基本有两个部分,一类是通过网络路由、网关等设备获取的数据包,将这些数据流量以副本的形式传递给上层的PCAP模块;另一个类则是通过部署遥感(Telemetry)传感器,从系统日志、HTTP流量、文件系统和其他用户/系统行为中获取到的日志信息;这些信息传递给上层的Flume模块;
  2. 数据收集层:该层主要收集初步处理获取的大量数据,一方面利用PCAP机制收集数据包,一方面利用Flume框架来收集大量的日志信息。 Flume 是遵循Apache授权的开源项目,主要用于高可用、高可靠、分布式海量日志数据的收集、聚合和传输。Flume支持定制数据发送方,即可以定制获取何种类型的源数据,如支持console\RPC\text(文件)\tail(Unix tail)\syslog\exec等。此外Flume还提供对数据进行简单处理,之后写到定制的数据接收方。(即,日志传输两端皆可自定义)。

Refer 

  1. 消息系统层: 数据收集层将捕获的数据包和海量日志信息提交给了消息系统层,该层主要对这些数据包和日志包装为消息队列,可以便于上层Storm的实时处理。这里主要的软件是开源的Kafka,这主要用于日志处理的分布式消息队列,关注用户行为(登录、注销、文件操作等)和系统运行日志(CPU、内存、网络、进程信息等)。Kafka 是基于Topic的,一个Topic可以包含多个part,而每个部分则表示一个逻辑日志,每个part可以由多个segment组成,具体结构如图2:

  2. 实时处理层:下层处理形成的消息队列交由本层实时处理,OpenSOC使用了著名的Storm框架。Storm 是一个开源的在线流分析系统,可以方便地在一个集群中编写扩展复杂的实时计算,其用于实时处理就好比hadoop用于批处理。所谓实时,是指Storm保证每个消息都会得到处理,而且速度很快,比如在一个小集群中,Storm 每秒可以处理数以百万计的信息,而且用户可以使用任意语言进行mapreduce模型的开发。相较于hadoop,Storm 具有更高的容错性、更好的水平扩展以及快速可靠的消息处理优势,因此在实际中也得到了广泛的应用。 【Refer

  3. 存储层:这个层的主要任务就是有效合理地将前面获得的数据存储到文件系统中。对于结构化数据,OpenSOC使用Hive 来实现;对于非结构化数据,则使用ElasticSearch 来实现。 Hive 是一个基于hadoop的数据仓库,其特点是可以将SQL语句与hadoop架构无缝对接,将SQL语句转换成mapreduce任务,从而实现了在hadoop集群上进行大数据的存储、查询与分析。 ElasticSearch是一个NoSQL搜索引擎,使用JSON通过HTTP来索引数据,可以这样理解,ElasticSearch可以帮助我们更方便地索引查询非结构化数据。 除了上面提到的两类,底层是基于Hadoop 的集群,利用Hbase 数据库来存储PCAP表

Refer  】 6. 分析处理层:在完成数据的收集、存储、查询之后,接下来就是对数据的分析工作,这里的分析工具可以使用R语言或Python编写,使用了PowerPivot(PP)和Tableau(TB)两类分析工具。其中PP工具是一组应用程序和服务,以极高的性能处理大型数据集;而TB则是一款企业智能化软件,主要用于提供数据分析,比如可视化、关联性分析等,所有的工作都基于浏览器进行。

Refer :】 现在我们大致了解了OpenSOC的框架和各个主要模块,其中的运行机理我们可以参考下面的图3和图4来理解: 
图3说明了OpenSOC的基本功能
 
图4说明了OpenSOC的运行机理

三、OpenSOC部署要求

部署OpenSOC时各个开源软件和模块有一定的版本要求,具体如下:

  • Apache Flume 1.4.0版本及以上;
  • Apache Kafka 0.8.1版本及以上;
  • Apache Storm 0.9版本及以上;
  • Apache Hadoop 2.x系列版本均可;
  • Apache Hive 12版本以上,建议13版本;
  • Apache Hbase 0.94版本及以上;
  • ElasticSearch 1.1版本及以上;
  • MySql 5.6版本及以上;

现在大家应当对OpenSOC有了一个大致的了解,话说有人预言Cisco开源OpenSOC的决定,会导致更多的小企业加入到SIEM的实现中来,结果就是这个领域的产品竞争将更加激烈。对于科研的我们来说,这些当然关系不大,但是研究可以更好发挥出OpenSOC的方法,却是我们关注的问题。 希望可以有更多的童鞋加入大数据安全研究之中,欢迎大家交流、批评指正!


阅读(9938) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~