osquery/osquery

GitHub: osquery/osquery

osquery 将操作系统抽象为高性能关系数据库,让用户通过 SQL 查询实现对系统状态的灵活监控与分析。

Stars: 23146 | Forks: 2553

# osquery

osquery logo

osquery 是一个由 SQL 驱动的操作系统检测、监控和分析框架。
适用于 Linux、macOS 和 Windows。

## 信息与资源 ## 什么是 osquery? osquery 将操作系统暴露为一个高性能的关系数据库。这允许你编写基于 SQL 的查询来探索操作系统数据。在 osquery 中,SQL 表代表抽象概念,例如正在运行的进程、已加载的内核模块、打开的网络连接、浏览器插件、硬件事件或文件哈希。 SQL 表通过简单的插件和扩展 API 实现。各种表已经存在,并且正在编写更多:[https://osquery.io/schema](https://osquery.io/schema/)。为了最好地理解 osquery 提供的表现力,请考虑以下 SQL 查询: 列出 [`users`](https://osquery.io/schema/current#users): ``` SELECT * FROM users; ``` 检查 [`processes`](https://osquery.io/schema/current#processes) 中可执行文件已被删除的进程: ``` SELECT * FROM processes WHERE on_disk = 0; ``` 获取监听所有接口的进程的进程名、端口和 PID: ``` SELECT DISTINCT processes.name, listening_ports.port, processes.pid FROM listening_ports JOIN processes USING (pid) WHERE listening_ports.address = '0.0.0.0'; ``` 查找每个启动可执行文件并使其保持运行状态的 macOS LaunchDaemon: ``` SELECT name, program || program_arguments AS executable FROM launchd WHERE (run_at_load = 1 AND keep_alive = 1) AND (program != '' OR program_arguments != ''); ``` 从主机的角度检查 ARP 异常: ``` SELECT address, mac, COUNT(mac) AS mac_count FROM arp_cache GROUP BY mac HAVING count(mac) > 1; ``` 或者,你也可以使用 SQL 子查询来实现相同的结果: ``` SELECT address, mac, mac_count FROM (SELECT address, mac, COUNT(mac) AS mac_count FROM arp_cache GROUP BY mac) WHERE mac_count > 1; ``` 这些查询可以是: ## 下载与安装 要下载最新的稳定版本以及获取仓库信息和安装说明,请访问 [https://osquery.io/downloads](https://osquery.io/downloads/)。 我们使用简单的 `X.Y.Z` 编号版本方案,其中 X 是主版本号,Y 是次版本号,Z 是补丁版本号。 我们计划大约每两个月发布一次次要版本。这些版本在我们的 [Milestones](https://github.com/osquery/osquery/milestones) 页面上进行跟踪。当次要版本出现不可预见的错误且我们需要快速修复时,会使用补丁版本。 如果我们需要更改构建配置,可能会使用罕见的“修订”版本。 主要、次要和补丁版本都在 GitHub 上打标签,可以在 [Releases](https://github.com/osquery/osquery/releases) 页面上查看。 当我们准备次要版本时,我们会开启一个新的 [Release Checklist](https://github.com/osquery/osquery/blob/master/.github/ISSUE_TEMPLATE/New_Release.md) issue。如果你对发布状态感兴趣,请找到相应的清单 issue,请注意当我们完成清单时,该 issue 将被标记为已关闭。 在我们的网站上托管新下载并将其添加到我们托管的仓库期间,我们将版本视为“测试中”。 当经过足够的测试后,我们将在 GitHub 上将该版本标记为“稳定”,这通常需要两周时间。 ## 从源代码构建 鼓励从源代码构建 osquery!查看我们的[构建指南](https://osquery.readthedocs.io/en/latest/development/building/)。也请查看我们的[贡献指南](CONTRIBUTING.md)并加入 [Slack](https://join.slack.com/t/osquery/shared_invite/zt-1wipcuc04-DBXmo51zYJKBu3_EP3xZPA) 上的社区。 ## Osquery 集群管理器 市面上有许多 osquery 集群管理器。osquery 项目不认可、推荐或测试这些管理器。提供它们仅作为起点 | Project | License | | ------------------------------------------------------- | ----------- | | [Fleet](https://github.com/fleetdm/fleet) | Open Core | | [Kolide](https://www.kolide.com) | Commercial | | [OSCTRL](https://github.com/jmpsec/osctrl) | Open Source | | [Zentral](https://github.com/zentralopensource/zentral) | Open Source | ## 许可证 通过向 osquery 贡献代码,你同意你的贡献将按照 LICENSE 文件中的定义进行许可。 ## 漏洞 我们在 GitHub 上带标签的版本发布说明中跟踪安全公告。我们也将其汇总到 [SECURITY.md](SECURITY.md) 中。 ## 了解更多 osquery 文档可在[线上获取](https://osquery.readthedocs.org)。旧版本的文档也可以通过版本号找到,[同样](https://readthedocs.org/projects/osquery/)。 如果你有兴趣了解更多关于 osquery 的信息,请阅读[发布博客文章](https://code.facebook.com/posts/844436395567983/introducing-osquery/)以了解项目背景,访问[用户指南](https://osquery.readthedocs.org/)。 关于开发和使用的讨论正在 osquery Slack 中进行,请在此处获取邀请 [here](https://join.slack.com/t/osquery/shared_invite/zt-1wipcuc04-DBXmo51zYJKBu3_EP3xZPA)!
标签:Awesome, DevOps, Docker‑Compose, EDR, FIM, GUI应用, Linux, macOS, Mr. Robot, NVD, osquery, Process Hacker, Rust语言, SQL, SQLite, SQL查询, Windows, Windows 调试器, WordPress安全, x64dbg, 主机安全, 事件响应, 入侵检测, 内核模块, 动态调试, 合规性检查, 后渗透, 基础设施即代码, 安全仪表盘, 安全分析, 安全审计, 安全资源, 工具集, 带宽管理, 底层分析, 开源, 开源安全工具, 性能分析, 持续安全评估, 操作系统监控, 数字取证, 数据库, 文件完整性监控, 无线安全, 流量嗅探, 漏洞检测, 用户界面自定义, 端点安全, 系统优化, 系统审计, 系统管理, 系统遥测, 网络安全审计, 网络设备安全, 网络连接监控, 脆弱性评估, 自动化脚本, 补丁管理, 设备合规, 调试插件, 跨平台, 运维安全, 进程监控, 逆向工具, 逆向工程平台, 配置管理, 黑客工具包