最小権限の SSH スキャンの設定
Tenable Nessus Manager を使用する場合に必要なユーザーロール: Standard (標準)、Administrator (管理者)、System Administrator (システム管理者)
Tenable Nessus の反復プロセスを使用して、完全で正確な認証情報 SSH スキャンに必要なアクセス許可を正確に特定できます。これにより、完全な root 権限を付与することによるセキュリティリスクを回避し、最小権限のアカウントを作成できます。このプロセスは、スキャン設定と、コマンド実行について報告する 4 つの情報プラグインに依存します。
このプロセスを使用すると、サーバー管理者との間でスキャン認証情報を調整する際の一般的な問題を解決できます。この調整は多くの場合、遅延を招いたり、不完全なスキャンデータを生成する制限付きアカウントが割り当てられたりする原因となります。
仕組み
[Attempt Least Privilege] (最小権限を試行) スキャン設定を有効にすると、Tenable Nessus プラグインはまず権限昇格なしでコマンドの実行を試みます。コマンドが失敗した場合、Tenable Nessus は権限昇格 (例: sudo) を使用して再試行し、次の 4 つのプラグインの出力に結果を記録します。
-
プラグイン ID 102094 (SSH コマンドには権限昇格が必要) — 標準ユーザーとして実行できなかった、昇格された権限を必要とするすべてのコマンドをリストします。出力はシンプルな YAML 形式で、/etc/sudoers ファイルの更新に使用できます。
出力の例
Login account : <username>
Commands failed due to lack of privilege escalation :
- Escalation account : (none)
Escalation method : (none)
Plugins :
- Plugin Filename : host_tag_nix.nbin
Plugin ID : 87414
Plugin Name : Host Tagging (Linux)
- Command : "cat /etc/tenable_tag"
Response : null
Error : "\ncat: /etc/tenable_tag: Permission denied"
- Plugin Filename : nessus_agent_installed_linux.nbin
Plugin ID : 110230
Plugin Name : Tenable Nessus Agent Installed (Linux)
- Command : "strings '/opt/nessus_agent/var/nessus/agent.version' 2>&1"
Response : "strings: /opt/nessus_agent/var/nessus/agent.version: Permission denied"
Error : ""
-
プラグイン ID 102095 (権限昇格を使用した SSH コマンド実行) — 昇格された権限で正常に実行されたすべてのコマンドをリストします。この出力を使用して、承認されたコマンドのみが sudoで実行されていることを検証できます。
出力の例
Login account : <username>
Escalation account : root
Escalation method : su
Commands required privilege escalation :
Plugins :
- Plugin Filename : bios_get_info_ssh.nasl
Plugin ID : 34098
Plugin Name : BIOS Info (SSH)
- Command : "LC_ALL=C dmidecode"
- Plugin Filename : linux_kernel_speculative_execution_detect.nbin
Plugin ID : 125216
Plugin Name : Processor Speculative Execution Vulnerabilities (Linux)
- Command : "head /sys/kernel/debug/x86/pti_enabled"
- Command : "head /sys/kernel/debug/x86/retp_enabled"
- Command : "head /sys/kernel/debug/x86/ibrs_enabled"
Command forced to use privilege escalation :
Plugins :
- Plugin Filename : netstat_portscan.nasl
Plugin ID : 14272
Plugin Name : Netstat Portscanner (SSH)
- Command : "netstat -a -n"
-
プラグイン ID 100158 (SSH 結合ホストコマンドログ) — 実行されたコマンドのログファイルを表示します。このプラグインは、Tenable Nessus がスキャン中に実行した SSH コマンドを説明する、ダウンロード可能なデバッグログファイルを提供します。
-
プラグイン ID 84239 (デバッグログレポート) — 他のプラグインが書き込んだログを収集して報告します。このプラグインは、スキャンの終わりに、利用可能なすべてのプラグインデバッグログファイルの添付ファイルを提供します。
プラグイン 100158 および 84239 は高度な診断ツールであり、スキャン設定でプラグインのデバッグを有効にする必要があります。これらのプラグインは、予期しないスキャン結果を調査する際に使用します。特に、高度で詳細なアクセス制御が設定されている環境 (TACACS など) で役立ちます。
プラグイン 102094 および 102095 はコマンドの失敗または成功を報告しますが、100158 および 84239 のデバッグログは、Tenable Nessus がホストに送信した正確なコマンド構文と完全なエラー応答を提供します。
この追加情報は、基本コマンドは許可されるが特定のフラグを付けるとブロックされるセキュリティモジュールなど、複雑なアクセス問題の診断に役立ちます。デバッグを有効にすると多くのリソースを消費するため、Tenable では特定のエンドポイントのトラブルシューティングにのみこれらのプラグインを使用することを推奨します。
アカウント設定を特定するプロセスの例
以下のワークフローは、最小権限の SSH スキャンに必要なアカウント設定を特定するために使用できます。
始める前に
-
以下の手順は、スキャンターゲットが Linux サーバーであり、コマンド昇格に sudo を使用していることが前提です。
-
以下の手順は、Tenable Nessus でのスキャンの作成および設定方法をすでに知っていることが前提です。詳細は、スキャンの作成 を参照してください。
最小権限の SSH スキャンに必要なアクセス許可を特定する方法
-
ターゲットホストで、スキャン用の標準ユーザーアカウントを作成します。
-
root ユーザーとしてログインします。
-
visudo コマンドを実行して、/etc/sudoers ファイルを編集します。基本的な sudo アクセス許可で新しいユーザーアカウントを設定します。
-
Tenable Nessus で、高度なスキャンの作成を開始します。
-
[Credentials] (認証情報) タブに移動します。
-
[SSH] を選択します。
-
[Elevate privileges with] (権限昇格方法) ドロップダウンボックスで、[sudo] を選択します。
-
[Attempt Least Privilege] (最小権限を試行) チェックボックスを選択します。
注意: [Attempt Least Privilege] (最小権限を試行) を有効にすると Tenable Nessus が一部のコマンドを 2 回試行するため、スキャン時間が 10%~30% 長くなる可能性があります。
-
必要に応じて残りのスキャン設定を行い、スキャンを保存します。
-
ターゲットホストに対してスキャンを起動します。
-
スキャン完了後、プラグイン ID 102094 (SSH コマンドに権限昇格が必要) のスキャン結果を確認します。
-
(オプション) プラグイン ID 102095 (権限昇格を使用した SSH コマンド実行) の出力をレビューして、昇格された権限で実行されているコマンドを確認します。
-
ターゲットホストで、/etc/sudoers ファイルを再度編集します。プラグイン 102094 が報告したコマンドを追加して、スキャンアカウントに必要なアクセス許可を付与します。
-
スキャンを再実行します。
-
プラグイン 102094 が失敗したコマンドを報告しなくなるまで、手順 11~14 を繰り返します。この時点で、スキャンアカウントには正確な認証スキャンに必要な権限が適切に付与されています。
複雑なアクセス問題のトラブルシューティング
上記の手順 (102094 の確認、sudoers の更新、スキャンの再実行) を行っても、プラグイン 102094 が失敗したコマンドを引き続き報告する場合、複雑なアクセス問題が発生している可能性があります。デバッグプラグインを使用して、さらに詳しく調査できます。
-
Tenable Nessus スキャン設定で、プラグインのデバッグを有効にします。
-
ターゲットホスト 1 台に対してスキャンを再実行します。
-
スキャン完了後、プラグイン ID 100158 (SSH 結合ホストコマンドログ) および プラグイン ID 84239 (デバッグログレポート) の出力を確認します。これらのプラグインからの詳細なログを使用して、失敗の原因となっている正確なコマンド構文やエラーメッセージを特定します。
-
ホストのアクセスコントロール設定 (例: /etc/sudoers または TACACS ルール) を、特定した正しいアクセス許可で更新します。
-
スキャン設定でプラグインのデバッグを無効にし、スキャンを再実行して問題が解決したことを確認します。