ウェブサイト検索

Osquery を使用して Linux サーバーのセキュリティを監視する方法


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

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

Osquery は、シンプルなプラグインと拡張 API を使用して SQL テーブルを実装します。すぐに使用できるテーブルのコレクションが存在し、さらに多くのテーブルが作成されています。一部のテーブルは特定のオペレーティング システムでのみ見つかります。たとえば、kernel_modules テーブルは Linux システムでのみ見つかります。

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

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

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

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 シェルを起動して、図に示すように 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 リポジトリからご覧ください。