Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用ELK Stack建设SIEM

使用ELK Stack建设SIEM

作者头像
madneal
发布于 2022-03-11 03:30:18
发布于 2022-03-11 03:30:18
1.5K0
举报
文章被收录于专栏:madMenmadMen

原文:Using the ELK Stack for SIEM 译者:neal1991 welcome to star my articles-translator , providing you advanced articles translation. Any suggestion, please issue or contact me LICENSE: MIT

任何 SIEM 系统的核心都是日志数据。有很多种。无论是来自服务器防火墙数据库还是网络路由器,日志都为分析人员提供了深入了解 IT 环境中发生事件的原始资料。

然而,在将这些材料转化为资源之前,需要采取几个关键步骤。数据需要收集,处理,规范化,增强和存储。这些步骤通常在术语“日志管理”下组合在一起,是任何 SIEM系统中必备的组件。

因此,ELK Stack 是当今世界上最流行的开源日志分析和管理平台,这绝非巧合,它是当前大多数开源 SIEM 解决方案的重要组成部分。 ELK 负责收集,分析,存储和分析,部分架构来源于 OSSEC Wazuh,SIEMonster 和 Apache Metron。

如果日志管理和日志分析是 SIEM 中唯一的组件,则 ELK Stack 可被视为有效的开源解决方案。但是当我们定义SIEM 系统实际是什么时,除了日志管理之外,还列出了很多组件列表。本文将尝试深入探讨 ELK Stack 是否可用于S IEM,缺少什么以及将其扩展到全功能 SIEM 解决方案所需的内容。

日志收集

如上所述,SIEM 系统涉及汇总来自多个数据源的数据。这些数据源将根据你的环境而有所不同,但很可能您将从你的应用程序,基础设施级别(例如服务器,数据库),安全控制(例如防火墙,V**),网络基础设施(如路由器,DNS)外部安全数据库(例如威胁情报)。

这需要 ELK Stack 非常适合处理的聚合能力。使用Beats和Logstash的组合,你可以构建日志记录体系结构由多个数据管道组成。 Beats 是轻量级日志转发器,可用作边缘主机上的代理来跟踪和转发不同类型的数据,最常见的 beat 是用于转发日志文件的 Filebeat。 Logstash 然后可用于聚合来自 beat 的数据,对其进行处理(见下文)并将其转发给流水线中的下一个组件。

由于涉及的数据量很大,并且需要挖掘不同的数据源,因此很可能需要多个 Logstash 实例来确保更具弹性的数据管道。不仅如此,还需要部署排队机制来确保处理数据突发,并且管道中各个组件之间的断开连接不会导致数据丢失Kafka 通常是在这种情况下使用的工具,在 Logstash 之前安装(其他工具,如 Redis 和 RabbitMQ 也被使用)。

因此,单独使用 ELK Stack 很可能不足以满足你的业务需求,并且其生成的数据也会增长。希望使用 ELK 进行 SIEM 的组织必须了解需要部署其他组件才能增加堆栈。

日志处理

收集数据并转发它当然只是 Logstash 在日志记录管道中的一部分。另一个关键任务,也是 SIEM中 非常重要的一个任务,就是处理和解析数据。

上面概述的所有数据源类型都以不同的格式生成数据。要在下一步中取得成功 - 即搜索数据和分析数据 - 数据需要进行标准化。这意味着将不同的日志消息分解为有意义的字段名称,在 Elasticsearch中 正确映射字段类型,并在必要时丰富特定字段。

人们不能忽略这一步骤的重要性。如果没有正确的解析,当你试图在 Kibana中 分析时,你的数据将毫无意义。 Logstash 是一个强大的工具,可以帮助你完成此关键任务。 Logstash 支持大量不同的过滤器插件,可以分解日志,使用地理信息丰富特定字段,例如,删除字段,添加字段等。

再一次,诸如 SIEM 系统所需的日志架构可能变得复杂。特别是,配置 Logstash 以处理各种日志类型将需要多个 Logstash 配置文件和 Logstash 实例。重复处理是复杂过滤器配置的结果,会影响 Logstash 性能。监控 Logstash 管道非常重要,监控 API(例如用于识别具有高 CPU 的 Java 线程的 Hot Thread API)可用于此目的。

存储和保留

从不同数据源收集的日志数据需要存储在数据存储中。在使用 ELK 的情形下,Elasticsearch扮演数据索引和存储的角色。

Elasticsearch 是目前最流行的数据库之一,事实上 - 它是 Linux 内核之后第二大下载的开源软件。这种积极的原因是多种多样的 - 它是开源的,相对容易建立,快速,可扩展并且有一个巨大的社区支持它。

当然,部署 Elasticsearch 集群只是第一步。由于我们正在讨论索引的大量数据集,随着时间的推移,这些数据的数量将不断增加,因此用于 SIEM 的任何 Elasticsearch 部署都需要具有极高的可扩展性和容错性。

这需要许多特定的子任务。我们已经提到使用排队机制来确保数据在丢失或数据突发时不会丢失,但是你还需要关注关键的 Elasticsearch 性能指标,如索引速率和节点 JVM 堆和 CPU。再次,你可以使用监控 API 来达到此目的。容量规划也很重要,如果你部署在云上,则自动扩展策略很可能是确保你有足够的资源进行索引所必需的。

另一个考虑是数据保留。

为了进行高效的事后取证和调查,你需要一个长期的存储策略。例如,如果你注意到源自特定 IP 的流量大幅增加,你需要比较这些历史数据以验证它是否为异常行为。一些攻击可能会在几个月内缓慢演变,并且作为分析师,拥有这些历史数据是成功检测模式和趋势的关键。

毋庸置疑,ELK Stack 不支持开箱即用的归档功能,因此你需要弄清楚自己保留数据的体系结构。理想情况下,不会在财务上削弱你的组织。

查询

一旦你的数据在 Elasticsearch中 收集,分析并建立索引,下一步就是查询数据。 你可以使用 Elasticsearch REST API 来做到这一点,但很可能你会为此使用Kibana。

在Kibana中,使用 Lucene 语法查询数据。 例如,常见的搜索类型是字段级搜索。 例如,假设我正在查找组织中某个人执行的操作所生成的所有日志消息。 因为我在所有数据源中标准化了一个名为 username 的字段,所以我可以使用这个简单的查询:

username:”DanielBerman”

这种查询可以使用逻辑符,比如 AND, OR, NOT

username:”DanielBerman”AND type:login ANS status:failed

同样,如果你想使用 ELK Stack 用于 SIEM,你将需要利用 Logstash 的分析能力来处理你的数据 - 你如何设法做到这一点会影响你轻松浏览你导入的多个数据源的查询方式。

仪表盘

Kibana 以其可视化功能而闻名,支持各种不同的可视化类型,并允许用户以他们喜欢的任何方式对其数据进行切片和裁切。您可以创建饼图,图表,地图,单个度量标准,数据表等等,结果非常有效。

以下是针对AWS环境在Kibana中构建的SIEM仪表板的示例:

在 Kibana中 创建仪表板不是一项简单的任务,需要熟悉数据和构建日志消息的不同字段。更有甚者,Kibana 还缺少特定的功能,例如可视化中的动态链接。有解决方法,但内置功能将会让你受益良多。

Kibana 也不支持安全共享对象。如果你发现安全漏洞并希望与同事共享仪表板或单个可视化文件,则 Kibana 中的共享链接不会被标记。你可以在 Kibana(X-Pack)或可以使用的开源解决方案之上实施商业附加组件。

关联

SIEM 的另一个关键要素是事件关联。 正如我们在之前的文章中已经定义的那样,事件关联是将来自不同数据源的信息连接成一种模式, 表明在安全方面有问题。 相关性规则定义了形成这种模式的特定事件序列。

例如,可以创建规则以识别何时在特定时间段内从特定 IP 范围和端口发送超过x个请求量。 关联规则的另一个示例将与特权帐户的创建一起寻找异常数量的失败登录。

这些关联规则由各种 SIEM 工具提供或针对不同的攻击情景预定义。 ELK Stack 当然没有内置的关联规则,因此分析人员可以根据使用 Logstash 执行的解析和处理来使用 Kibana 查询来关联事件。

警报

没有警报,关联规则就没有什么意义。 在识别可能的攻击模式时发出警报是 SIEM 系统的关键组成部分。

继续上面的例子,如果你的系统记录了来自特定 IP 范围的大量请求或异常数量的登录失败,则需要将警报发送给组织中正确的人员或团队。 速度是关键 - 通知发送得越快,缓解成功的机会就越大。

ELK Stack 以其开放源代码形式,没有提供内置的警报机制。 为了增加这个功能,ELK Stack 需要增加一个警报插件或附件。 再次,X-Pack 是一种选择。 另一个选择是添加 ElastAlert- 一个可以添加到 Elasticsearch 之上的开源框架。

事件管理

问题明确后,分析人员发出警报。 现在怎么办? 你的组织如何对事件做出响应将决定结果。 SIEM 系统旨在帮助安全人员的下一步 - 包含事件,必要时升级它,缓解它并扫描漏洞。

ELK Stack 在帮助分析人员识别事件但对管理事件没有太多帮助时非常棒。 即使在堆栈顶部实施警报附加功能,为了有效管理事件,也需要管理触发警报的方法。 否则,可能会迷失在众多警报中并且错过重要事件。 自动化升级过程和创建票据对于有效的事件处理也很重要

总结

那么,ELK Stack 可以用于 SIEM 吗?

这个问题的答案很简单。 在其原始形式中,由 Logstash,Elasticsearch,Kibana 和 Beats 组成 - ELK Stack 不是 SIEM解决方案。

我们来总结一下上面的关键点:

虽然这是一个非常强大的集中日志记录工具,但 ELK Stack 不能直接用于 SIEM。 缺少内置警报功能,关联规则和缓解功能 - ELK Stack 无法完成安全分析人员所需的完整工具箱。

当然,ELK Stack 可以增加其他平台和服务。 这正是市场上的几种开源SIEM解决方案所做的。 但是这需要组织的巨大工程技术专长。 将 ELK Stack 与其他附加组件和平台合并所需的资源和技术知识的数量,更不用说财务成本,因此选择商业 SIEM 也成为一个不错的选择。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 madMen 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于开源项目构建SIEM
Gartner的定义:安全信息和事件管理( Security Information Event Management)技术通过对来自各种事件和上下文数据源的安全事件的实时收集和历史分析来支持威胁检测和安全事件响应。它还通过分析来自这些来源的历史数据来支持合规报告和事件调查。SIEM技术的核心功能是广泛的事件收集,以及跨不同来源关联和分析事件的能力。
FB客服
2020/09/04
2.1K0
基于开源项目构建SIEM
使用Elasticsearch SIEM搭建小型组织SIEM平台
什么是SIEM?英文全称为Security Information Event Management,安全信息与事件管理,Gartner定义为:安全信息和事件管理(SIEM)技术通过对来自各种事件和上下文数据源的安全事件的实时收集和历史分析来支持威胁检测和安全事件响应。
yaodo
2022/04/24
2K0
Logstash:Logstash 入门教程 (一)
Logstash 是一个功能强大的工具,可与各种部署集成。 它提供了大量插件,可帮助你解析,丰富,转换和缓冲来自各种来源的数据。 如果你的数据需要 Beats 中没有的其他处理,则需要将 Logstash 添加到部署中。
全栈程序员站长
2022/11/03
1.8K0
关于ELK架构原理与介绍
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。
lyb-geek
2019/05/21
2.6K0
ELK是什么?
Elastic Stack 是 原 ELK Stack 在 5.0 版本加入 Beats 套件后的新称呼。 Elastic Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,Elastic Stack 具有如下几个优点: 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用; 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计; 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应; 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的; 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
陈不成i
2021/07/05
3810
Linux安装ELK日志平台(7.5.1)
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
子润先生
2021/07/07
1.8K1
建设DevOps统一运维监控平台,先从日志监控说起
前言 随着Devops、云计算、微服务、容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器、虚拟机、物理机不一而足。 面对动辄几百上千个虚拟机、容器,数十种要监控的对象,现有的监控系统还能否支撑的住?来自于容器、虚拟机、物理机的应用日志、系统服务日志如何采用同一套方案快速、完整的收集和检索?怎样的架构、技术方案才更适合如此庞大繁杂的监控需求呢?本文主要从以下几个方面来分享下笔者在日志监控方面的一些经验。 目录 一、DevOps浪潮下带来的监控挑
yuanyi928
2018/04/02
4.3K0
建设DevOps统一运维监控平台,先从日志监控说起
ELK学习笔记之ELK架构与介绍
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
Jetpropelledsnake21
2018/12/06
4.1K0
使用ELK Stack进行日志管理和分析:从入门到精通
在现代IT运维中,日志管理和分析是确保系统稳定性和性能的关键环节。ELK Stack(Elasticsearch, Logstash, Kibana)是一个强大的开源工具集,广泛用于日志收集、存储、分析和可视化。本文将详细介绍如何使用ELK Stack进行日志管理和分析,帮助您从入门到精通。
Echo_Wish
2024/09/25
2470
使用ELK Stack进行日志管理和分析:从入门到精通
搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02
端碗吹水
2020/09/23
2.4K0
搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
使用ModSecurity & ELK实现持续安全监控
在这篇博文中Anand Tiwari将讲述他在建立这样一个监控和警报系统时的经历和面临的挑战
Al1ex
2022/09/07
2.6K0
使用ModSecurity & ELK实现持续安全监控
ELK多租户方案
日志分析是目前重要的系统调试和问题排查的重要手段之一,而目前分布式系统由于实例和机器众多,所以构建一套统一日志系统是非常必要的;ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前的主流选择之一。
陶陶技术笔记
2020/12/11
2.6K0
ELK多租户方案
Elastic Stack生态和场景方案
由于Elastic X-Pack是面向收费的,所以我们不妨也把X-Pack放进去,看看哪些是由X-Pack带来的,在阅读官网文档时将方便你甄别重点:
Linux运维技术之路
2024/02/29
1420
Elastic Stack生态和场景方案
《Learning ELK Stack》9 生产环境的ELK技术栈
9 生产环境的ELK技术栈 当我们说到生产级别实施ELK技术栈时,有一些隐含的前提条件 防止数据丢失 数据保护 可扩展性的解决方案 数据保留 ---- 防止数据丢失 Logstash的索引器之前引入
yeedomliu
2020/07/07
1.2K0
ELK介绍
运维人员需要对系统和业务日志进行精准把控,便于分析系统和业务状态。日志分布在不同的服务器上,传统的使用传统的方法依次登录每台服务器查看日志,既繁琐又效率低下。所以我们需要**集中化的日志管理工具将位于不同服务器上的日志收集到一起, 然后进行分析,展示**。
星哥玩云
2022/09/15
4820
ELK介绍
Beats:Beats 入门教程 (一)
在今天的这个教程里,我们来针对初学者如何快速地了解 Beats 是什么,并如何快速地部署 Beats。如果你想了解更多关于 Beats 方面的知识,可以参阅我的文章。
腾讯云大数据
2020/07/14
2K0
Beats:Beats 入门教程 (一)
如何使用ELK Stack分析Oracle DB日志
随着业务的发展,服务越来越多,相应地,日志的种类和数量也越来越多。一般地,我们会用grep、awk,或者编写脚本进行日志分析。对于多个服务构成的系统,需要人为把这些日志分析工作有机地结合起来。在业务系统组件多而组件间关联复杂的情况下,这种分析方法效率十分低下,一个日志分析平台极为必要。从日志的整合和展示看,日志分析平台主要由两部分构成,一是日志整合系统,负责把各组件日志集中并索引起来,以方便快速的搜索和分析,这可以用ELK开源软件进行搭建;二是日志分析展示系统,对各类日志提供尽可能多的自动化分析和评估报表,这需要辨识并固化尽可能多的日志分析的行为模式。这些都基于对ELK的认识和对业务系统各组件日志的理解。
王录华
2019/07/31
2.8K0
如何使用ELK Stack分析Oracle DB日志
ELK日志原理与介绍
为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。 一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。 一个完整的集中式日志系统,需要包含以下几个主要特点: • 收集-能够采集多种来源的日志数据 • 传输-能够稳定的把日志数据传输到中央系统 • 存储-如何存储日志数据 • 分析-可以支持 UI 分析 • 警告-能够提供错误报告,监控机制 ELK提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。目前主流的一种日志系统。 ELK简介: ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。 Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。 Filebeat隶属于Beats。目前Beats包含四种工具:
全栈程序员站长
2022/08/04
5790
ELK日志原理与介绍
第02篇-Elastic Stack功能介绍
这是“ elasticsearch简介”系列的第二部分。这个简短的博客旨在简要介绍Elasticsearch堆栈中的组件。这些组件的用途是什么,如何为堆栈提供价值,或者为什么它们是与Elasticsearch一起使用的更好的选择。
普通人刘大
2020/05/30
1.9K0
【ES三周年】Elastic(ELK) Stack 架构师成长路径
通过遵循这个成长路径,你可以逐步成为一名出色的 Elastic Stack 架构师。
张同学tty
2023/04/10
1.7K0
【ES三周年】Elastic(ELK) Stack 架构师成长路径
相关推荐
基于开源项目构建SIEM
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档