OpenSOC 是思科提出的大数据分析与安全分析技术结合的开源框架,能够实时的检测网络异常情况的开源框架,它的存储使用开源Hadoop,实时索引使用开源ElasticSearch,在线流分析使用著名的开源Storm。
OpenSOC介绍了以下五大优点:
由思科全力支持,适用于内部多用户
自由、基于Apache授权的开源软件
基于被验证的高可扩展平台(Hadoop、Kafka、Storm)
可扩展的插件式设计
灵活的部署模式(企业内部部署或者放到云端)
集中化管理流程、人员和数据
思科在安全业界不断的推出开源产品。之前提出了Snort、OpenAPPid、PxGrid等开源平台,这次又携一安全力作来袭!!!开源的安全大数据分析框架OpenSOC,可以帮助企业提供了一个平台,用于异常检测和应用程序中数据丢失问题的事故取证,使他们的技术安全战略成为大数据的一部分。通过集成的Hadoop生态系统,如Storm,Kafka和Elasticsearch众多元素,OpenSOC提供了一个可扩展的平台整合能力,如全包捕获索引,存储,数据分析,流处理,批量处理,实时搜索,和遥测聚集。不仅如此,它是还是一个集中功能平台,更有效地对安全事件进行快速检测,响应高级安全威胁。
几个月前,我们真的很高兴把OpenSOC放到开源社区。开发OpenSOC一直是具有挑战性的,但也给我们带来很大的收获。我们的小团队尽己所能利用大数据技术,把一个强大的基础架构放置于公共社区,更利于其发展和增强。随着OpenSOC开放,我们努力为客户提供一个替代专有昂贵工具的开放式分析工具,并遵循大数据的发展规模。
那么,什么让OpenSOC如此的不同? OpenSOC是本地运行在Hadoop 2.x技术堆栈的应用程序。 OpenSOC与传统的Hadoop应用程序不同,因为它专注于实时数据流分析。基于安全性,速度方面,该功能提供的流处理模块集成到已经可用的Hortonworks Hadoop发行版上。作为关键技术的推动者,我们通过实时分析确定该技术使用情况,并与Hortonworks合作加速其成熟。在使用Storm时,我们通过多种原型和架构变化,不仅提供可扩展的流处理,还建立可扩展的消息代理。由于网络流量本身的突发性质,使得我们需要一种方式来理顺这些突发流量。经过研究后,我们选择了Kafka,因为它具备前所未有的大规模缓冲数据能力。在Kafka和Storm帮助下,我们终于可以开始实现OpenSOC的可扩展流处理能力。
我们最具有挑战的难题是如何存储全PCAP数据。在此时并没有数据库,可以强大到足以存储每秒百万消息的二进制数据,在同一时间提供复杂的查询和扫描功能,并按需提供所捕获的PCAP文件数据包。然而,HBase提供了终结的方案。我们与我们的合作伙伴Hortonworks依据HBase来调整和建立这些功能,以满足我们的查询和存储要求。现在我们创建了一个可扩展的流处理器和存档数据方法。
HBase非常强大,但它有一个主要的限制。为了让我们能够实现所需要的速度,我们必须要小心定制HBase Key,不能够因为我们需要尽可能多的元数据而把他们都加入Key。这使得分析元数据极为有限。为了提高OpenSOC这种能力,我们引进了ElasticSearch作为对HBase key的二级检索,并开始使用它作为常用的元数据存储库,甚至作为一个警报存储库。对ElasticSearch进行的一些调整后,满足我们的功能要求,我们将它纳入OpenSOC。
最后一关,我们要考虑如何克服非分组数据包进入我们的系统。例如系统日志,机器的废数据,网络设备的报警等等。为此,我们使用了Flume。Flume通过数据源分类,可以推送我们需要的数据到Kafka,然后由我们的流处理器接管。Flume也具备很好的可扩展功能,它可以依照我们相应的调整提供适合的扩展。 这是连接我们架构的最后一个部分,这样我们就可以开始准备测试模型了。
当我们部署第一个集群并开始获取系统用户和用户的输入时,可以明显看到流媒体使用情况,这些数据不仅仅可以用于OpenSOC使用。安全分析也通过批量处理获得了大数据的汇总报告能力。引入Hive后可以满足我们对不同数据选择需求。Hive使我们能够在Hadoop数据中运行批处理SQL之类的查询。我们还认识到,安全分析不是唯一的使用者。数据分析统计也需要相同的数据。它们习惯使用在HDFS的数据和ODBC/JDBC连接器界面工具。Hive同时也提供此类连接器,这使我们的数据分析统计工具直接从我们的数据库中提取数据。与此同时,OpenSOC0.1发布了。
去年在圣何塞的Hadoop高峰会议上,我们发布OpenSOC平台框架后,已收到非常多积极的响应,也有很多组织效仿我们。我们不断演变和加强OpenSOC,并在近几个月推出许多新的功能。目前,我们当前已经发布第五个版本,正努力工作在第六版本。
OpenSOC平台的设计非常具有挑战性和成熟度。团队必须不断跟进大数据技术的日新月异发展,通过合作伙伴关系推进这些技术的能力,并与开源社区合作测试和提供公共共享。我们还将继续不断地创新,我们也在寻找思科以外的开发者们参与到该平台。 OpenSOC旨在作为一个真正的公共社区管理平台而努力。
请看看http://opensoc.github.io/上OpenSOC更多信息,以及如何促进其未来的发展。