第4章 基于OpenSOC的机器学习框架

4.1 OpenSOC框架

        OpenSOC是思科公司2014年在BroCon大会上公布的开源项目,存储使用的是Hadoop,实时索引采用Elasticsearch,在线实时分析使用的是Storm。它主要由数据源系统、数据收集层、消息系统层、实时处理层、存储层、分析处理层组成。

        OpenSOC主要功能包括:

        (1)可扩展的接收器和分析其,能够监视常见数据源。

        (2)支持对数据流的异常检测和基于规则实时告警。

        (3)支持使用Elasticsearch实现自动化实时索引数据流。

        (4)支持使用Hive,利用SQL查询存储在Hadoop中的数据。

        (5)能够兼容ODBC/JDBC和继承已有的分析工具。

        (6)具有丰富的分析应用且能够集成已有的分析工具。

        (7)支持自动生成报告和异常报警。

        (8)支持原始网洛洛数据包的抓取、存储、重组。

4.2 数据源系统

        数据源系统指的是数据分析时使用的数据,也可以理解为系统支持的数据格式。常见的数据源包括网络流量、文件、Syslog、SNMP和数据库等。

1.网络流量

        网络流量是最常见的数据源之一,主要分为网络全流量和Netflow两种。

        网络全流量包含完整的网络数据,包含TCP/IP协议栈的数据,比如MAC头、IP头、TCP头、HTTP头以及HTTP载荷数据,对于分析网络中的攻击行为帮助非常大。

        常见的网络全流量获取方式为交换机镜像、分光镜和网络分流器3种。

        交换机镜像是成本低廉、操作简单的方法,普遍应用于网络排障、简单流量分析与监控。

        分光器是广泛使用的流量复制手段。分光器的基本原理是,通过精密的光纤生产工艺从物理层面将一束光分成两束,从而达到流量复制的目的。

        分光器成本低廉,并且特性稳定,是大型网络中流量复制的首选方案。但是也有其局限性,比如当光衰过大时无法使用。另外,如果网络中存在一定的电口链路,也是无法使用分光器进行流量复制的。这个时候就需要使用专用的流量复制设备——网络分流器(Network Tap)。

        Netflow提供网络流量的会话级视图,记录每个TCP/IP事务的信息。也许它不能像全流量镜像那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和阅读。

        Netflow流量统计数据不同版本具有一定的差别,常见的版本包括数据流时戳、源IP地址和目的IP地址、源端口号和目的端口号、输入接口号和输出接口号、下一跳IP地址、信息流中的总字节数和信息流中的数据包数量。

2.文件

       文件是数据最基本的保存形式,常见的有CSV、XML、JSON、电子表格以及各类日志文件,比如Linux的系统日志、Apache的访问日志等。

3.Syslog

        Syslog是在一个网络中转发系统日志信息的标准,它是由美国加州大学伯克利软件分布研究中心开发的,目前已成为工业标准协议,可用它记录设备的日志。Syslog记录系统中的任何事件,管理员可以通过查看系统记录随时掌握系统状况。系统日志通过Syslog进程记录系统的有关事件,也可以记录应用程序运作事件。通过适当配置,还可以实现运行Syslog协议的机器之间的通信。通过分析这些网络行为日志,可追踪和掌握与设备和网络有关的情况。

        Syslog协议属于一种主从式协议,发送端会传送出一个小的文字讯息(小于1024字节)到Syslog接收端。常见的网络设备、安全设备以及发现性版的Linux系统都默认支持把日志以Syslog形式发送出来。

4.SNMP

        SNMP是基于TCP/IP协议族的网络管理标准,是一种在网络中管理网络节点(如服务器、工作站、路由器、交换机等)的标准协议。SNMP能够使网络管理员提高网络管理效能,及时发现并解决网络问题以及规划网络的增长。网络管理员还可以通过SNMP接收网络节点的通知消息以及告警事件报告等来获知网络出现的问题。

        SNMP管理的网络主要由3部分组成,被管理的设备、SNMP代理、网络管理系统(NMS)。

        网络中每一个被管理的设备都存在一个管理信息库(MIB),用于收集并储存管理信息。通过SNMP协议,NMS能获取这些信息。被管理设备又称为网络单元或网络节点,可以是支持SNMP协议的路由器、交换机、服务器或者主机等。SNMP代理是被管理设备上的一个网络管理软件模块,拥有本地设备的相关管理信息,并可以将它们转换成与SNMP兼容的格式,传递给NMS。NMS运行应用程序来实现监控被管理设备的功能。另外,NMS还为网络管理提供大量的处理程序及必须的存储资源。

        常见的网络设备都支持把日志和报警以SNMP的形式发送出来,通常把主动发送SNMP称为SNMO trap。

5.数据库

        当数据保存在数据库中,并且时刻可能发生变化,这时就需要定时甚至试试从数据库中同步数据,通常基于JDBC(Java Database Connectivity)来完成这些任务。

6.爬虫

        当数据保存在第三方业务系统,数据时刻可能发生变化并且无法直接访问其数据库时,可以使用爬虫通过访问API或者直接抓取网页、文件的方式进行数据获取。比如对员工邮箱异地登录进行检测时,为了排除员工出差或者外勤带来的误报,需要从ERP中定时同步员工的差旅情况以及门禁系统中员工的打卡情况,这就需要使用爬虫从ERP和门禁系统的API中爬取数据。

4.3 数据收集层

        数据收集层主要收集以及初步处理获取的数据,转换成指定的格式。数据收集层常用软件包括Logstash和Flume,针对网络全流量收集还有Bro。

1.Logstash

        Logstash是一款强大的数据处理工具,它可以实现数据传输、格式处理、格式化输出,还有强大的插件功能,常用于日志处理。

        Logstash主要由3部分组成,包括Inputs、Filters和Outputs。

2.Bro

       Bro是一款被动的开源流量分析器,主要用于对链路上所有深层次的可疑行为流量进行安全监控,为网络流量分析提供了一个综合平台,特别侧重于语义安全监控。虽然经常将它与传统入侵检测/预防系统进行比较,但Bro采用了完全不同的方法,为用户提供了一个灵活的框架,可以定制工具,深入的监控远远超出传统系统的功能。Bro的目标在于搜寻攻击活动并提供其背景信息与使用模式。它能够将网络中的各设备整理为可视化图形,深入网络流量当中并检查网络数据包。在机器学习框架中,Bro负责分析网络全流量镜像,还原网络协议,通过Kafka插件,将数据发送给Kafka集群。

4.4 消息系统层

        消息系统是整个机器学习框架的信息告诉公路,数据的进出都依赖于它。最常使用的消息系统是Kafka。Kafa是一种高吞吐量的分布式发布、订阅消息系统。

4.5 实时处理层

        实时处理层主要使用Storm,Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm经常用于实时分析、在线机器学习、持续计算、分布式远程调用和ETL等领域。Storm的部署管理非常简单,而且与同类的流式计算工具相比,Storm的性能也是非常出众的。

4.6 存储层

4.6.1 HDFS

        Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多共同点,但同时它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

4.6.2 HBase

        HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统。Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据。Google Bigtable利用Chubby作为协同服务,而HBase利用ZooKeeper。

4.6.3 Elasticsearch

        Elasticsearch是一个基于Lucene的搜索服务,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful的Web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch设计用于云计算中,能够达到实时搜索,且稳定可靠、快速、安装使用方便。

1.安装Marvel

2.运行Elasticsearch

4.7 分析处理层

1.Spark

       Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架。Spark拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是,Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。

        Spark之所以在机器学习方面具有得天独厚的优势,主要原因是机器学习算法一般都有很多个步骤迭代计算过程。机器学习的计算需要在多次迭代后获得足够小的误差或者足够收敛才会停止,迭代时如果使用Hadoop的MapReduce计算框架,每次计算都要读/写磁盘以及任务启动等工作,这会导致非常大的I/O和CPU消耗。而Spark基于内存的计算模型天生就擅长迭代计算,多个步骤计算直接在内存中完成,只有在必要时才会操作磁盘和网络,所以说Spark正是机器学习的理想的平台。MLlib(Machine Learning lib)是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。MLib目前支持4种常见的机器学习问题:分类、回归、聚类和协同过滤。MLib基于RDD,天生就可以与Spark SQL、GraphX、Spark Streaming无缝集成。

2.Tensorflow

        Tensorflow是一个采用数据流图,用于数值计算的开源软件库。节点在图中表示数学操作,图中的线则表示在节点间相互联系的多维数据数组,即张量。

4.8 计算系统

1.GPU

        GPU(Graphics Processing Unit),起初设计用于计算机的图像渲染,具有成千上万的计算单元进行并行计算,在矩阵运算和数值计算方面具有独特优势,特别是浮点和并行计算上能优于CPU性能数十甚至数百倍。

       工业与学术界的数据科学家已将GPU用于机器学习以便在各种应用上实现开创性的改进,这些应用包括图像分类、视频分析、语音识别以及自然语言处理等等。GPU已经成为数据科学家处理大数据的必备。

2.TPU

        TPU是谷歌专门为加速深层神经网络运算能力而研发的一款芯片,它通过优化片外内存访问,使用低运算精度以及使用脉动式数据流大大提高了运算能力,比GPU、CPU组合快15-30倍。

4.9 实战演练

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenSOC:安全大数据分析框架OpenSOC已经加入Apache工程改名为Apache Metron。思科在 BroCON 大会上亮相了其安全大数据分析架构 OpenSOC,引起了广泛关注。OpenSOC 是一个针对网络包和流的大数据分析框架,它是大数据分析与安全分析技术的结合, 能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目 Hadoop,实时索引使用开源项目 ElasticSearch,在线流分析使用著名的开源项目 Storm。OpenSOC 概念性体系架构如下图所示:OpenSOC 主要功能包括:可扩展的接收器和分析器能够监视任何Telemetry数据源是一个扩展性很强的框架,且支持各种Telemetry数据流支持对Telemetry数据流的异常检测和基于规则实时告警通过预设时间使用Hadoop存储Telemetry的数据流支持使用ElasticSearch实现自动化实时索引Telemetry数据流支持使用Hive利用SQL查询存储在Hadoop中的数据能够兼容ODBC/JDBC和继承已有的分析工具具有丰富的分析应用,且能够集成已有的分析工具支持实时的Telemetry搜索和跨Telemetry的匹配支持自动生成报告、和异常报警支持原数据包的抓取、存储、重组支持数据驱动的安全模型OpenSOC 官方文档介绍了以下五大优点:由思科全力支持,适用于内部多用户免费、开源、基于Apache协议授权基于高可扩展平台(Hadoop、Kafka、Storm)实现基于可扩展的插件式设计具有灵活的部署模式,可在企业内部部署或者云端部署具有集中化的管理流程、人员和数据当前,OpenSOC 运行条件包括:两个网卡(建议使用Napatech的NT20E2-CAP网卡)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
电子书是指以电子形式存储和传播的图书资源。打开电子书,我们可以通过专门的设备如电子阅读器、平板电脑或手机应用程序来阅读。电子书的流行使得我们可以方便地在一定的储存空间中携带大量的书籍,并随时随地阅读。 电子书的诞生给人们带来了诸多便利。首先,通过互联网,我们可以轻松地从各大电子书商城或在线图书馆下载所需的书籍,无需亲自前往实体书店。其次,电子书的阅读器具备调节亮度、字体大小的功能,使得阅读过程更加舒适。我们可以随时调整字体大小,满足不同人群的阅读需要。此外,电子书阅读器还常常内置词典,当遇到生词时,我们可以立即查询其含义,提高了阅读效率。 此外,电子书也解决了实体书带来的一些问题。我们不再需要担心书页翻动时发出噪音,不再受实体书的厚度和重量的限制。同时,电子书的保存空间较小,方便携带,也可以通过云端存储,保证数据的安全。 然而,电子书也不是完美无瑕的。一方面,阅读电子书一般需要电力供应,一旦电池耗尽,就无法继续阅读。另一方面,与实体书相比,电子书的感官体验不如实体书。纸质书籍能够给人以质感和嗅觉上的满足,而电子书则无法提供这些。 总而言之,电子书以其便捷性和可扩展性成为现代人们阅读的首选之一。虽然它并不能完全替代实体书,但通过持续的技术创新和改进,我们相信电子书会越来越好,为读者带来更加出色的阅读体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值