漫谈大数据 (转)
转自:http://blog.nsfocus.net/talking-big-data1/
转自:http://blog.nsfocus.net/talking-big-data2/
随着企业规模的增大和安全设备的增加,信息安全分析的数据量成指数级增长。信息安全分析引入大数据的显得越来越重要,数据源的丰富、数据种类多,数据分析维度广,同时,数据生成的速度更快,对信息安全分析应答能力要求也相应增长。
文章目录
漫谈大数据(五)——数据的快速检索Elasticsearch
漫谈大数据(一)——安全分析技术的发展
随着企业规模的增大和安全设备的增加,信息安全分析的数据量成指数级增长。信息安全分析引入大数据的显得越来越重要,数据源的丰富、数据种类多,数据分析维度广,同时,数据生成的速度更快,对信息安全分析应答能力要求也相应增长。
传统信息安全分析主要基于流量和日志两大类数据,并与资产、业务行为、外部情报等进行关联分析。基于流量的安全分析应用主要包括恶意代码检测、僵木蠕检测、异常流量、Web安全分析等;基于日志的安全分析应用主要包括安全审计、主机入侵检测等。
将大数据分析技术引入到信息安全分析中,就是将分散的安全数据整合起来,通过高效的采集、存储、检索和分析,利用多阶段、多层面的关联分析以及异常行为分类预测模型,有效的发现APT攻击、数据泄露、DDoS攻击、骚扰诈骗、垃圾信息等,提升安全防御的主动性。
而且,大数据分析涉及的数据更加全面,主要包括应用场景自身产生的数据、通过某种活动或内容“创建”出来的数据、相关背景数据及上下文关联数据等。如何高效合理的处理和分析这些数据是安全大数据技术应当研究的问题。
大数据具有4V的特点(Volume、Variety、Velocity和Value),可实现大容量、低成本、高效率的安全分析能力,能够满足我们安全数据的处理和分析要求,讲大数据应用于信息安全领域能够有效的识别各种攻击行为或安全事件,具有重大的研究意义和价值。
漫谈大数据(二)——大数据技术的春天
安全大数据分析技术的核心思想基于网络异常行为分析,通过对海量数据处理及学习建模,从海量数据中找出异常行为和相关特征;针对于不同安全场景设计针对性的相关分析方法,发挥大数据存储和分析计算能力的优势,从丰富的数据源中进行深度挖掘,进而挖掘出安全问题。安全大数据分析主要包含大数据信息收集、存储、检索和安全智能可视化及分析等多个层面。
(1)安全数据采集、存储和检索:基于大数据采集、存储、检索等技术,可以从根本上提升安全数据分析的效率。采集多种类型的数据,如业务数据、流量数据、安全设备日志数据及舆情数据等。针对不同的数据采用特定的采集方式,提升采集效率。针对日志信息可采用Chukwa、Flume、Scribe等工具;针对流量数据可采用流量景象方法,并使用Storm和Spark技术对数据进行存储和分析;针对格式固定的业务数据,可使用HBase、GBase等列式存储机制,通过MapReduce和Hive等分析方法,可以实时的对数据进行检索,大大提升数据处理效率。
(2)安全数据的智能分析:并行存储和NoSQL数据库提升了数据分析和查询的效率,从海量数据中精确地挖掘安全问题还需要智能化的分析工具,主要包括ETL(如预处理)、统计建模工具(如回归分析、时间序列预测、多元统计分析理论)、机器学习工具(如贝叶斯网络、逻辑回归、决策树、随机森利)、社交网络工具(如关联分析、隐马尔可夫模型、条件随机场)等。常用的大数据分析思路有先验分析方法、分类预测分析方法、概率图模型、关联分析方法等。可使用Mahout和MLlib等分析工具对数据进行挖掘分析。综上,一个完备的安全大数据分析平台应自下而上分为数据采集层、大数据存储层、数据挖掘分析层、可视化展示层。主要通过数据流、日志、业务数据、情报信息等多源异构数据进行分布式融合分析,针对不同场景搭建分析模型,最终实现信息安全的可管可控,展现整体安全态势。
漫谈大数据(三)——Spark技术的异军突起
为了优化和解决分布式Hadoop平台的计算不足和对其算法操作的改进,从2009年开始一种新的下一代计算平台技术Spark在伯克利大学诞生。新一代大数据分布式处理框架,在许多方面都弥补了Hadoop的不足,使得平台计算和批处理时更加高效,并有更低的延迟。
Spark基于Hadoop平台的HDFS分布式文件系统,采用Driver、Worker的分布式主从节点模式,以分布式内存抽象计算的形式提供工作集服务。非常良好的语言编程开发接口,支持多种语言JAVA、Scala、Python等,同时大大简化了代码量,使得原有并行程序代码从上百行压缩至几十行。丰富的技术组件,使得程序开发人员在进行应用实现时更加简单易用。
Spark Streaming
Spark Streaming基于微批量方式的计算和处理,可以用于处理实时的流数据。它使用DStream类型数据,简单来说就是一个弹性分布式数据集(RDD)系列,处理实时数据。
Spark SQL
Spark SQL可以通过JDBC API将Spark数据集提取出去,而且还可以用传统的BI和可视化工具在Spark数据上执行类似SQL的查询。用户还可以用Spark SQL对不同格式的数据(如JSON,Parquet以及数据库等)执行ETL数据处理操作,将其转化,然后提供给特定的查询。
Spark MLlib
MLlib是一个可扩展的Spark机器学习库,由通用的学习算法和工具组成,包括二元分类、线性回归、聚类、协同过滤、梯度下降以及底层优化原语。
Spark GraphX
Spark GraphX是一个分布式图处理框架,Spark GraphX基于Spark平台提供对图计算和图挖掘简洁易用的而丰富多彩的接口,极大的方便了分布式图处理的需求。
漫谈大数据(四)——数据的快速流转Kafka
在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。而传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线实时消息和离线数据文件,日志的客户需求,Kafka就出现了。
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。
Kafka消息分布图
漫谈大数据(五)——数据的快速检索Elasticsearch
我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是:搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。
Elasticsearch是一个基于lucence技术的搜索引擎,它为我们提供了一个分布式多用户能力的全文检索引擎,基于良好的RESTful web接口,Elasticsearch可以让我们快速自由的搭配,建立自己的企业级实时信息搜索引擎。
漫谈大数据(六)——Hadoop体系下的海量数据存储和查询
BSA的底层技术体系能够快速的处理和存储海量的数据资源,那么它的底层架构是怎么的呢?又包含那些必要组件呢?
Hadoop底层架构
HDFS
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统。高度容错性和高吞吐量特性,使得HDFS非常适合大规模数据集上访问应用程序的数据。整个HDFS可以支持数百或数千个存储着文件数据片断的服务器进行集群。每一个组成部分出现故障都不会影响整体文件系统的正常运转和失效,同时支持快速的故障的检测和自动恢复。
HBase
HBase建立在HDFS文件系统手上的高可靠性、高性能、面向列、可伸缩的分布式存储数据库,利用HBase技术可在廉价PC硬件上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据
Hive
hive是基于Hadoop系统的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是使得研发人员的学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门
的MapReduce应用,十分适合数据仓库的统计分析。
Mapreduce工作原理
Mapreduce
MapReduce是一种编程处理模型,用于大规模数据集的并行运算。Mapreduce 顾名思义”Map(映射)”和”Reduce(归约)”,是它们的主要思想是借助于分而治之的概念,通过软件实现借助Map(映射)函数,用来把一组键值对映射成一组新的键值对,然后把这些数列化之后的数据,指定到并发的Reduce(归约)函数,以保证所有映射的键值对中的每一个共享相同的键组中,然后在进行后续的数据统计和处理。这种以空间换取时间的做法,把原有排序和分组的单机系统操作sort或者group by实现提升数百倍。这种MapReduce通过把计算量分配给不同的计算机群,能够解决大部分和大数据有关的分析问题。
漫谈大数据(七)——业界翘楚Splunk
Splunk是一个针对数据分析的数据平台,可以针对于所有IT系统和基础设施数据,提供数据搜索、报表和可视化展现服务。
Splunk 为用户提供了数据传输和高速接入服务,能够实时处理多类型海量数据并对其做出多纬度指标分析统计,从而保证故障快速定位和及时响应,提升问题解决效率和企业对用户的服务质量。
Splunk是基于原始日志数据(Raw data)内容建立索引,保存索引的同时也保存原始日志内容,在大数据时代,种类繁多的日志如何能快速分析找到你需要的内容呢,你需要一个更加方便智能的工具,那就是Splunk。它能处理常规的日志格式,比如Apache、Squid、系统日志、邮件日志等这些对所有日志先进行索引,然后可以交叉查询,支持复杂的查询语句,最后通过直观的方式表现出来。它与其他开源日志分析工具不同的是,操作界面支持全中文,而且对于中文版操作系统的日志收集非常不错,目前它的商业版本价格的确不便宜。
核心能力是能搞定对海量数据的采集存储管理,然后通过可插拔的APP来完成对特定领域的分析(搜索统计监控报警这些泛功能其实都只是splunk的一个个独立的APP,而Nginx运维、WebAnalysis、安全事件审计、DDoS攻击监控等具体需求很大的点也都做成了一个个APP)。
漫谈大数据(八)——机器学习与机器智能
分类(classification),对于一个分类员来说,通常需要你告诉它“这个东西被分为某某类”,理想情况下,一个分类员会从它得到的训练集何总进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做supervised learning(监督学习)。
聚类(clustering),简单的说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了(距离矩阵),因此clustering通常并不需要使用训练数据进行学习,这在Machine Learning中被称作unsupervised learning(无监督学习)。
聚类分析
常见的分类与聚类算法:
所谓分类,简单来说,就是根据文本的特征或属性,划分到已有的类别中。如在特征因子匹配处理中,我们经常提到的文本分类便是一个分类问题,一般的模式分类方法可用于文本分类研究。常用的分类算法包括:决策树分类法,朴素的贝叶斯分类算法,基于支持向量机(SVM)的分类器,神经网络法,K-近邻法,模糊分类法等等。
流量聚类
分类法作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应。但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法。
分类算法属于监督学习,聚类则属于无监督学习。但是反过来说,监督学习属于分类算法则不准确,监督学习的关键在于给样本打上标签,然后进行相应的学习任务,如果学习任务是分类的话,那么就是分类,否则不是。很容易理解。
漫谈大数据(九)——APT智能防御技术场景
提到大数据,不得不提一种经典的高持续性攻击(Advanced persistent Threat,简称APT攻击),它的攻击持续时间长,攻击过程持续复杂,而且很难被发现。APT的主要特点是攻击空间广、持续性很强和单点隐蔽能力很强。
传统的防护策略难以检测黑客利用大数据隐藏的攻击,传统的检测是基于单个时间点进行的基于威胁特征的实时匹配检测,而APT攻击是一个持续的过程,不具有被实时检测到的明显特征,故无法被实时检测出来。同时,隐匿在大量数据中的APT攻击代码也难被发现。此外,攻击者还可以利用社交网络和系统漏洞进行攻击,在威胁特征库无法检测出来的时间段,发动攻击。
目前,APT攻击检测围绕着3个方面:恶意代码检测、主机应用保护、网络入侵检测。
孤立地进行恶意代码的检测和主机应用保护,对防御APT攻击来说是很难奏效的。简单来说,解决思路主要有以下几方面:首先,虽然APT的载体存在于大数据中,给APT检测和对抗带来了一系列困难,但是也可以利用大数据对APT进行一些检测和应对。如果有各层面、各阶段的全方位信息数据,即对任何交互行为都进行检测,可以利用不同的数据找到不同的阶段进行APT分析;其次是全流量分析,其核心是对全年的数据进行存储,在此基础上做宏观的分析、微观特定事件的检测。由于很多流量行为存在统计意义上的普适性规律,因此,要在大数据的情况下进行小样本的异常检测;最后要解决大数据空间的不确定性问题。APT攻击是以分布式方式进行的,利用大数据组织、整理相关信息,提高截获攻击者攻击路径的概率。另一种可能是攻击目标是确定的,这种情况下将数据进行存储,形成所谓的历史模式数据,利用对历史模式数据进行重放来发现攻击线索。
漫谈大数据(十)——基于用户行为分析技术场景
当前用户行为分析已经成为各大安全会议的热门主题。眼下处在安全架构的最前沿的分析技术,可以帮助信息安全专业人员解决常面临的“大海捞针”的问题:安全系统提供了太多的信息,以至于很难从中发现真正表明可能存在实际攻击的信息。分析工具有助于解读SIEM、IDS/IPS、系统日志及其他工具收集而来的海量数据。
国土基线
用户画像
UEBA(用户行为分析)工具有两大功能。首先,它们可以为企业组织及其用户特有的“正常”活动确定基线。其次,UEBA工具依据基线快速察觉需要进一步探究的异常情况。也就是说,它们着重关注出现异常行为的情况。这种行为是不是预示着有问题不好说。需要信息安全专业人员进行调查,再做出判定。
UEBA及其他形式的安全分析工具之间的一大区别是,UEBA工具专注于用户。UEBA主要的效果是把安全事件具体定位到人,而不是传统上人使用的设备,便于企业安全管理。
漫谈大数据(十一)——外部威胁关联情报
威胁情报是基于证据的知识,包括上下文、机制、指标、隐含和可操作的建议,针对一个现存的或新兴的威胁,可用于做出相应决定的知识。—Gartner
威胁情报的功能
攻击可以大致归类为基于用户的、基于应用程序的和基于基础设施的威胁。一些最常见的威胁是SQL注入、DDoS、Web应用程序攻击和网络钓鱼。
拥有一个IT安全解决方案是非常重要的,因为它能够提供威胁情报的能力,并通过主动式和响应式地来管理这些攻击。攻击者在不断改变他们的方法来挑战安全系统。因此,企业机构就不可避免地从各种源头获取到威胁情报。
有效应对威胁行之有效的一种方法是,使用SIEM来检测并应对威胁。SIEM可以用来跟踪你的环境中发生的一切,并识别异常的活动。单独的事件可能看起来并不相关,但通过事件关联和威胁情报,你就能看到在你的环境中到底发生了什么。
通过整合威胁情报和应对袭击对抗格局不断变化的威胁是远远不够的。你需要分析形势,确定可能面临的威胁,在此基础上提出预防措施。
这里有几条最佳实践:
拥有一份应用程序白名单和黑名单。这会有助于防止恶意的或未经批准的程序的执行,包括DLL文件、脚本和安装程序。从监控流量中收集和规范日志数据,并对可疑事件自动进行标记。可以对已知恶意IP地址自动响应,以防恶意攻击的企图。
仔细检查日志,看看未遂袭击是不是孤立事件,或者该漏洞之前是否被利用过。
确定未遂攻击中发生了哪些变更。有了集成威胁情报机制和内置规则,监控事件可以对不断更新的已知威胁列表进行比对。
审计日志并确定此事件为什么事件发生——原因可以大到系统漏,小到驱动过时。通过实时日志数据快速搜索并监控来自攻击的点击,识别常见的漏洞指标。