はじめに
Microsoftは、Windows PowerShell 5.1 において、Invoke-WebRequest コマンドレットを使用してWebコンテンツをダウンロードする際にセキュリティ警告が表示される新機能を導入しました。この変更は、潜在的に危険なコードの実行を防ぐことを目的としています。
脆弱性の背景と目的
この警告機能の追加は、深刻度の高いPowerShellリモートコード実行の脆弱性(CVE-2025-54100)を軽減するためのものです。この脆弱性は主に、自動化のためにPowerShellスクリプトを使用する企業やIT管理環境に影響を与えます。
警告の詳細とユーザーの選択肢
PowerShell 7で利用可能な安全なWeb解析プロセスをPowerShell 5.1にも適用するために設計されたこの警告は、WebページをInvoke-WebRequestでダウンロードする際に、Webページ内のスクリプトがシステム上で実行される可能性があることをユーザーに通知します。
具体的な警告プロンプトは以下の通りです:
- 「Security Warning: Script Execution Risk」:
Invoke-WebRequestがWebページの内容を解析し、その際にスクリプトコードが実行される可能性があることを警告します。 - 推奨される対処法:スクリプトコードの実行を避けるために、
-UseBasicParsingスイッチの使用が推奨されます。 - ユーザーの選択:ユーザーは操作を続行するかキャンセルするかを選択する必要があります。デフォルトでは、操作はキャンセルされ、PowerShellはより安全な処理のために
-UseBasicParsingパラメーターを指定してコマンドを再実行することを提案します。 - 「Yes」を選択した場合:PowerShellは古い方法(フルHTML解析)でページを解析し、コンテンツと埋め込みスクリプトが以前と同様に読み込まれることを意味します。これはリスクを受け入れることになります。
IT管理者への影響と推奨される対策
KB5074204のアップデートをインストールした後、IT管理者はスクリプトコード実行リスクを警告する確認プロンプトに遭遇します。自動化スクリプトが手動確認によって停止しないように、管理者はスクリプトを更新し、-UseBasicParsing安全パラメーターを明示的に使用することが推奨されます。
また、PowerShellではcurlコマンドがInvoke-WebRequestコマンドレットのエイリアスであるため、curlコマンドを呼び出すスクリプトでも同様の新しい警告が表示されます。
変更が不要なケース
Microsoftは、「ほとんどのPowerShellスクリプトおよびInvoke-WebRequestコマンドを使用するコマンドは、ほとんど、または全く変更なしに機能し続けるでしょう」と述べています。例えば、コンテンツをダウンロードするだけ、またはレスポンスボディをテキストやデータとして扱うスクリプトは影響を受けず、変更は必要ありません。
まとめ
このセキュリティ警告機能の追加は、PowerShellスクリプトのセキュリティを強化し、ユーザーがより安全にWebコンテンツを操作できるよう支援する重要な一歩です。IT管理者は、システムのセキュリティを確保し、自動化されたワークフローの中断を避けるために、推奨される対策を講じる必要があります。
