随着 Splunk 日志记录和分析系统在俄罗斯的销售结束,出现了一个问题:可以用什么来替代该解决方案? 在花了时间熟悉不同的解决方案后,我确定了一个适合真正男人的解决方案 - “ELK堆栈”。 该系统需要时间来建立,但最终您可以获得一个非常强大的系统,用于分析组织中的信息安全事件状态并及时响应。 在本系列文章中,我们将了解 ELK 堆栈的基本(或可能不是)功能,考虑如何解析日志、如何构建图表和仪表板,以及使用以下日志示例可以完成哪些有趣的功能Check Point 防火墙或 OpenVas 安全扫描器。 首先,我们来看看它是什么——ELK 堆栈,以及它由哪些组件组成。
“ELK堆栈” 是三个开源项目的缩写: Elasticsearch, Logstash и Kibana。 由 Elastic 与所有相关项目一起开发。 Elasticsearch是整个系统的核心,它结合了数据库、搜索和分析系统的功能。 Logstash 是一个服务器端数据处理管道,它同时从多个源接收数据,解析日志,然后将其发送到 Elasticsearch 数据库。 Kibana 允许用户使用 Elasticsearch 中的图表和图形来可视化数据。 您还可以通过 Kibana 管理数据库。 接下来,我们将更详细地分别考虑每个系统。
Logstash
Logstash 是一个用于处理来自各种来源的日志事件的实用程序,您可以使用它在消息中选择字段及其值,还可以配置数据过滤和编辑。 所有操作完成后,Logstash 将事件重定向到最终数据存储。 该实用程序仅通过配置文件进行配置。
典型的logstash配置是一个文件,由多个传入信息流(输入)、用于该信息的多个过滤器(过滤器)和多个传出流(输出)组成。 它看起来像一个或多个配置文件,在最简单的版本中(什么也不做)看起来像这样:
input {
}
filter {
}
output {
}
在 INPUT 中,我们配置日志将发送到哪个端口以及通过哪个协议,或者从哪个文件夹读取新的或不断更新的文件。 在 FILTER 中,我们配置日志解析器:解析字段、编辑值、添加新参数或删除它们。 FILTER 是一个用于管理 Logstash 消息的字段,具有大量编辑选项。 在输出中,我们配置发送已解析日志的位置,如果是elasticsearch,则会发送一个 JSON 请求,其中发送带有值的字段,或者作为调试的一部分,可以将其输出到 stdout 或写入文件。
Elasticsearch
最初,Elasticsearch 是一个全文搜索的解决方案,但具有额外的便利性,例如易于扩展、复制等,这使得该产品非常方便,对于具有大量数据的高负载项目来说是一个很好的解决方案。 Elasticsearch 是一个基于 Lucene 全文搜索的非关系型 (NoSQL) JSON 文档存储和搜索引擎。 硬件平台是Java虚拟机,因此系统需要大量的处理器和RAM资源来运行。
每条传入消息,无论是使用 Logstash 还是使用查询 API,都被索引为“文档”——类似于关系 SQL 中的表。 所有文档都存储在索引中 - 类似于 SQL 中的数据库。
数据库中的文档示例:
{
"_index": "checkpoint-2019.10.10",
"_type": "_doc",
"_id": "yvNZcWwBygXz5W1aycBy",
"_version": 1,
"_score": null,
"_source": {
"layer_uuid": [
"dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
"dbee3718-cf2f-4de0-8681-529cb75be9a6"
],
"outzone": "External",
"layer_name": [
"TSS-Standard Security",
"TSS-Standard Application"
],
"time": "1565269565",
"dst": "103.5.198.210",
"parent_rule": "0",
"host": "10.10.10.250",
"ifname": "eth6",
]
}
数据库的所有工作都基于使用 REST API 的 JSON 请求,它可以按索引生成文档,也可以按以下格式生成一些统计数据:问题 - 答案。 为了可视化所有对请求的响应,编写了 Kibana,它是一个 Web 服务。
Kibana
Kibana 允许您从 elasticsearch 数据库中搜索、检索数据和查询统计信息,但许多漂亮的图表和仪表板都是基于答案构建的。 该系统还具有 Elasticsearch 数据库管理功能;在后续文章中,我们将更详细地介绍该服务。 现在让我们展示一个可构建的 Check Point 防火墙和 OpenVas 漏洞扫描程序的仪表板示例。
Check Point 的仪表板示例,图片可点击:
OpenVas的仪表板示例,图片可点击:
结论
我们研究了它的组成 ELK堆栈,我们对主要产品有了一些了解,在课程的后面我们将单独考虑编写 Logstash 配置文件、在 Kibana 上设置仪表板、熟悉 API 请求、自动化等等!
敬请期待
来源: habr.com