・コマンドラインインターフェースの悪用
情報システム開発契約のセキュリティ仕様作成のためのガイドライン
MITRE ATT&CKに基づく詳細設定対策
戦術:悪意のあるプログラムの実行 †
概説 †
OSの標準機能であるコマンドラインインターフェースを悪用することで、悪意あるプログラムを実行します。リモートデスクトップやリバースシェルセッションなどを介してローカルもしくはリモートで操作します。
コマンドラインインターフェースは、多くの場合、ログオンしているユーザーのセキュリティ権限で動作するため、ユーザーに管理者権限を与えている場合は厳重な防御が必要となります。
開発用のデバッグコマンドの一部には、外部からプログラムを読み込む機能や、ユーザーアカウント制御 (UAC) をバイパスして悪意あるプログラムを実行させることができるため、一般業務と開発業務を厳重に分離することは、リスク低減に役立ちます。
緩和の方針 †
OSの標準機能を悪用するため、完全な防御は困難な場合があります。
- 端末の利用者権限が管理者権限で実行されている場合、コマンドは特権で実行されるため、極めて危険です。このため、利用者の権限を標準ユーザーにすることは、大変効果的で、この攻撃の緩和に役立ちます。
- Windows Defenderアプリケーション制御、Windows AppLocker(要ライセンス)、などで、ホワイトリスト管理、ブラックリスト管理を実施し、不要なコマンドンの実行制御を検討します。
- アプリケーション制御が困難な場合は、ログの定期監査を実施し、不審なコマンド実行を検知します。
- 開発で使用するデバッグコマンドは、外部からコードやプログラムを読み込み実行する機能を持つものがあります。このため、これらのデバッグコマンドを利用する開発業務端末と一般業務端末のネットワーク、サーバーの論理的な分離は、拡散防止の観点から有効です。
運用やNetworkが変更された場合の影響の有無 †
重要資産を有する端末、サーバーで、管理者権限でデバッグコマンドなどが利用許可されると、マルウェアにコマンドを実行されるリスクが高まります。不用意な開発環境 (SDK) の展開を防止する必要があります。
優先すべき措置 †
- 管理者権限は極めて限定的に付与し、一般業務では標準ユーザーで運用する。
- 管理者権限が必要な場合は、Windows Defenderアプリケーション制御、もしくは AppLocker の導入の検討をする。
- コマンドライン実行ログの取得と監査を実施する。
ユーザー運用管理責任 †
リスクの受容 †
防御の方式によって実行の阻止、実行後の検知とリスクの性質が異なりますので、詳細な検討が必要です。
業務 | 特権 | リスク受容のための条件例 |
プログラム開発担当者 | Local Administrator | 侵入監視、コマンドラインログ監査、定期的なトレーニング |
Help Desk 担当者 | Domain/Local Administrator | |
システム管理者 | Enterprise/Domain/Local Administrator | |
部門管理者(OUの委任) | OUのパスワードリセット、グループ管理、ドメイン参加等 | |
役職者、研究者、秘書 | 標準ユーザー | 侵入監視、コマンドラインログ監査、定期的なトレーニング、Local Administrators に含めない |
上記以外の一般業務担当者 | 標準ユーザー | 定期的なトレーニング、Local Administrators に含めない |
啓発・教育 †
- 対象:開発者、ヘルプデスク担当者
- 開発・ヘルプデスク端末のリスクの認識、管理規程の正しい理解を求めます。
- 開発環境やSDKを端末に展開した場合は、文書化し、管理対象として監査することの重要性の理解を求めます。
- "初期侵入" から "悪意あるプログラムの実行" までの攻撃ベクターで攻撃を阻止しないと、情報窃取、送信、漏洩等のリスクが高まることを理解させます。
- 管理者権限でのインターネット接続、メール受信、添付ファイルを開くなどのリスクを正しく認識させます。
管理規定 †
以下の規程の整備を検討します。
- 開発端末、ヘルプデスク端末のログ取得及び監査規程。
情報システム設計開発部門・運用部門(ベンダー代行を含む) †
ポリシー †
以下のポリシーの適用を検討します。
モニタリング †
以下の監査の実施を検討します。
- 重要資産が保存されているサーバー、端末でのセキュリティログ Event ID 4688 等の監査。
- ホワイトリスト、ブラックリストによるアプリケーション制御を実施している場合は、違反の状況の分析を実施する。
ネットワークデザイン、アクセスコントロール、フィルタリング †
開発端末、ヘルプデスク端末と重要資産を有する端末、サーバーの厳格なセグメント分離を検討します。
以下を参考にWindows Defender アプリケーション制御 もしくは Windows AppLocker でコマンドの実行を制限します。※Windows AppLocker は Windows 10 はEnterprise Editionが必要です。
- WDAC または AppLocker のどちらを使用するかを選ぶ:https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-defender-application-control/windows-defender-application-control
- Microsoft が推奨するブロックの規則:https://docs.microsoft.com/ja-jp/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-block-rules
仮想端末運用 †
これは将来のためのプレースフォルダーです。
ゲートウェイ及びエンドポイント対策 †
Endpoint Detection and Response もしくは、侵入検知システムの導入を検討してください。
受託開発ベンダー管理責任 †
セキュアコーディング †
Task Scheduler の設定や、プログラムや子プロセスの実行権限については文書化してユーザーと共有します。この際、最小特権原則で実行されているかを明確にしてください。
開発環境管理 †
ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じます。 例外はすべて文書化し、適切な監査を実施します。
サプライチェーン正常性維持 †
ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じます。 例外はすべて文書化し、適切な監査を実施します。