
これらは、セキュリティ関連のイベントや調査のために Linux インストール環境を監視するために使用できるセキュリティおよび監視スクリプトのコレクションです。各スクリプトは独立して動作し、他のスクリプトに依存しません。スクリプトは結果を印刷するか、メールで送信するか、または通知チャネルとして AlertR を使用するように設定できます。
スクリプトは scripts/ ディレクトリにあります。
各スクリプトのファイルヘッダーには、そのスクリプトの目的、検出結果が明確でない場合の解釈方法、既知の問題に関する短い概要が記載されています。インストールが必要な依存関係がある場合もリストされ、このスクリプトの発想の元となった参照先も記載されています(入手可能な場合)。
各スクリプトには、設定を行うための設定ファイルが scripts/config/ ディレクトリにあります。設定ファイルがスクリプトの実行中に見つからなかった場合、スクリプトはデフォルト設定にフォールバックし、結果を印刷します。したがって、設定ファイルを用意する必要はありません。
scripts/lib/ ディレクトリには、異なるスクリプト間で共有されるコードが含まれています。
monitor_ プレフィックスを使用するスクリプトは状態を保持し、監視目的にのみ有用です。調査のためにこれらを一度だけ使用すると、Linux システムの現在の状態のみが表示され、システムのセキュリティに関連する可能性のある変更は表示されません。これらのスクリプトにおいて現在のシステム状態を良性として確立したい場合は、--init 引数を指定できます。
search_ プレフィックスを使用するスクリプトは、侵害の兆候を検索します。これらは調査目的で使用できます。監視目的で使用したい場合は、--monitoring 引数を指定して状態を保持し、新しい発見のみを出力できます。
実行したいスクリプトのヘッダーを確認してください。このスクリプトの目的と必要な要件(必要な場合)の短い説明が含まれています。要件がある場合は、スクリプトを実行する前にインストールしてください。
共有設定ファイル scripts/config/config.py には、すべてのスクリプトで使用される設定が含まれています。さらに、各スクリプトは scripts/config/ ディレクトリ内の対応する設定ファイルを使用して設定できます。設定ファイルが見つからなかった場合は、デフォルト設定が使用され、結果が印刷されます。
最後に、設定済みのすべてのスクリプトは、start_search.py(メインディレクトリにあります)を実行するか、各スクリプトを手動で実行することで実行できます。スクリプトを実行するには Python3 インタープリタが必要です。
スクリプトを使用して Linux システムを継続的に監視する場合は、次の手順を実行する必要があります。
スクリプトでサポートされている通知チャネルを設定します(現在は、印刷、メール、または AlertR)。
scripts/config/ ディレクトリの設定ファイルを使用して、実行するスクリプトを設定します。
--init 引数を指定して start_search.py を実行し、monitor_ プレフィックスが付いたスクリプトを初期化し、システムの状態を確立させます。ただし、これは現在のシステムが侵害されていないことを前提としています。これが不明な場合は、現在の状態を確認する必要があります。
root ユーザーとして、start_search.py --monitoring を実行する cron ジョブを設定します(例:0 * * * * root /opt/LSMS/start_search.py --monitoring で 1 時間ごとに検索を開始)。--monitoring 引数により、スクリプトは新しい発見のみを報告し、同じ問題を常に報告することを防ぎます。
| 名前 | スクリプト |
|---|
| cron ファイルの監視 | monitor_cron.py |
| /etc/hosts ファイルの監視 | monitor_hosts_file.py |
| /etc/ld.so.preload ファイルの監視 | monitor_ld_preload.py |
| /etc/passwd ファイルの監視 | monitor_passwd.py |
| モジュールの監視 | monitor_modules.py |
| SSH 認証鍵ファイルの監視 | monitor_ssh_authorized_keys.py |
| systemd ユニットファイルの監視 | monitor_systemd_units.py |
| 実行中の削除されたプログラムの検索 | search_deleted_exe.py |
| /dev/shm 内の実行ファイルの検索 | search_dev_shm.py |
| 隠し ELF ファイルの検索 | search_hidden_exe.py |
| 不変ファイルの検索 | search_immutable_files.py |
| utmp ログに存在しない lastlog エントリの検索 | search_lastlog_in_utmp.py |
| ファイルレスプログラム (memfd_create) の検索 | search_memfd_create.py |
| カーネルスレッドの偽装の検索 | search_non_kthreads.py |
| 切断された SSH セッションによって開始されたプロセスの検索 | search_ssh_leftover_processes.py |
| 疑わしい組み合わせのカーネルモジュール taint フラグの検索 | search_tainted_modules.py |
| utmp ログが改ざんされた兆候の検索 | search_utmp_tampering.py |
| アラートが機能するか確認するためのテストスクリプト | test_alert.py |
| インストール済み .deb パッケージの整合性確認 | verify_deb_packages.py |