・悪意あるスクリプティングの実行
情報システム開発契約のセキュリティ仕様作成のためのガイドライン
MITRE ATT&CKに基づく詳細設定対策
戦術:悪意あるプログラムの実行、永続化、防御の回避 †
- MITRE ATT&CK
概説 †
Windowsの場合は、VBScript、PowerShell、コマンドラインバッチがスクリプティングに該当します。また、開発環境やサーバーでは、Python、JavaScript/JScriptも該当します。それぞれ、コマンドの実行や条件判断が可能で、複雑な管理処理を容易にするためのOSの標準的なプログラミング機能ともいえます。
脅威の多くは、Word、Excelなどのデスクトップアプリケーションで利用が可能なVisual Basic for Application (VBA)や、VBScriptを初期の侵入に使い、侵入に成功すると、PowerShellやコマンドラインインターフェースを使用して、マルウェア本体のダウンロードや情報の収集、水平展開を図ります。
緩和の方針 †
スクリプトが必要な端末を特定し、電子署名されたスクリプトのみ実行許可とします。もしくはAppLockerによるスクリプト制御を検討します。但し、スクリプトを使ったファームアップデートなどがあることから注意が必要です。
VBAが不要な端末には Office のグループポリシーでVBAの実行を Default で禁止設定し、必要な端末では電子署名されたVBAのみ実行許可とし、全端末で保護されたビューを有効にします。
運用やNetworkが変更された場合の影響の有無 †
- 文書化されていない端末でスクリプトの実行が許可されると、検知が困難になりリスクが高くなります。新たにスクリプトを許可する場合は、必ず文書を改訂し、監査対象とする必要があります。
優先すべき措置 †
以下の措置を優先します。
- Windowsの場合、VBA、PowerShellに電子署名を実施し、電子署名された Script だけを実行許可します。電子署名証明書は秘密鍵のエクスポートが出来ないように設定します。
- アジャイル開発等で電子証明書の導入、設定が困難な場合は、AppLocker の導入を検討します。
- 端末の特定と文書化、ログ監査を実施します。
ユーザー運用管理責任 †
リスクの受容 †
一般的にスクリプトはOSの標準機能のため、動作を完全に停止することが困難な場合があります。スクリプトを実行する端末、サーバーから重要資産を移動した上で、この脅威を受容し、他の防御方法を検討します。
業務 | 特権 | リスク受容のための条件例 |
プログラム開発担当者 | Local Administrator | スクリプトへの署名。ドメインコントローラー、メンバーサーバー、担当者端末のスクリプト実行のログ監査。 |
Help Desk 担当者 | Domain/Local Administrator | |
システム管理者 | Enterprise/Domain/Local Administrator | |
部門管理者(OUの委任) | OUのパスワードリセット、セキュリティグループ管理、ドメイン参加等 | |
VBAを利用する業務担当者 | 標準ユーザー | スクリプトへの署名、担当者端末のスクリプト実行ログの監査。Local Administrators に含めない。 |
役職者、研究者、秘書 | 標準ユーザー | Local Administrators に含めない。 |
上記以外の一般業務担当者 | 標準ユーザー | Local Administrators に含めない。 |
啓発・教育 †
- 対象:すべての端末利用者
- インターネットからダウンロードした、もしくは、電子メールに添付された Office 文書、PDF は保護されたビューで閲覧するようにし、編集・印刷する際は、信頼できるダウンロード先か、信頼できる送信元かを確認した上で編集・印刷するように理解を求めます。
- 対象:Office VBA利用者
- マクロの実行許可された端末はマルウェア攻撃の可能性が高いことを理解させます。
- マクロファイル利用中の電子メール、Web閲覧のリスクを理解させます。
- 署名が出来ない場合は、通常はマクロの実行を禁止しておき、マクロ付きファイルを開く際にマクロ実行を許可し、処理が終了したら、マクロの実行を禁止するバッチファイルの作成、利用を義務付け、もしくは代替措置を講じます。
管理規程 †
以下の規定の整備を検討します。
- 管理上、スクリプティングが必要な端末、サーバーの監査規程。
- 電子署名用証明書の管理規程。
情報システム設計開発部門・運用部門(ベンダー代行を含む) †
ポリシー †
以下のポリシー設定を検討して下さい。
- [17章・コマンドラインインターフェースの悪用]、[18章・PowerShellの悪用] を参考にして、コマンド、スクリプト実行のログ取得を設定する。
- Office マクロの影響 を参考にして、VBA使用が必要な端末の制御設定をする。
モニタリング †
20.7.2 モニタリング 以下の監査の実施を検討します。
- コマンドラインインターフェースの監査
- 前項のポリシーを設定の上、[イベントビューアー]-[Windowsログ]-[セキュリティ]-[Event ID 4688] を検索し、不審な msinfo32、systeminfo等の実行を監査します。なお、上記コマンドをPowerShellで実行しても、セキュリティログに記録されます。
- PowerShellスクリプトの監査
- [イベントビューアー]-[アプリケーションとサービスログ]-[Microsoft]-[Windows]-[PowerShell/Operational] で不審なスクリプトの実行を監査します。
ネットワークデザイン、アクセスコントロール、フィルタリング †
攻撃者はメールやWebサイトを通じて、悪意あるスクリプトをダウンロードすることから、重要資産が保存されている端末、サーバーのネットワーク分離と電子メール、Web接続の禁止を検討します。
以下のアクセスコントロールを検討します。
- PowerShell ・PowerShellの悪用 の設定を検討します。
- Windows Script Hostの制御設定 の設定を検討します。
本設定は、JScript、VBScript のホストエンジンである、Windows Script Host の動作設定を停止もしくは署名されたスクリプトのみ許可にするため、WSHを活用しているシステムの場合、運用に影響を及ぼします。
仮想端末運用 †
これは将来のためのプレースフォルダーです。
エンドポイント対策 †
アンチウイルスソフトのパターンファイルの日次更新、クイックスキャンの日次実施、完全スキャンの週次実施をします。
Endpoint Detection and Response もしくは、侵入検知システムの導入を検討してください。
受託開発ベンダー管理責任 †
セキュアコーディング †
スクリプトへの署名を実施します。
開発環境管理 †
ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じます。 例外はすべて文書化し、適切な監査を実施します。
サプライチェーン正常性維持" †
ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じます。 例外はすべて文書化し、適切な監査を実施します。