如何使用 Osquery 监控 Linux 服务器安全
Osquery 是一个免费、开源、功能强大且跨平台的基于 SQL 的操作系统检测、监控和分析框架,适用于 Linux、FreeBSD、Windows 和 Mac/OS X 系统,由 构建脸书。它是一个简单易用的操作系统资源管理器。
它结合了许多执行低级操作系统分析和监控的工具;这些工具将操作系统揭示为高性能关系数据库,例如 MySQL/MariaDB、PostgreSQL 等,其中操作系统概念表示为表格形式,允许用户使用SQL命令进行系统监控和分析。
Osquery 使用简单的插件和扩展 API 来实现 SQL 表,已有一组可供使用的表,并且正在编写更多表。有些表只能在特定操作系统上找到,例如,只能在 Linux 系统上找到 kernel_modules 表。
此外,您可以通过osqueryi shell在单个主机上运行查询来监视和分析操作系统状态,或者通过调度程序在网络上的多个主机上运行查询来监视和分析操作系统状态,或者使用 osquery Thrift 从任何自定义应用程序中执行它们蜜蜂。
如何在 Linux 中安装 Osquery
可以在各自的 Linux 发行版上使用 apt yum 或 dnf 包管理工具从官方存储库安装 Osquery,如图所示。
在 Debian/Ubuntu 上
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt update
sudo apt install osquery
在 RHEL/CentOS 上
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm-repo
sudo yum install osquery
在 Fedora 22+ 上
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
dnf config-manager --add-repo --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo dnf config-manager --set-enabled osquery-s3-rpm
sudo dnf install osquery
如何使用 Osquery 监控和分析 Linux
在系统上成功安装 Osquery 后,启动 osqueryi shell 开始查询操作系统的状态,如图所示。
osqueryi
Using a virtual database. Need help, type '.help'
osquery>
要获取 Linux 系统汇总信息,请运行以下命令。
osquery> SELECT * FROM system_info;
要获取 Linux 系统上所有用户的格式正确的列表,请运行以下查询。
osquery> SELECT * FROM users;
要获取所有 Linux 内核模块及其状态的列表,请运行以下查询。
osquery> SELECT * FROM kernel_modules;
要获取 CentOS、RHEL 和 Fedora 上所有已安装 RPM 软件包的列表,请运行以下查询。
osquery> .all rpm_packages;
要获取有关正在运行的 Linux 进程的信息,请运行以下查询。
osquery> SELECT DISTINCT processes.name, listening_ports.port, processes.pid FROM listening_ports JOIN processes USING (pid) WHERE listening_ports.address = '0.0.0.0';
如果您在桌面上运行 osquery 并安装了 Firefox 或 Chrome,则可以使用以下查询列出所有加载项。
osquery> .all firefox_addons;
osquery> .all chrome_extensions;
要显示 Linux 中所有已实现表的列表,请使用 .tables 命令,如下所示。
osquery> .tables; #list all implemented tables
osquery> .help; #view help message
Osquery还提供文件完整性监控(FIM)、进程和套接字审计功能等等,因此它是一个入侵检测工具,但这需要一定的配置才能使用为此目的部署它。您可以从 Osquery Github 存储库找到更多信息。