Windows での認証チェック
このドキュメントの手順に従って、ローカルセキュリティチェック用に Windows システムを設定します。
注意: 一部のローカルチェックを実行する場合、Tenable Nessus ではホストで PowerShell 5.0 以降が実行されていることを必要とします。
ヒント: Tenable Nessus と互換性のある Windows オペレーティングシステムについては、Tenable Nessus ソフトウェア要件を参照してください。
前提条件
この処理を始める前に、次のような Windows での認証チェックをブロックする場所のセキュリティポリシーがないことを確認してください。
-
Windows セキュリティポリシー
-
ローカルコンピューターポリシー (たとえば、このコンピューターへのネットワーク経由のアクセスを拒否、、ネットワーク経由でのアクセスなど)
-
ウィルス対策またはエンドポイントのセキュリティルール
-
IPS/IDS
認証スキャン用のアカウントを設定する
Windows 認証情報に関して最も重要なのは、チェックの実行に使用されるアカウントには、必要なすべてのファイルとレジストリエントリにアクセスする権限が必要であるということです。多くの場合、管理権限が必要となります。Tenable Nessus に管理アカウントの認証情報を提供しない場合、Nessus で実行できるのは、レジストリでパッチの有無をチェックすることだけです。これもインストール済みのパッチを確認するための有効な方法ではありますが、ポリシーにキーを設定しないサードパーティ製のパッチ管理ツールとは互換性がありません。Tenable Nessus に管理権限がある場合は、リモートホストのダイナミックリンクライブラリ (.dll) のバージョンをチェックできるので、はるかに精度が向上します。
以下のドロップダウンセクションでは、ユースケースに応じて Windows で認証情報を使用したチェックに使用するドメインまたはローカルアカウントを設定する方法について説明します。
注意: ドメインコントローラーのスキャンに使用できるのはドメイン管理者アカウントだけです。
Windows サーバーのリモートホストベースの監査用のドメインアカウントを作成するには、サーバーがサポートされている Windows のバージョンであり、ドメインの一部である必要があります。ドメインアカウントからのログインを許可するようにサーバーを設定するには、次の手順のように、Classic セキュリティモデルを使用します。
- [Start] (開始) メニューを開き、[Run] (実行) を選択します。
gpedit.msc
と入力して [OK] をクリックします。- [Computer Configuration] (コンピューター設定) > [Windows Settings] (Windows 設定) > [Security Settings] (セキュリティ設定) > [Local Policies] (ローカルポリシー) > [Security Options] (セキュリティオプション) を選択します。
-
リストで [Network access: Sharing and security model for local accounts] (ネットワーク アクセス : ローカル アカウントの共有とセキュリティ モデル) を選択します。
[Network access: Sharing and security model for local accounts] (ネットワーク アクセス : ローカル アカウントの共有とセキュリティ モデル) ウィンドウが表示されます。
-
[Local Security Setting] (ローカルセキュリティ設定) セクションのドロップダウンボックスで、[Classic - local users authenticate as themselves] (クラシック - ローカル ユーザーがローカル ユーザーとして認証する) を選択します。
これにより、ドメインのローカルユーザーは、特定のサーバーで物理的にローカルでない場合でも、自分自身として認証することができます。この設定を行わない場合、ドメインの実際のユーザーであっても、リモートユーザーはすべてゲストとして認証されるので、リモート監査を実行するための十分な認証情報を持つことにはなりません。
- [OK] をクリックします。
スタンドアロンの (つまり、ドメインに属していない) Windows サーバーに、認証情報を使用したチェックで使用するための認証情報を設定するには、管理者として一意のアカウントを作成します。
このアカウントの設定をデフォルトの [Guest only: local users authenticate as guest] (Guest のみ - ローカル ユーザーが Guest として認証する) に設定しないでください。代わりに、これを [Classic: local users authenticate as themselves] (クラシック - ローカル ユーザーがローカル ユーザーとして認証する) に切り替えます。
注意: 非常によくある間違いとして、リモートでログオンして有用な操作を実行するのに十分な権限がないローカルアカウントを作成してしまうことがあります。デフォルトでは、Windows は新しいローカルアカウントがリモートでログインする場合、ゲスト権限を割り当てます。これにより、リモートの脆弱性監査が正常に実行できなくなります。もう 1 つのよくある間違いは、ゲストユーザーに付与するアクセス権限を増やすことです。これにより、Windows Server のセキュリティが低下します。
「Nessus Local Access」セキュリティグループを作成する
- Domain Controller にログインして、[Active Directory Users and Computers] (Active Directory ユーザーとコンピューター) を開きます。
- セキュリティグループを作成するには、[Action] (アクション) > [New] (新規) > [Group] (グループ) を選択します。
- グループに Nessus Local Access という名前を付けます。[Scope] (範囲) を [Global] (グローバル) に、[Type] (タイプ) を [Security] (セキュリティ) に設定します。
- Tenable Nessus Windows 認証スキャンを実行するために使用するアカウントを Tenable Nessus Local Access グループに追加します。
「Nessus Scan GPO」グループポリシーを作成する
- グループポリシー管理コンソールを開きます。
- [Group Policy Objects] (グループポリシーオブジェクト) を右クリックして、[New] (新規) を選択します。
- Nessus Scan GPO のポリシー名を入力します。
「Nessus Local Access」グループを「Nessus Scan GPO」ポリシーに追加する
- [Nessus Scan GPO Policy] (Nessus Scan GPO ポリシー) を右クリックして、[Edit] (編集) を選択します。
- [Computer configuration] (コンピューターの設定) > [Policies] (ポリシー) > [Windows Settings] (Windows の設定) > [Security Settings] (セキュリティ設定) > [Restricted Groups] (制限されたグループ) を展開します。
- [Restricted Groups] (制限されたグループ) の左側のナビゲーションバーで右クリックして、[Add Group] (グループの追加) を選択します。
- [Add Group] (グループの追加) ダイアログボックスで [browse] (参照) を選択し、Nessus Local Access と入力します。
- [Check Names] (名前の確認) を選択します。
- [OK] を 2 回クリックして、ダイアログボックスを閉じます。
- [This group is a member of:] (このグループがメンバーである) で [Add] (追加) を選択します。
- [Administrators] (管理者) グループを追加します。
- [OK] を 2 回選択します。
Tenable Nessus は、サーバーメッセージブロック (SMB) と Windows Management Instrumentation (WMI) を使用します。Windows ファイヤーウォールがシステムへのアクセスを許可していることを確認します。
Windows で WMI を許可する
- [Nessus Scan GPO Policy] (Nessus Scan GPO ポリシー) を右クリックして、[Edit] (編集) を選択します。
- [Computer configuration] (コンピューターの設定) > [Policies] (ポリシー) > [Windows Settings] (Windows の設定) > [Security Settings] (セキュリティ設定) > [Windows Firewall with Advanced Security] (Windows ファイヤーウォールの詳細設定) > [Windows Firewall with Advanced Security] (Windows ファイヤーウォールの詳細設定) > [Inbound Rules] (インバウンドルール) を展開します。
- 作業領域を右クリックして、[New Rule...] (新しいルール...) を選択します。
- [Predefined] (事前定義) オプションを選択し、ドロップダウンボックスから [Windows Management Instrumentation (WMI)] を選択します。
- [Next] (次へ) を選択します。
- 次のチェックボックスを選択します。
- Windows Management Instrumentation (ASync-In)
- Windows Management Instrumentation (WMI-In)
- Windows Management Instrumentation (DCOM-In)
- [Next] (次へ) を選択します。
- [Finish] (終了) を選択します。
ヒント: 後で作成された定義済みルールを編集し、IP アドレスとドメインユーザーによってポートへの接続を制限することで、WMI を悪用するリスクを減らすことができます。
GPO をリンクする
- グループポリシー管理コンソールで、ドメインまたは OU を右クリックし、[Link an Existing GPO] (既存の GPO をリンクする) を選択します。
- [Nessus Scan GPO] を選択します。
Windows を設定する
認証情報を使用したチェック用の適切なアカウントを作成したら、スキャンする前に、いくつかの Windows オプションを設定する必要があります。
Windows ユーザーアカウント制御 (UAC) を無効にするか、Tenable Nessus 監査を許可する特定のレジストリ設定を変更する必要があります。UAC を無効にするには、コントロールパネルを開き、[User Accounts] (ユーザーアカウント) を選択して、[Turn User Account Control] (ユーザーアカウント制御) を [Off] (オフ) に設定します。
UAC を無効にする代わりの方法として、Tenable は、LocalAccountTokenFilterPolicy という名前の新しいレジストリ DWORD を追加し、その値を 1 に設定することをお勧めします。このキーは、レジストリ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy で作成します。このレジストリ設定の詳細については、MSDN 766945 KB を参照してください。
ヒント: UAC を完全にオフにするには、[Control Panel] (コントロールパネル) を開き、[User Accounts] (ユーザーアカウント) を選択して、[Turn User Account Control to off] (ユーザーアカウント制御) をオフに設定します。または、LocalAccountTokenFilterPolicy という名前の新しいレジストリキーを追加し、その値を 1 に設定します。
このキーは、レジストリの HKLM\SOFTWARE\Microsoft\ Windows\CurrentVersion\Policies\system\LocalAccountTokenFilterPolicy で作成する必要があります。
このレジストリ設定の詳細については、MSDN 766945 KB を参照してください。Windows 7 および 8 では、UAC を無効にした場合、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System の EnableLUA も 0 に設定する必要があります。
-
[Run] (実行) プロンプトで gpedit.msc を実行して、[Group Policy Object Editor] (グループ ポリシー オブジェクト エディター) を有効にします。[Local Computer Policy] (ローカル コンピューター ポリシー) > [Administrative Templates] (管理用テンプレート) > [Network] (ネットワーク) > [Network Connections] (ネットワーク接続) > [Windows Firewall] (Windows ファイヤーウォール) > [Standard Profile] (標準プロファイル) > [Windows Firewall: Allow inbound file and printer exception] (Windows ファイヤーウォール: 着信ファイルとプリンタの共有の例外を許可する) に移動し、これを有効にします。
[Group Policy Object Editor] (グループ ポリシー オブジェクト エディター) で、[Local Computer Policy] (ローカル コンピューター ポリシー) > [Administrative Templates] (管理用テンプレート) > [Network] (ネットワーク) > [Network Connections] (ネットワーク接続) > [Prohibit use of Internet connection firewall on your DNS domain] (DNS ドメイン ネットワーク上でのインターネット接続ファイヤーウォールの使用を禁止する) に移動します。このオプションを [Disabled] (無効) または [Not Configured] (未設定) のどちらかに設定します。
- [Windows Firewall] (Windows ファイヤーウォール) > [Windows Firewall Settings] (Windows ファイヤーウォール設定) で、[File and Printer Sharing] (ファイルとプリンターの共有) を有効にします。ホストのファイヤーウォールを開き、TCP ポート 139 および 445 で Tenable Nessus から [File and Printer Sharing]p (ファイルとプリンターの共有) への接続を許可します。Tenable Nessus がホスト上で開いている任意のポートやサービスを選べるようにしたい場合は、これらのポートからもスキャナーにアクセスできる必要があります。
[Remote Registry] (リモートレジストリ) を有効にします (デフォルトでは無効)。このサービスは、単発の監査のためにその時だけ有効にすることも、頻繁な監査に対応するために常に有効にすることもできます。
注意: このオプションを有効にすると、スキャンを開始する前にリモートレジストリサービスの開始を試みるように Tenable Nessus が設定されます。
Tenable Nessus スキャンポリシーで指定する Windows 認証情報は、スキャン対象のホストでリモートレジストリサービスを開始するための管理アクセス許可を持つものでなければなりません。
サービスが (有効ではなく) 手動に設定されている場合、プラグイン ID 42897 および 42898 は、スキャンの間だけレジストリを有効にします。
AutoShareServer (Windows Server) または AutoShareWks (Windows Workstation) のいずれかを使用して、以下のデフォルトの管理共有を有効にします。
-
IPC$
-
ADMIN$
注意: Windows 10 では、ADMIN$ はデフォルトで無効になっています。他のすべてのオペレーティングシステムでは、3 つの共有はデフォルトで有効になっており、デフォルトで無効にすると別の問題が発生する可能性があります。詳細については、Windows ドキュメントの Overview of problems that may occur when administrative shares are missing (管理共有が見つからない場合に発生する可能性がある問題の概要) を参照してください。 -
C$
次の手順
-
Windows ログイン用に Tenable Nessus スキャンを設定する