下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >大数据 >自动化运维中的大数据分析

自动化运维中的大数据分析

起个名字你猜我叫啥发布于 2015-07-21 08:44查看:682回复:3

 IT运维自动化越来越普遍地在企业和高校中被采纳,安全运维也应该成为其中一个重要的组成部分,它的自动化程度对于提高信息安全保障能力具有重要的意义。


  对于软件补丁管理、安全策略配置,自动化运维技术已经发挥了积极的作用。新一代的防火墙等设备强调智能的理念,也在一定程度上做到了基于行为的检测和设备的联动。尽管如此,安全运维所涉及的面非常广,我们必须对整个网络中的设备、应用和服务有个全面的监控和分析,才能发现愈发复杂的攻击和渗透。面向未来的安全防御能力应该是数据驱动的,要让安全数据分析更加智能和自动化,我们还需要做很多努力。


采集安全“大数据”


  对于“大数据”有很多不同的定义,目前普遍被接纳的说法是具有高容量(Volumn)、产生速度(Velocity)和多样性(Variety),需要特殊的技术和分析方法才能转化为有价值的信息资产。安全向来与数据相关,只是现在随着相关技术的成熟,我们有了更好的手段来进行安全数据的分析。


  解决安全“大数据”问题,首先需要进行数据的采集。传统的安全数据分析,通常仅会处理防火墙、入侵检测设备和反病毒软件的告警,认证系统、VPN和服务器系统日志以及漏洞扫描报告。这些数据仅能反映已经被安全设备记录的入侵行为,或执行基本的用户登录和操作审计。当前多数厂商在售的日志审计系统,也仅具备单机的处理能力,无力应对大数据条件下的日志分析。


  攻击者的手段越来越丰富,很多复杂的攻击超出了现有安全设备的检测能力,甚至利用了未曾公开的漏洞。我们需要将网络中发生的所有行为都记录下来,才能不漏过最狡猾的攻击者。在安全大数据分析中,最常用的数据源包括:1.对外服务的访问记录,如Web日志,通常在最前端的负载均衡采集;2.数据库查询日志,身份认证系统日志;3.所有的服务器操作系统、软件和应用日志;4.DHCP、Wi-Fi、VPN、NAT记录;5.所有内网机器的网络行为,如HTTP、DNS日志(请求和解析结果);6.网络流(NetFlow),包括网络出口以及内网之间的通信;7.Email通讯记录及可疑的内容和附件;8.有条件的还会采集桌面操作系统、移动设备的信息;对于大型的企业、高校,采集Web日志、网络流等,每天产生的数据就可达TB级,因而不得不借助大数据工具进行存储和分析,最常用的方案就是开源的Hadoop平台。


1437439444683907.jpg

 解决日志向Hadoop平台输送的问题,可使用Apache Flume。它能够直接和多种数据源对接,如本地文件、Syslog、类NetCat的TCP流、命令输出等,并且支持包括HDFS、Kafka在内的多种输出(Sink)。在Flume中可以自定义数据流向,并实时对数据进行过滤和修改(Interceptor)。


  除了利用Flume进行实时数据采集外,也可将批量的日志文件导入HDFS,或者用Sqoop工具将已经在传统SQL数据库中的数据迁移到Hadoop平台。


安全“大数据”分析


  数据处理框架


  基于大数据平台的安全日志分析通常分为在线检测和离线分析两个部分。在线检测对采集到的日志进行实时处理,其结果反馈能够及时阻断正在发生的攻击。离线检测则对海量的历史数据进行深入挖掘,发现更加复杂的攻击事件。


  图1展示了基于大数据平台进行安全日志分析的大致流程。在这个处理框架下,安全大数据分析的自动化体现在:1.数据采集的自动化:通过Flume 或Kafka将各个设备和服务的日志持续地输入到Hadoop平台;2.在线检测和响应的自动化:利用流式处理框架对日志进行实时的分析,异常告警与安全设备联动进行攻击阻断;3.离线分析和报表的自动化:定期对HDFS海量数据进行深入挖掘,产生更加详尽的分析结果。


  数据预处理


  我们选用Spark Streaming进行实时的流式数据处理,类似的也有采用Storm的方案,但会增加维护两套集群、熟悉两种开发模型的成本。


  Spark Streaming可直接从Flume或Kafka读取实时采集的数据。由于注入的数据种类多样,首先必须针对不同的数据源进行数据格式的解析,转换为统一的格式进行后续的分析和存储。预处理步骤同时进行数据的清洗,过滤掉重复、错误的记录,并进行初步的关联和合并。


  考虑到在线检测的需要,我们将输入的原始日志与其他扩充信息进行关联,即进行数据充实(DataEnrichment)。常用的扩充信息包括DNS映射关系、WHOIS信息、地理位置信息、域名和IP地址黑白名单等,以及与络及业务相关的数据,例如内部IP地址分配情况、用户信息和角色等。经过这些辅助信息增强后的日志记录,被输出到在线检测算法进行分析。


  在线检测


  在线检测分为两个阶段。较为初级的在线检测,利用一系列预先定义好的规则、正则表达式对输入的日志进行匹配,对于符合特定规则的日志产生告警事件。更复杂一些的在线检测利用到机器学习的方法。通过Spark的MLlib机器学习算法库可以利用已经存储在HDFS中的离线数据进行训练,产生的模型应用到实时输入的事件记录的分类或聚类预测。MLlib同时也实现了一些在线的算法,例如Streaming Linear Regression、Streaming K-means等,能够根据流式输入的数据对模型进行动态的调整,使得在线检测算法的开发更灵活、选择更多样。


  数据的预处理和在线检测算法应具有较低的延迟,以便告警能够及时反馈,通过其他安全设备进行连接的阻断。与传统的IDS相比,大数据平台为在线检测提供了更强大的计算能力,分析的数据也更加丰富,能够及时发现和阻断更多种类的安全威胁。


  离线检测


  离线检测算法不需要满足在线检测那么严苛的实时性要求,用于对大批量的数据进行挖掘。对于已经定制好的检测算法,定期(例如每天或者每个月)执行,自动产生检测报告。此类算法在实现上的选择也更为多样,例如比较熟知的Map Reduce和Spark计算框架,并基于此使用Mahout、MLlib进行机器学习或使用GraphX做图运算。


  安全研究员与数据科学家也可以借助此平台,在海量的安全数据上进行数据分析研究和实验,从而发掘更多的安全事件,提炼出可重复的经验之后,即可再次转化为新的自动化的离线和在线检测技术。


  交互式查询


  Impala在Hadoop平台上提供了执行交互式SQL查询的能力。与之相比,Apache Hive尽管经历了MapReduce引擎到Hive on Tez和Hive on Spark的不断改进,但在许多情况下查询性能还是明显弱于Impala。考虑到Hive在数据导入和格式转换上有显著优势,且两者的表结构和数据是可以互操作的,因而还是经常被一起使用。


  基于Impala和Hive,可使用熟悉的SQL语言对存储在Hadoop中的数据进行查询,对于需要灵活变更查询条件的日志审计检索尤其适用。开发者也可以利用Impala和Hive的ODBC或JDBC接口进行应用的开发,与连接传统SQL数据库的体验几乎一致。目前也已经有不少成熟的商业智能、数据分析和可视化软件,利用这些接口与Hadoop平台对接,提供了大数据分析能力。


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • Real Madrid
  • 药师
  • mr jack
  • YUI
  • Mr ken
  • Mright
  • cappuccino
  • 课课家技术团队1
  • love洒脱留守
  • 酸酸~甜甜
  • 课课家团队03
  • K哥馆
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: