・認証情報のダンプ
情報システム開発契約のセキュリティ仕様作成のためのガイドライン
MITRE ATT&CKに基づく詳細設定対策
戦術:認証情報アクセス †
- MITRE ATT&CK
概説 †
認証情報のダンプは、OSに保存されているアカウントのIDとパスワードを取得するプロセスです。その後、窃取した資格情報を利用して、情報の収集や水平展開を図ります。このため、認証情報のダンプを阻止することは、被害の拡大を防ぐ重要なポイントとなります。
認証情報はOSによってHashされ安全な状態で保管され、AdministratorやSYSTEM権限でアクセスされますので、一般的な標準ユーザー権限でログオンしている状態では脆弱性がない限り、悪意あるプログラム(マルウェア)は、認証情報にアクセスできません。しかし、Administrator権限でログオン中に悪意あるプログラムの実行を招くと、認証情報のアクセスを許してしまうこととなります。
MITRE ATT&CKでは、主にWindowsからの認証情報の窃取にフォーカスしていますが、これ以外にも、DBへの接続情報やアプリケーションの認証情報などが探索される可能性もあることから、本項では、セキュアコーディングで注意事項を加えてあります。
緩和の方針 †
認証情報の窃取は管理者権限が必要なため、利用者の権限を標準ユーザーにすることは大変効果的で、この攻撃の緩和に役立ちます。管理者に対しては、厳重な保護が必要です。システム管理者、もしくは管理者特権が必要な業務には多角的な防御を検討します。
運用やNetworkが変更された場合の影響の有無 †
- 意図しない管理者権限でのアプリケーションのインストールや、電子メール、Webサイトの閲覧は悪意あるプログラムに高位の権限を与えるため、十分な管理が必要です。
優先すべき措置 †
多角的な防御が必要です。以下のすべての措置を優先的に検討して下さい。
- 一般業務
- 標準ユーザーでの運用とする。
- システム管理者、もしくは管理者特権が必要な業務
- 多要素認証の導入を検討する。
- 重要な情報資産を有する端末、サーバー、それらの管理用端末へはハードウェアトークンの導入を検討する。
- Windows Defender Credential Guard の導入を検討する。
- Protected Users のグループメンバーに追加し、資格情報のキャッシュを禁止する。但し、NTLM認証が無効となるため、適用においては十分なテストを行う。
- オフラインサインインはサポートされなくなる。
- IPアドレスを指定してログオンすることはできなくなる。
- https://docs.microsoft.com/ja-jp/windows-server/security/credentials-protection-and-management/protected-users-security-group
- https://msrc-blog.microsoft.com/2014/06/05/an-overview-of-kb2871997/
- ローカル Administrators
- ドメインユーザーはローカル Administratorsのメンバーから除外する。
- ローカル Administrators のメンバーを監査する。
- LAPSの導入を検討する。
- 管理者端末、重要資産を有する端末、メンバーサーバー、ドメインコントローラー
- WDigest認証の無効化と監査を行う。
- その他の事項
- 互換性維持のための弱いハッシュ、暗号方式、平文パスワードの使用を禁止する。
- LSASSプロセスを保護する。 「26.7.3ネットワークデザイン、アクセスコントロール 、フィルタリング」を参照。
ユーザー運用管理責任 †
リスクの受容 †
優先すべき措置を講じることができない場合、このリスクの回避は困難です。慎重な検討を行ってください。
業務 | 特権 | リスク受容のための条件例 |
すべて | Local Administrator | LAPSを導入し、すべての端末、サーバーのLocal Administratorのパスワードをユニークにする。ドメインユーザーはLocal Administrators から除外する。 |
プログラム開発担当者 | Local Administrator | Windows Defender Credential Guardの導入。多要素認証の導入。Protected Usersグループへの参加。Digest認証の無効化と監査。定期的なトレーニング。 |
Help Desk 担当者 | Domain/Local Administrator | |
システム管理者 | Enterprise/Domain/Local Administrator | |
部門管理者(OUの委任) | OUのパスワードリセット、グループ管理、ドメイン参加等 | |
役職者、研究者、秘書 | 標準ユーザー | 標準ユーザーでの運用。Local Administrators に含めない。 |
上記以外の一般業務担当者 | 標準ユーザー |
Windows Defender Credential Guard はWindows 10 Enterprise Editionが必要ですが、Windows Defender Credential Guard は管理者特権のWindows で実行されるマルウェアに対して、仮想化ベースのセキュリティで資格情報を保護するため、リスク受容に対しては有効な手段といえます。
啓発・教育 †
- 対象:システム管理者
- 認証情報のダンププロセスと攻撃プロセスを理解させるとともに、管理者の認証情報の適切な保護や、運用について検討する。
管理規程 †
以下の規程の整備を検討します。
- ローカル Administrator 権限を有するドメインユーザーの管理規程。
情報システム設計開発部門・運用部門(ベンダー代行を含む) †
ポリシー †
以下のポリシーの適用を検討します。
- ローカルAdministratorの無効化する。Windows 10、Windows Server 2016以降ではDefaultでローカルAdministratorは無効になっているが、Windows 8.1、Windows Server 2012R2以前は有効となっている。グループポリシーで以下の設定を行う。
[コンピュータの構成]>[Windowsの設定]>[セキュリティの設定]>[ローカルポリシー]>[セキュリティオプション]>[アカウント: Administrator アカウントの状態] を [無効] に設定する。
なお、ビルトインローカルAdministratorを有効にし、AdministratorのIDを変更する方法があるが、ローカルのAdministratorの識別子(Security Identifier:SID)は変更されず、SIDが公知の情報なため、攻撃側からは容易にIDを特定できる。このため、他のIDに設定する方法は推奨しない。 - LSASSプロセスを保護します。 資格情報を管理するLSASSプロセスへの攻撃を防御する。 [グループポリシー]-[コンピュータの構成]-[基本設定]-[Windowsの設定]-[レジストリ] で [\HKLM\SYSTEM\CurrentControlSet\Control\Lsa] に値を新規に設定 する。
- WDigest認証プロトコルを無効化する。
[コンピュータの構成]>[ポリシー]>[Windows の設定]>[管理用テンプレート]>[MS Security Guide] を [無効] に設定する。(13.8・L1 MS Security Guide を参照。) - MITRE ATT&CKの緩和策では、Protected Users や NTLM認証の無効が提案されているが、特に、NTLMの無効化は広範な影響が出るため、慎重なテストを実施する。
モニタリング †
以下の監査を検討して下さい。
- 管理者端末、重要資産を有する端末、メンバーサーバー、ドメインコントローラー
- 「17章・コマンドラインインターフェースの悪用」、「18章・PowerShellの悪用」を参照し、監査を実施する。
- セキュリティイベントログ Evenmt ID 4624 でWDigestのプロセスの使用を監査する。存在する場合は、侵害が疑われるため、専門家の助言を得る。
- ログオンプロセス:WDigest
- 認証パッケージ:WDigest
- ドメインコントローラー
- セキュリティイベントログ:イベントEvent ID 4776 でWDigestパッケージの使用を監査する。存在する場合は、侵害が疑われるため、専門家の助言を得る。
- 認証パッケージ:WDigest
- セキュリティイベントログ:イベントEvent ID 4776 でWDigestパッケージの使用を監査する。存在する場合は、侵害が疑われるため、専門家の助言を得る。
- Protected User
- [イベントログ]-[アプリケーションとサービスログ]-[Microsoft]-[Windows]-[Authentication]-[PrtectedUsersFailures-DomainController] のログを有効化する。
ホスト名を使用せず明示的にIPアドレスを指定してアクセスした場合、WindowsはKerberos認証を試行せず、NTLM認証にフォールバックされる。このようなNTLM認証、AES以外の暗号を使用したKerberos認証が存在する場合、侵害が疑われるため、専門家の助言を得る。- 100 NLTM usage attempted.
- 104 DES or RC4 attempted for Kerberos Authentication
- [イベントログ]-[アプリケーションとサービスログ]-[Microsoft]-[Windows]-[Authentication]-[PrtectedUsersFailures-DomainController] のログを有効化する。
ネットワークデザイン、アクセスコントロール、フィルタリング †
以下の設定を検討して下さい。
- クレデンシャルガードを導入し、資格情報を仮想化ベースのセキュリティ で保護する。
Windows Defender Credential Guard の要件:https://docs.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/credential-guard-requirements
†
該当しません。
仮想端末運用 †
該当しません。
ゲートウェイ及びエンドポイント対策 †
侵入検知システム、Endpoint Detection and Responseの導入を検討します。
受託開発ベンダー管理責任 †
セキュアコーディング †
以下を開発規約とすることを検討して下さい。
- 特権が必要なサービスに対する認証を行う場合は、システムの認証ダイアログ(またはOSが提供する仕組み)を使用する。
- アプリケーション自身に認証情報等をハードコーディングしてはならない。app.configなどに認証情報や接続文字列を記述する場合は、暗号化を行う。(必須)
- プレーンテキストで認証情報をメモリ、ディスクに格納する事を禁止する。(必須)
- 物理メモリから機密情報がスワップされディスクに書き出されないようにする。(推奨:権限によりロックできない場合がある。)
- JPCERT/CC Java コーディングスタンダード MSC03-J. センシティブな情報をハードコードしない を参照してください。
- JPCERT/CC CERT C コーディングスタンダード MSC18-C. プログラムコードの中でパスワードなどの機密情報を扱うときは注意する を参照してください。
開発環境管理 †
- ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。
サプライチェーン正常性維持" †
- ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。