知識マップ: PowerShellのセキュリティ強化 ── ログ・AMSI・言語モード・JEA

記事「PowerShellのセキュリティ強化 ── ログ・AMSI・言語モード・JEA」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、PowerShellを禁止するのではなく、可視化・迂回経路の遮断・権限の限定・実行の制限を段階的に組み合わせて安全に使う方法を扱う。スクリプトブロックログとトランスクリプションで実行内容を記録してGet-WinEventで検証し、AMSIと2.0エンジンの無効化で検査を迂回する経路を塞ぐ。トランスクリプトの集約先はOWNER RIGHTSを含むACL設計で他人の記録を守り、制約付き言語モードはWDACやAppLockerを構成した結果として初めて実効性を持つ。最後にJEAで役割機能ファイルとセッション構成ファイルを使い、仮想アカウント経由で管理者権限を配らずに操作を委任する。

PowerShellセキュリティ強化の知識マップPowerShellのログ・AMSI・言語モード・JEAによる可視化と権限委任の関係、およびトランスクリプト保護のACL設計を示す図。利用する利用するで確認できる軽減する利用する利用する利用する利用するで構成できる前提とする利用する利用する前提とする前提とする軽減する原因になり得る軽減する前提とする利用する両立しない両立しない用いるのは非推奨前提とする防止するPowerShellのセキュリティ強化JEA(Just Enough Administration)スクリプトブロックログPowerShellトランスクリプションGet-WinEventトランスクリプト共有のACL設計侵害されたアカウントによるログ改ざんOWNER RIGHTS(S-1-3-4)役割機能ファイル(.psrc)セッション構成ファイル(.pssc)仮想アカウント(RunAsVirtualAccount)JEAのTranscriptDirectoryPowerShell RemotingPowerShellの言語モード制約付き言語モード(Constrained Language Mode)App Control for Business(旧WDAC)AppLocker管理者権限の過剰付与ValidateSetによるパラメーター制限の回避JEAの引数限定ラッパー関数AMSI(Antimalware Scan Interface)Windows PowerShell 2.0エンジンPowerShellの実行ポリシー

概念間の関係(全24件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

PowerShellのセキュリティ強化
PowerShellを禁止せず、可視化・迂回経路の遮断・権限の限定・実行の制限を組み合わせて安全に使い続けるための対策全般。
JEA(Just Enough Administration)
実行できるコマンドレット・関数・外部コマンドを限定した専用のセッション構成を用意し、管理者権限を委任する範囲を絞り込むPowerShellのセキュリティ技術。
スクリプトブロックログ
PowerShellが処理する全スクリプトブロックの内容をイベントログに記録する機能。
トランスクリプト共有のACL設計
トランスクリプトの出力先共有で、利用者にはファイルの作成と自分が作ったファイルの読み書きだけを与え、削除や所有者経由の権限変更を防ぐアクセス制御の設計。
セッション構成ファイル(.pssc)
JEAにおいて、SessionType・RunAsVirtualAccount・TranscriptDirectory・RoleDefinitionsなど、セッションの構成方法と役割の割り当てを定義するファイル。
PowerShellの言語モード
セッションで使用できる言語要素の範囲を制限するPowerShellの仕組み。FullLanguage・ConstrainedLanguage・RestrictedLanguage・NoLanguageの4種類がある。
制約付き言語モード(Constrained Language Mode)
WDAC(App Control for Business)やAppLockerなど、許可リスト方式のアプリケーション制御ポリシーに合わないPowerShellスクリプトが、完全停止ではなく制限された状態で実行されるモード。.NETオブジェクトの生成が広く制限される。
役割機能ファイル(.psrc)
JEAにおいて、VisibleCmdletsやFunctionDefinitionsなどで許可する操作を宣言する定義ファイル。PowerShellモジュールのRoleCapabilitiesフォルダーに配置し、モジュールとして検出できる状態にする必要がある。
JEAの引数限定ラッパー関数
状態を変えるコマンドを直接VisibleCmdletsで公開せず、引数でしか対象を受け取らない独自関数として公開することで、パイプラインや別パラメーターセットによる制限回避を防ぐJEAの設計パターン。
Windows PowerShell 2.0エンジン
非推奨のWindows PowerShell 2.0互換実行エンジン。有効なままだと、ログもAMSIも統合されていないこのエンジンへ切り替えられる余地が残る。
PowerShellの実行ポリシー
ユーザーが意図せず危険なスクリプトを実行してしまうことを防ぐための安全機能。悪意ある操作を止めるためのセキュリティ境界ではないと公式ドキュメントが明記している。
PowerShellトランスクリプション
PowerShellセッションの入出力をテキストファイルへ記録する機能。OutputDirectoryを指定して書き込み専用の共有へ集約できる。
JEAのTranscriptDirectory
JEAセッション構成ファイルで指定する、実行内容の自動記録先フォルダー。Local Systemアカウントが書き込み、標準ユーザーはこのフォルダーへのアクセスを持たないことが求められる。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。