Windows PowerShell と AppLocker を確認する
Windows PowerShell スクリプト実行ポリシーは経験の浅いユーザー向けにセーフティ ネットを提供しますが、あまり柔軟ではありません。 実行ポリシーを設定するとき、スクリプトがダウンロードされたことと署名されていることのみ確認できます。
Windows PowerShell スクリプトの使用を制御する別の方法として、AppLocker があります。 AppLocker を使用すると、特定のスクリプトまたは特定の場所でのスクリプトの実行を制限するさまざまな制約を設定できます。 また、 AllSigned 実行ポリシーとは異なり、AppLocker では、特定の発行元のみが署名するスクリプトを許可できます。
Windows PowerShell 5.0 では、AppLocker を使用してスクリプトをセキュリティで保護するための新しいレベルのセキュリティが追加されました。 デバッグなどの目的のためにスクリプトが対話型プロンプトで停止する場合、対話型プロンプトに入力されるコマンドも制限できます。 許可モードの AppLocker ポリシーが検出されると、スクリプトの実行時の対話型プロンプトは ConstrainedLanguage モードに制限されます。
ConstrainedLanguage モードでは、スクリプトコンストラクトなど、すべての主要な Windows PowerShell 機能を使用できます。 Windows に含まれるモジュールを読み込むこともできます。 ただし、任意のコードの実行と、Microsoft .NET オブジェクトへのアクセスにアクセスは制限されます。 ConstrainedLanguage モードは、攻撃者が未承認のコードを実行するために使用できるベクターの 1 つをブロックします。
追加の読書:ConstrainedLanguage モードの詳細については、Windows PowerShell ヘルプのAbout Language Modesまたはabout_Language_Modesを参照してください。