Osquery是一个免费的开源,功能强大且跨平台的基于SQL的操作系统仪器,监控和分析框架,适用于由Facebook构建的Linux,FreeBSD,Windows和Mac / OS X系统。 它是一个简单易用的操作系统资源管理器。
它结合了许多执行低级操作系统分析和监控的工具; 这些工具将操作系统显示为高性能关系数据库,如MySQL / MariaDB , PostgreSQL等,其中OS概念以表格形式表示,从而允许用户使用SQL命令来执行系统监视和分析。
Osquery使用一个简单的插件和扩展API来实现SQL表,现在有一组表可供使用,还有更多正在编写的表。 某些表只能在特定的操作系统上找到,例如,您只能在Linux系统上找到kernel_modules表。
此外,您可以运行查询以通过osqueryi shell在单个主机上监视和分析OS状态,或者通过调度程序在网络上的多个主机上运行查询或使用osquery Thrift API从任何自定义应用程序执行查询。
如何在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 $ 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系统信息
要获得Linux系统上所有用户的格式良好的列表,请运行以下查询。
osquery> SELECT * FROM users;
所有Linux用户列表
要获取所有Linux内核模块及其状态的列表,请运行以下查询。
osquery> SELECT * FROM kernel_modules;
列出Linux中的所有内核模块
要获取CentOS,RHEL和Fedora上所有已安装的RPM软件包的列表 ,请运行以下查询。
osquery> .all rpm_packages;
列出所有已安装的RPM包
要获取有关运行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';
列出Linux进程信息
如果您在桌面上运行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存储库中找到更多信息。