基于ELK网络安全监控系统设计与实现(一)

摘要

本次通过分析当前传统网络安全监控日志处理分析方案存在以下不足:网络安全监控中日志数据采集方式单一,主要针对单一日志源,日志数据处理类型以结构化数据为主,非结构化数据处理功能较弱。对数据的实时计算和分析能力较差。数据可视化分析功能较弱。针对上述特点,本文提出了基于elk开源软件设计海量安全监控日志分析系统,elk是logstash、elasticstorage和kibana软件组合的缩写。elk是专门为数据收集、存储和分析而设计的,logstash是数据收集、弹性存储数据存储和搜索引擎的核心软件,通过kibana完成数据可视化分析。利用elk构建日志系统具有成本低、可扩展性好、开发速度快等优点。综上所述,基于elk开源软件构建监控平台网络安全是一个很好的解决方案。

关键词:网络安全;安全监控;日志处理;ELK框架

第1章 绪论

1.1课题研究背景与意义

    近世纪以来,经济快速增长反作用促使技术快速增长,其中最显著的是互联网的使用更加融入人们的生活中,最终使得用户量的暴涨。网路时代用户是一个个体,其使用的网络需在服务器的基础上进行,该部分中蕴含着越来越多的日志数据。据相关资料显示,网络数据是一个广泛的宇宙,在宇宙中,数据具有高速增长性。在研究报告中能够得知2013年将会有四万亿GB数据进入人类世界中,而在2020年其数据将会达到2013年的十倍以上。互联网可分为两大方向固定与移动,随着移动客户端的产生和不断的演化,该部分数据也变得越来越多,其中产生的日志数据将会海量的产生,那么该部分数据也将会在今后的数据应用中得到更大的重视,也是我们发掘数据价值的一大方向所在。作为信息化时代的现阶段,互联网公司将会抓住这个机遇将其变成自己的优势所在。与此同时,现代信息技术己经深入到人民群众的日常生活,人们对其依赖程度越来越强。随着数据采集、存储和处理方式等方面的不断升级,人们在对数据日志信息的处理也会更加的完善,同时也更能够满足人们的需求。

但是对于当前的网络安全监控系统存在一定的弊端。不管是在日志信息的采集还是数据并发处理都并不完成。主要的弊端有以下几点:

第一,记录资料的获取有一定的难度。在常规的数据收集方法中,必须要在特定的服务器上设置一个记录档,然后才能得到相应的数据。然而,当前的数据收集模式主要集中在一个服务器上,而分布的数据簇包含了许多个服务器,因此,当前采用的数据记录方法正在逐步改变;在分布式机群中,目前采用的是记录资料的获取方法,可以对各伺服器的结点或装置进行完整的监视,并将记录档内的每一个记录档都集中起来。

第二,记录资料的种类是多种多样的。从日志的组织架构来看,目前最常见的两种形式是无组织的和结构的。根据以往的文献资料,采用常规的记录方法进行结构化的记录资料,其效率明显高于常规的记录方法,而对于未组织的记录则更为繁琐。另外,从记录资料的角度来看,例如维护记录,以及记录系统的工作状况,都是很普遍的。因此,要想使海量的、无组织的记录进行有效地收集和加工,就必须建立起海量的数据记录。

第三,记录的可视性问题。为了实现对日志的可视化,要求专家在对所收集的原始记录进行检查的基础上,并将其进行显示。在对数据进行统计和统计的同时,还要考虑到真实的数据和真实的数据。此外,以往的日志分析方法,其主要目标是节省用户使用费用,减少使用次数,而忽视了实时记录和实时显示。

1.2国内外研究现状

目前,面对巨量数据量的日志信息进行分析处理时、采用大数据的技术以及使用大数据信息挖掘的生产方式种类是比较多的。并且对于日志信息的分析采用的方案也是处于多元化的状态。根据研究表明,使用数据挖掘的方法进行日志信息的分析和挖掘应用中是比较多研究人员进行研究的。也有很多优秀的方案被提出并在实际的生产环境中进行验证并实践。

1.2.1 国内研究现状

近年来,国内许多专家和学者对大数据与数据挖掘进行了广泛的探讨,并推出了大量的日志解析方法,极大地推动了大数据技术的发展。例如,昆明科技学院的梁晓雪等人,就开始深入地研究了日志数据的技术,这种技术是基于聚类的,这位学者着重分析了目前使用的聚类方法所面临的问题,并从选择标准、改进方向和表现等方面进行了比较。但是,在分析了聚类方法产生的数据后,却没有得到直观的分析,并且得到了模糊的结论。王宗晨是一位来自清华大学的专家,他的研究成果是建立在数据挖掘技术基础上的,它能够更好地对数据进行深度的分析;哈尔滨工学院张萌教授,在 Hadoop批量和离群点技术基础上,设计了一种用于对网络中记录进行预处理的方法,是一个专业的网络安全审核体系;西安理工大学孙寅林教授,针对海量的日志进行了研究,建立了一套能够进行大规模日志的分析体系,通过对分布的存储和运算技术进行了深入的研究,并通过 Hadoop/Hive的分布计算平台及相应的系统,通过 MapReduce程序模块来实现。李勋章等人,则是建议建立一个专门针对网路记录的监视与监视的体系。它具有很好的适应性,是一种典型的“中间记录”形式,能够对各类记录进行统一的管理和审核;基于 Storm架构的数据解析体系,北京通信学院孙朝华将K-means方法移植到 Storm的分布式集群中,对采集到的日志进行了深入的剖析;吉林大学牛牧,基于 Kafka的分布信息系统,研制了一个基于分布式信息技术的大型高速缓存解析平台,能够对在线数据进行实时监测,并能对离线的数据进行及时的处理;而苏蓉,在对传统的聚类方法进行了改良和优化后,对网络的安全性进行了全方位的剖析,对整个安全服务体系进行了有效的管理与监视,极大地提升了它的工作效能。但是该体系的核心功能是对数据进行脱机运算,无法进行实时的传输和分析,使得其在某种意义上缺少实时性。为了将数据采集技术与日志分析相结合,国内的相关学者和专家们进行了全面而全面的分析和探讨。在对现有的感知技术和现有的网络形势进行了分析后,赖特对现有的分析方法和数据整合方法进行了修正,并提出了一种基于大量的网络安全装置的日志信息,并引入了基于多个来源的日志分析和融合模式;对当前的网络安全形势进行了剖析和评价。该平台能够评价网络的安全性,分析日志的数据,收集安全记录。但是,基于 Hadoop的开发环境下,基于 Hadoop的数据处理方法有很多缺陷,不但会造成数据的存取负载较少,而且对数据的实时性也有一定的不利作用。此外,本文对其在安全环境下的安全状况认知进行了简要的剖析,但是对于其联动、安全威胁性、检测等却缺乏深入的探讨与探讨。

1.2.2 国外研究现状

Denning采用了一种以统计为基础的入侵监测技术,该技术具有简单、可靠等优点。然而,这个模式将很大程度上取决于选取指标,而在选取的程序中,模型的费用将被测量。另外,其最大的缺点是,其运行速度相对较慢,且对其进行的分析结果也不理想。作者 Steven Snail等人开发了一个基于规则的数据库对网络进行日志的解析、采集和抽取有意义的对象的实时信息;再通过与之相应的数据挖掘算法,对这些矢量模式做出理性的判别,从而对异常的网络进行判定与探测。

ChenMS等则是通过对 Web程序的详细记录进行深度剖析,通过访问用户的访问方式来裁剪用户的对话记录,并使用相关的规则进行优化;对个别单独的交易进行了分析,并在该交易的基础上进行深度的搜索,最终得到最大的前向参考。通过这种方法,可以得出使用者对该系统的存取规则,进而对其进行分析。另外,基于 GlobusToolkit的开发, Cannataro等人也在这个平台上建立了一个基于 GlobusToolkit的分布式的知识发现系统。从这一点可以看出,在这种基础上,数据挖掘的运算速度得到了极大的提高,而其代价也在逐步减少。基于 GlobusToolkit的开发环境下,利用 GlobusToolkit进行数据挖掘是一种非常高效的方法。

基于上述 Hadoop的批量技术, JeongJinCheon等人对分布的网络记录进行了分析,收集了海量的 Snort警报记录,并对其进行了清理、筛选;利用 MapReduce的并联运算技术,实现了一种新的安全模式,可以检测到 Snort的警报记录中的安全性。但是,使用该系统弊端明显。只能Snort警告数据进行处理,类型单一。另外,由于系统缺少可扩充性,当资料量增多时,其处理效能会显著降低;无法添加任何结点。在大量技术已经比较完善的情况下,诸如大数据、批运算等技术已经被禁止使用,而在实际工作中,数据挖掘和记录技术也得到了越来越多的运用。例如,谷歌基于 MapReduce程序设计模式,构建了一个稳定和可靠的 Hadoop计算机分析体系。但是该方法存在着很大的时延,而且在采集过程中不可避免地存在着延时问题。Twine:企业已经使用 Storm作为一个实时的数据流处理器架构,该架构具有更好的性能,并且具有更低的延时和更高的容错能力;它的使用范围要大于前一种。利用大量的数据和数据挖掘技术,能够在对装备进行日志分析的同时,发现装备的缺陷,从而发现其安全性;从而能够对智能装置的安全性进行精确的评价。

由知名的安全专家安德森发明了一种以设备记录为基础的安全分析技术。后来,专家蒂姆·巴斯发明了一种新型的网络装置的安全性评估技术,这种技术是通过收集感应器的资料,并将其与已有的资料进行合并。该方法能够对网络设备进行安全审核与分析,并能及时发现网络中的缺陷。此外,美国国立研究所还开展了一项新的课题,以网络安全事故为重点,促进了对网络安全的可视化。研究者 R. Esteves等建立了一个以网络流量为基础的审核与分析体系,在云计算下,员工可以通过这个平台来监测整个网络的流量和资料;只要有什么不对劲的地方,他都能第一时间发现。

1.3研究内容

  本次课题研究的是基于ELK框架实现网络安全监控系统的设计与实现。通过对当前常见系统的弊端进行分析对比后提出新的网络安全监控系统方案。主要研究内容如下:

主机安全:

主要功能: 所有主机和主机相关安全事件的全面概览 Elastic 安全能够为网络安全监测团队提供交互式地图、图表、事件表格等等。它支持众多的网络安全解决方案,既包括 Suricata 和  Zeek 等 OSS 技术,也包括来自 Cisco ASA、Palo Alto Networks 和 Check Point  等厂商的设备,还包括诸如 AWS、Azure、GCP 和 Cloudflare 等云服务本次可以研究设计的主机安全分为以下几点:

  1. 检查主机:检查主机运行状态;
  2. 检查来源ip:检查监控主机的IP源;
  3. 检查不常见进程:检查监控主机的任务线程,对系统不常见的处理线程进行监控提示;
  4. 检查主机异常:检查监控主机的CPU使用状态,短期内是否CPU占用率异常现状;监控主机的内存短时间内的相对变化;检查主机的进出吞吐量是否出现大峰值变化等参数的异常监控;
  5. 检查主机事件:针对主机的操作时间以及日志时间进行监控;
  6. 检查主机风险评估:对主机的IP来源、主机进程信息、书记异常信息和主机事件进行评估。

网络安全:

    主要功能: 提供关键活动指标以及启用与时间线进行交互的事件表。通过交互式的可视化和表格呈现终端数据和背景信息。它利用了 Elastic Agent 和 Elastic Beats  提供的数据,以及 CrowdStrike 和 Microsoft Defender for Endpoint 等技术。使用会话视图探索  shell 活动,并使用分析器探索各个流程。本次可以研究设计的网络安全分为以下几点:

  1. 检查所有来源ip:检查访问IP,记录访问的ip信息;
  2. 检查所有网络NDS:对所有的网络NDS信息进行安全检查;
  3. 检查网络http:对所有的http协议请求、http链接进行安全检查;
  4. 检查网络TLS:对所有的TLS网络进行安全检查;
  5. 检查网络异常:对主机的网络信息进行检查,排查异常网络信息。
  6. 检查网络事件:对网络访问和请求事件进行检查。

用户安全:

    主要功能: 用户数据的全面概览,这些数据有助于了解您环境中的身份验证和用户行为。对用户活动的可见性,可帮助从业人员解决内部威胁、帐户接管、特权滥用和相关矢量问题。整个环境范围内的用户数据均支持安全监测,其中用户数据通过精心设计的可视化和表格进行呈现。用户背景信息会在搜索或调查流程中显示,可快速获取进一步的详细信息。本次可以研究设计的用户安全分为以下几点:

  1. 查看主机用户列表:监控统计主机的用户信息;
  2. 检查用户身份验证:监控、检查登录访问主机的用户身份信息是否通过身份验证;
  3. 检查用户登陆异常:对身份验证失败的用户进行统计;
  4. 检查用户安全事件:监控检查用户的行为;
  5. 用户风险评估:对用户的身份信息、用户的系统操作和身份安全进行评估。

第2章 技术研究概论

2.1全文检索数据库elasticsearch

Elasticsearch是一款以 Apache Lucene为基础的开放源代码搜索引擎,它使用 Apache2.0开放源代码(即免费下载,使用,或者修改)。除了 Lucene的即时搜寻,该系统还具有扩展性、可靠性以及多租用特性。可以利用 RESTful API在 JSON上实现 Elasticsearch的这些特性。其检索性能依靠 Apache Lucene技术支持,能够在不预先确定数据构造函数的情况下,动态地进行数据检索。由于采用了用于文字检索的索引,所以 Elasticsearch对检索要求做出了迅速的反应。许多大公司都在采用 ElasticSearch, Github, SoundCloud, FourSquare等;Netflix和许多其它知名公司都是如此。以下是几个典型的使用者例子:

1、Wikipedia:利用 Elasticsearch来进行文字的全文检索,同时还可以在用户打字时进行检索(search-as-you-type)和检索推荐。

2、Guardian:通过 Elasticsearch,可以处理4000万个文件,为企业在不同的企业中提供即时的流量数据,从而更好的了解客户的需要。

3、StumbleUpon:通过 Elasticsearch可以为数以百万计的用户提供更好的建议。

4、SoundCloud:利用 Elasticsearch为数百万的用户进行地理上的即时搜寻。

5、GitHub:利用 Elasticsearch为800多万行的编码基和跨平台事件编目,从而实现了即时检索。

Elasticsearch 的关键特性包括:

(1)Elasticsearch是一个开源免费的分布式、可拓展和高可用的实时文档存储,采用了全文检索技术。

(2)它提供了实时搜索和分析的能力。

(3)为开发者提供了 丰富的RESTful API接口便于开发。

(4)能够很简单地进行水平拓展,能够实现高度集成。

采集到的数据源如下图2-1所示:

图2-1 Elasticsearch数据源面版

 Elasticsearch是索引模块的核心组件一个Elasticsearch集群是由多个节点组成的,ES节点有以下角色,定义配置文件中的属性node. master/node. data/node. ingest各节点间以星型拓扑全连接,Elasticsearch集群连接拓扑图见图2-2所示。

图2-2 Elasticsearch集群连接拓扑图


.2 可视化看板kibana

Kibana是一个用于 Elasticsearch的开放源码解析和可视化的平台。可以利用 kibana搜索、查看、交互存储在 Elasticsearch的索引中的资料,并利用不同的图表、表格等, kibana能够轻松地显示出先进的数据解析和可视化。使用 Kibana软件可以方便地对海量的资料进行分析。此外,通过界面,使用者可以迅速地建立并共享有关资料变动的动态仪表面板。无需编写代码,无需其它的基础软体依赖性。

Kibana 系统的主要功能分为 性能监控(APM)、搜索数据(Discover)、可视化界面(Visualize)、仪表盘(Dashbord)、图形的绘制(Canvas)、数据可视化(Metrics)、日志记录(Logs)。kibana可视化看板如图2-3所示。

图2-3  kibana可视化看板

  Kafka中生产者和消费者两种角色的关系图如图2-4所示。生产者创建消息,传给broke:的leade:节点,followe:与leade:进行同步,分区在服务器上表现为文件夹形式:用户可以使用默认分区策略,也可自定义分区策略。

  消息存储完毕后,消费者开始读取消息。主动从订阅主题的Kafka leade:节点上拉取消息。即在实际应用中建议消费者数量少于分区数量。在Kafka建立了分段存储的基础上,消费者通过有序偏移和多种查找算法来高效读取数据。Kafka生产者与消费者关系如图2-4所示。

图2-4 Kafka生产者与消费者关系

2.3文件日志采集filebeat

Filebeat可以实现文件和目录的采集。不仅可以收集日志数据,还可以收集管理员主动生成的数据集。通过 Filebeat 可以把每一条数据稳定的传输给 Logstash 做进一步处理。它拥有断点重传机制,即使网络阻塞造成数据丢失或者程序僵死,在重启 Filebeat 后依旧可以从数据的中断点开始继续传输。它可以稳定的保证每一条数据都准确无误的传输到日志服务器以供分析,有效的防止由于日志不完整,数据集缺失造成的安全事件的误判或漏判。

Beats 之所以称之为轻量级主要是因为 Beats 在数据收集层面上并不进行过于复杂的数据处理,而是将数据进行基本的处理后转发到上层系统进行进一步分析处理。这样能够优秀的实现分析系统的解耦,使系统的每一个模块可以各司其职。另一方面,由于 Beats 采用 go 语言开发,go 是一种系统编程语言,具有良好的并发性以及部署方便的特点,能够在不依赖虚拟机的情况下运行,包大小通常也比较小。Beats 可以跨多种平台布置其中包括 Linux,Windows,Freebsd 和 Macos。从 Beats 官方给出的性能测试结果看来,虽然在功能上 Beats 的多样性比起 Logstash 略有不足,但是在单一的日志采集性能方面明显好于 Logstash。Filebea文件采集流程如图2-5所示。

图2-5 Filebea文件采集流程图

图2-5 Filebea文件采集流程图

2.4安全审计数据采集auditbeat

Auditbeat 作为一款开源的轻量型审计日志采集器,它无需触碰 auditd,直接与审计架构通信,收集与 auditd 相同的数据,并实时发送给所配置的相关组件。Auditbeat 跟 metricbeat 工作模式一样,根据配置的模块参数,收集统计相应的信息和数据,auditbeat 包含 auditd、system 和 file_intergrity 三个服务模块。

Auditd 模块主要用于接收系统内核的审计事件信息,可以自定义添加进程、文件操作、系统调用等审计规则,它能建立对内核的订阅,及时接收内核的审计消息。

System 模块主要实现收集有关系统的各种安全相关的信息,该模块包含 host、login、package、process、socket 和 user 在内的六个数据集。所有的数据集都发送周期性状态信息和实时变化。host 数据集负责收集主机相关状态数据(开机、重启、关机),login 数据集负责跟踪收集用户登录或注销系统数据,process 数据集负责采集进程的新建或停止等相关数据。

File_intergrity 模块负责服务器上的文件完整性监控,模块开始启动时,会对配置的文件和目录执行初始扫描,以生成受监视路径的基线数据,并检测自上次运行以来的更改。当磁盘上的文件被更改(创建、更新或删除)时,向配置的输出组件发送事件,事件包含文件元数据和哈希值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abelon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值