トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

・PowerShellの悪用 のバックアップ(No.11)


IPAセキュリティPT評価版?

戦術

  • 悪意あるプログラムの実行

対象OS

  • Windows

概説

Windowsの設定管理を行うスクリプト言語であるPowerShellを悪用し、悪意あるプログラム(マルウェア)を実行します。PowerShell は、Windows の API にアクセス可能であり、インターネットアクセスなどの機能も提供されているため、攻撃の中核となるテクノロジーともいえます。そのため、外部との通信(新たなプログラムのダウンロード)や端末情報や認証情報の窃取など、多種多様なコマンドの実行が考えられます。
スクリプトは難読化されることが多く、侵入検知システムやアンチウイルスでの検知が困難な場合があり注意が必要です。
DefaultではPowerShellの実行は無効に制限されていますが、実行が有効となっている端末では攻撃を受ける可能性が高く、慎重な運用が必要です。
また、制限設定を回避する手法も多数研究されていることから、緩和策設定後も、定期的に新たなバイパス手法の情報入手と対策を講じる必要があります。

緩和の方針

  • さまざまな緩和策に対して、それをバイパスする方法が研究されています。完全な防御は困難ですが、多角的な緩和は必要です。
  • 古いバージョンである PowerShell2.0 は、ログ機能などのセキュリティ機能がないため削除します。
  • PowerShellを使用しない端末では、PowerShellスクリプトを無効(Default)にすることで、マルウェアによるPowerShellの悪用を緩和できます。但し、バイパス手法があるので、完全ではありません。
  • PowerShellが許可された端末、サーバーでは、署名付きPowerShellスクリプトのみ実行許可とする、もしくは AppLocker 等でのホワイトリストを導入し、文書化して定期的に監査を実施し、マルウェアの検出をするなどが有効です。
  • PowerShellが許可された端末では、電子メールやWebサイトの閲覧の禁止によるマルウェアの初期侵入の防止運用や、PowerShellの悪用を防ぐ運用も検討します。

運用やNetworkが変更された場合の影響の有無

  • PowerShellの実行が有効とした端末では、メール添付のファイルの実行、Webサイトの閲覧などで、悪意あるプログラムの実行のリスクが高まります。

優先すべき措置

  • 役割と機能の削除ウィザードで Windows PowerShell 2.0 エンジン を削除します。
  • PowerShellスクリプトの実行可能端末・サーバーを限定し、その他はグループポリシーでPowerShellスクリプトの実行を禁止します。
  • 管理上、PowerShellを必要とするサーバー、端末のログの取得と監査を実施します。AppLocker もしくは、Windows Defender アプリケーション制御によるスクリプト制御の併用も検討します。
    • powershell.exe、powershell_ise.exe (32bit, 64bit)
    • System.Management.Automation.dll (32bit, 64bit)
    • System.Management.Automation.ni.dll (32bit, 64bit)
  • WinRMサービスを無効化/制限して、リモート実行でPowerShellが使用されないようにします。

ユーザー運用管理責任

リスクの受容

PowerShellスクリプトの実行可能端末・サーバーは、設定されたセキュリティポリシーだけでなく、端末・サーバーのネットワーク構成、運用方法によって影響が異なるため、慎重なリスクの見極めが必要です。

  • ドメインコントローラー、DHCPサーバー、開発用端末、管理用端末
    これらはシステム設定管理上、PowerShell は必須といえます。従って、ホワイトリストの導入、PowerShell スクリプトの署名やログ監査による早期検出でのリスク受容を検討します。
  • アプリケーションサーバー、ファイルサーバー、業務端末
    これらは PowerShell は必須といえないので、AppLocker等での実行制御をするか、Office VBA(マクロ)の厳格運用とVBScript の運用停止による攻撃ベクトルの遮断とログ監査による早期検出でリスク受容することが考えられます。
    実行ポリシー署名付き署名なし ローカル署名なし 非ローカル概要
    Restricted×××全てのスクリプトが実行禁止。PowerShellまたはWindows OSインストール直後のデフォルト設定(Windows Server 2012 R2を除く)
    AllSigned××署名されているスクリプトのみが実行可能。署名されていないスクリプトは実行禁止
    RemoteSigned×ローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能。Windows Server 2012 R2では、この設定がデフォルト
    Unrestricted全てのスクリプトが実行可能。ただしインターネットからダウンロードしたスクリプトは、実行するかどうかが確認されるので、ユーザーが明示的に許可した場合のみ実行される
    Bypass警告やユーザーへの確認なしに、全てのスクリプトが実行可能

  • atmarkIT WindowsでPowerShellスクリプトの実行セキュリティポリシーを変更する:
    https://www.atmarkit.co.jp/ait/articles/0805/16/news139.html

啓発・教育

該当なし。

利用規定

管理上、PowerShellが必要な端末、サーバーの文書化及び監査規程。

情報システム設計開発部門・運用部門(ベンダー代行を含む)

ポリシー

モニタリング

NWデザイン

該当なし。

アクセスコントロール

  • AppLocker でpowershell.exe、powershell_ise.exe の実行を制限する。※Windows 10 はEnterprise Editionが必要。
    ただし、PowerShell without PowerShell などの Bypass 方法が研究されているため、これに限ったものではありません。

フィルタリング

該当なし。

ロール運用

PowerShellスクリプトブロックのログの有効化。

仮想端末運用

該当なし。

エンドポイント対策

Endpoint Detection and Response もしくは、侵入検知システムの導入を検討してください。

受託開発ベンダー管理責任

セキュアコーディング

作成したPowerShellスクリプトへのタイムスタンプ付き署名の実施。
実行運用環境に限定した実行ポリシーの適用(対象端末・サーバーはAllSigned、対象外はRestricted)。

開発環境管理

ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。

サプライチェーン正常性維持"

ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。