osqueryは、システムの状態をクエリ形式で監視し、解析するための強力なツールです。Ubuntu 16.04での使用方法を詳しく説明し、セキュリティ監視のための有効な方法を探ります。osqueryは、システム上のプロセス、ファイル、ネットワーク、ハードウェアの詳細情報をリアルタイムで取得できるため、管理者がセキュリティインシデントを迅速に検出し、トラブルシューティングを行うために役立ちます。
osqueryとは?
osqueryは、Facebookによって開発されたオープンソースツールで、従来のログ収集やセキュリティ監視ツールの代替として使用されます。システム全体をSQLクエリを使って調査することができ、例えばファイルシステム、ネットワーク接続、実行中のプロセスなどに関する詳細な情報を取得できます。これにより、システムのセキュリティ状態を効率的に監視することが可能になります。
Ubuntu 16.04にosqueryをインストールする
まず、Ubuntu 16.04にosqueryをインストールする方法を説明します。公式のリポジトリからインストールすることができます。
-
リポジトリを更新する
bashsudo apt update
-
osqueryのインストール
Ubuntuの公式パッケージリポジトリからosqueryをインストールします。bashsudo apt install osquery
-
インストール確認
インストールが成功したら、以下のコマンドでバージョンを確認できます。bashosqueryi --version
osqueryの基本的な使い方
osqueryは、コマンドラインでSQLクエリを実行する形式で操作します。osqueryi
はインタラクティブなシェルを提供し、リアルタイムでシステムに関する情報を取得できます。
-
osqueryシェルを起動する
bashsudo osqueryi
-
システム情報の取得
システムの基本情報を取得するためのSQLクエリの一例を示します。sqlSELECT * FROM system_info;
このクエリは、システムのホスト名、オペレーティングシステムのバージョン、カーネル情報などを表示します。
-
実行中のプロセス情報
実行中のプロセスを確認するためには、次のようなクエリを使います。sqlSELECT pid, name, path FROM processes;
このクエリは、システムで現在実行されているプロセスのID、名前、パスをリスト表示します。
-
ネットワーク接続の確認
現在開かれているネットワーク接続を監視するために、次のクエリを使用します。sqlSELECT * FROM listening_ports;
これにより、システムがリッスンしているすべてのポートとプロセスの情報が表示されます。
セキュリティ監視に役立つクエリの例
osqueryはシステム監視やセキュリティインシデントの検出に非常に役立ちます。以下は、セキュリティ監視に使用できるいくつかのクエリの例です。
-
不正なログインの監視
システムに不正にログインしたユーザーを検出するには、last
コマンドに似たクエリを実行します。sqlSELECT * FROM last WHERE action = 'failed';
これにより、失敗したログイン試行の記録が表示され、異常なログイン活動を監視できます。
-
インストールされたパッケージの監視
システムにインストールされたパッケージの情報を取得することで、知らないパッケージがインストールされていないか確認できます。sqlSELECT name, version FROM rpm_packages;
これは、インストールされているパッケージとそのバージョンをリスト表示します。
-
未知のユーザーアカウントの監視
システムに新しいユーザーが追加された場合、その記録を監視するために次のクエリを使用します。sqlSELECT * FROM users WHERE username NOT IN ('root', 'youradminuser');
これにより、管理者以外の新しいユーザーアカウントを検出できます。
-
ファイルシステムの変更監視
システムの重要なファイルが変更された場合、監視するために以下のようなクエリを使用できます。sqlSELECT * FROM file_events WHERE action IN ('CREATED', 'MODIFIED', 'DELETED');
これにより、作成、変更、削除されたファイルに関する情報を取得できます。
osqueryを使った自動監視
osqueryは、定期的にクエリを実行し、監視結果を収集するためにスケジューリングすることも可能です。これには、osqueryd
というデーモンを使用します。osqueryd
はバックグラウンドで動作し、定期的に指定したクエリを実行してログを収集します。
-
osquerydの起動
bashsudo systemctl start osqueryd
-
自動監視の設定
osquerydの設定ファイル(通常は/etc/osquery/osquery.conf
)を編集し、実行するクエリやログの保存場所などを設定します。 -
ログの確認
osquerydは指定したファイルにログを出力します。例えば、次のようにしてログを確認できます。bashcat /var/log/osquery/osqueryd.results.log
結論
osqueryは、Ubuntu 16.04上でのセキュリティ監視に非常に強力なツールです。SQLクエリを使用することで、システムの状態を簡単に監視でき、セキュリティインシデントを早期に発見することが可能です。インタラクティブなシェルやバックグラウンドでの定期的なクエリ実行を活用することで、システムの安全性を保ちながら、問題の早期発見と対処が可能になります。
セキュリティ管理者にとって、osqueryはシステム監視の強力な手段となり、セキュリティインシデントの迅速な対応と予防に役立ちます。