Elasticsearch:使用 osquery 和 Elastic Stack 来监控你的端点

1,020 阅读2分钟

Osquery 是一个开源工具,可让你像数据库一样查询操作系统,从而为你提供对基础架构和操作系统的可见性。 使用基本的 SQL 命令,你可以询问有关设备的问题,例如服务器、Docker 容器以及运行 Linux、macOS 或 Windows 的计算机。 广泛的架构有助于处理各种用例,包括漏洞检测、合规性监控、事件调查等。

使用 Kibana 中的 Osquery,你可以:

  • 为一个或多个代理运行实时查询
  • 安排查询包以捕获操作系统状态随时间的变化
  • 查看过去查询的历史记录及其结果
  • 保存查询并为特定用例构建查询库

Kibana 中的 Osquery 由 Osquery Manager 集成提供支持。 有关如何设置 Osquery Manager 的信息,请参阅管理集成

需要的权限

要使用 Osquery Manager,你必须被分配到具有以下权限的角色:

  • logs-osquery_manager.result* 索引的读取权限。
  • Osquery Manager 的 Kibana 权限。 All 权限使你能够运行、计划和保存查询。 读取使你能够查看实时和计划的查询结果,但你不能运行实时查询或编辑。

安装

在本次的练习中,我将使用 Elastic Stack 8.1.2 来进行展示。你需要按照如下的链接来安装 Elasticsearch 及 Kibana:

另外我们还需要按照 Elastic Agent 及 Fleet server,请参照我之前的文章 “Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0”。我们的架构图如下:

前提条件

如果你对 osquery 还不是很了解的话,请阅读我之前的文章 “Security:osquery 介绍”。

展示

当我们配置好自己的 Elastic Agent 后,我们添加 osquery manager:

 

 

 

 

 

从上面我们可以看出来 osquery_manager-1 集成已经被成功地 安装上了。

osquery 查询

 

 

 

从上面,我们可以看出来有自动完成功能。

 

  我们看到执行命令的结果。 我们可以点击 Save for later:

 

按照同样的方法,我们添加另外一个 query: 

select * from users join chrome_extensions using (uid)

 

 

 

 

 

 

 

 

 

我们有可以添加 packs。关于 osquery 的 packs,你可以在地址 github.com/osquery/osq… 下载。

 

 

 我们可以点击那个笔形的图标去编辑这些查询。

 

 

 

如果收集到数据,就可以正常地显示。