Windows では、過剰な権限の削除に、ユーザー アカウントおよびセキュリティ権限という 2 つの主要な側面があります。2 次的な側面もあります。
管理ユーザーとして実行しない
Enterprise Server プロセスを管理者アカウントで実行することを避けます。このアカウントには、Administrator と LOCAL_SYSTEM、および Administrators グループの他のメンバーなど、よく知られたアカウントが含まれます。
Micro Focus では、次の具体的な推奨事項を提供しています。
- Windows サービス
- Enterprise Server には Windows サービスが複数含まれています。これらのサービスは通常、LOCAL_SYSTEM アカウントで実行するようにインストールされますが、このアカウントは、特定のネットワーク リソースを除いて管理者レベルのアクセス権を持っています。トピック「攻撃対象領域の縮小」で説明したように、不要なサービスは停止して無効にする必要があります。他のサービスは、その実行専用に作成され、必要最小限の権限しか持たない個別のユーザー アカウントで実行するように再構成する必要があります。サービス アカウントは、[Services]
ユーザー インターフェイスを使用して変更できます。
Web インターフェイスは最初の攻撃ポイントになる場合が多いため、ESCWA および (UI が無効になっていない場合) MFDS などの Web インターフェイスを使用するサービスのアカウントを変更することは、特に重要です。
ESCWA または MFDS のいずれかを使用して エンタープライズ サーバー リージョン を開始する場合、すべてのリージョン プロセスが MFDS と同じアカウントで実行されます。そのため、Web インターフェイスの 1 つを使用してリージョンを開始する場合、この目的専用の非管理アカウントを作成し、そのアカウントで MFDS を実行することが特に重要です。
注: サービスを実行するために作成されたアカウントには、アカウントがローカルかドメインかによって、ローカル セキュリティ ポリシーまたはドメイン セキュリティ ポリシーを使用して、「サービスとしてログオン」権限が割り当てられている必要があります。
注: サービス設定の [デスクトップとの対話をサービスに許可] は、LOCAL_SYSTEM として実行されるサービスでのみ使用できます。この設定がない場合、エンタープライズ サーバー リージョン コンソール ウィンドウは、コマンド ラインからリージョンを起動しない限り、デスクトップに表示できません。ただし、[デスクトップとの対話をサービスに許可] 設定は、それ自体が重大なセキュリティ上の脆弱性であるため、この小さなユーザビリティの問題は許容する必要があります。
- コマンド ラインからの Enterprise Server プロセス実行
- コマンド ラインから起動されたプロセスは、開始元のシェル (Windows の cmd.exe、Powershell など) のアカウントを継承します。管理者のコマンド プロンプト ウィンドウからリージョンを開始し、ユーティリティを実行することは避けてください。
- IDE
- 多くの場合、開発者は管理者アカウントで IDE を実行しています。可能であれば、これは避けてください。ただし、Enterprise Server に関連するほとんどの IDE 操作は、すでに実行中のプロセスと対話するため、IDE が使用するアカウントは、エンタープライズ サーバー インスタンス 内部のほとんどの処理で継承されません。
追加の権限を確認する
Windows では、Administrators グループのメンバーであるかどうかに関係なく、ユーザー アカウントに追加のセキュリティ権限を割り当てることができます。これらの権限の一部は「管理者と同等」です。プロセスがこの権限を保持している場合、プロセスはそれを利用して管理者レベルのアクセスを取得できます。他の権限も、完全な権限を持つ管理者アクセスと同等でなくても、依然として危険な方法で悪用される可能性があります。
アカウントに割り当てられた権限は、ローカル セキュリティ ポリシーおよびドメイン セキュリティ ポリシーのユーザー インターフェイス (およびさまざまなスクリプト メカニズムなど) を使用して表示および変更できます。これは、Windows システム管理の標準的なタスクです。
一般的にユーザー アカウントに割り当てられ、特に機密性の高い権限には、次のものがあります。
- ファイルとディレクトリのバックアップ
- この権限を持つプロセスは、ファイルのアクセス許可をバイパスして、ファイルを読み取れます。機密データを盗み出し、パスワードの発見などに使用される可能性があります。
- シンボリック リンクの作成
- 悪用すると、たとえば、悪意のあるバージョンの DLL をプロセスに読み込ませることができます。
- プログラムのデバッグ
- 任意のプロセスへのコードの挿入および実行に使用できるため、管理者アクセス権を持つことと同等です。自分のアカウントで実行するプログラムをデバッグするためには、この権限を保持する必要はありません。そのため、開発者アカウントはこの権限を日常的に保持するべきではありません。
- デバイス ドライバーのロードとアンロード
- 任意のデバイス ドライバーをロードする機能は、攻撃者が悪意のあるデバイス ドライバー モジュールをシステムに配置できる場合、管理アクセス権を持つことに相当します。
- プロセス レベル トークンの置き換え
- 状況によっては (このプロセスと Windows セキュリティとの連携は複雑)、攻撃者が別のユーザー アカウントでプロセスを開始できる可能性があります。
- ファイルとディレクトリの復元
- この権限を持つプロセスは、ファイルのアクセス許可をバイパスして、ファイルに書き込めます。攻撃者は機密プログラム ファイルを任意のコードで上書きできるため、これは管理者レベルのアクセス権を持つことと同じです。
- ファイルとその他のオブジェクトの所有権の取得
- 所有権はオブジェクトへのフル アクセスを意味するため、この権限は管理者レベルのアクセス権を持つことと同じです。
Windows での権限の 2 次的な側面
プログラムが Windows で望ましくない操作を実行することを防ぐ方法は他にもあります。これらの方法は、管理者アクセスおよびセキュリティ権限ほど重要ではありませんが、特にセキュリティ意識の高い組織では確認することをお勧めします。
- ネットワーク ファイル共有
- Windows のファイル共有はアカウント固有です。Enterprise Server プロセスに使用するアカウントから、必要のない永続的な共有およびマウントを削除します。
- デバイスへのアクセス
- 必要でない場合は、Windows グループ ポリシーを使用して、プリンターやその他のデバイスへのアクセスを制限できます。
- プログラム パス
- 必要なディレクトリのみを含むように PATH 環境変数を設定します。脆弱性があると、攻撃者が実行中のプログラムの名前を制御できてしまう場合がありますが、そのプログラムのフル パスは制御できません。また、パス上に不必要に存在する可能性が知られているディレクトリに、攻撃者がマルウェアを配置できる場合もあります。