OsqueryでLinuxサーバーのセキュリティを監視する方法


Osquery は、によって構築された、Linux、FreeBSD、Windows、およびMac/OS Xシステム用の無料のオープンソース、強力でクロスプラットフォームのSQLベースのオペレーティングシステム計測、監視、および分析フレームワークです。 Facebook シンプルで使いやすいオペレーティングシステムエクスプローラです。

これは、低レベルのOS分析と監視を実行する多数のツールを組み合わせたものです。これらのツールはオペレーティングシステムを MySQL / MariaDB PostgreSQL などの高性能リレーショナルデータベースとして公開します。これにより、ユーザーはSQLコマンドを使用してシステムの監視と分析を実行できます。

ある[ Osquery のSQLテーブルを実装するためにシンプルなプラグインと拡張機能のAPIを使用して、使用の準備が整って存在するテーブルのコレクションがあり、そしてもっと書かれています。一部のテーブルは特定のオペレーティングシステムでしか見つけることができません。たとえば、Linuxシステムではkernel_modulesテーブルしか見つかりません。

さらに、クエリを実行して osqueryiシェルを介して単一のホストで、またはスケジューラを介してネットワーク上の複数のホストでOSの状態を監視および分析したり、osquery Thriftを使用してカスタムアプリケーションから実行したりできますAPI

LinuxにOsqueryをインストールする方法

Osquery は、それぞれのLinuxディストリビューションでapt yumまたはdnfパッケージ管理ツールを使用して、公式リポジトリからインストールすることができます。

$ 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
$ 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
$ 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 シェルを起動して、表示されているようにOSの状態のクエリを開始します。

$ 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リポジトリからより多くの情報を見つけることができます。