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

・認証情報のダンプ のバックアップの現在との差分(No.12)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2020-03-26T14:26:31+09:00","default:hagiken","hagiken")
[[情報システム開発契約のセキュリティ仕様作成のためのガイドライン(案)]]~
[[MITRE ATT&CKによる設定対策(絞り込み済み)>情報システム開発契約のセキュリティ仕様作成のためのガイドライン(案)#s054f661]]
#freeze
#author("2020-11-07T15:27:05+09:00","","")
[[情報システム開発契約のセキュリティ仕様作成のためのガイドライン]]~
[[MITRE ATT&CKに基づく詳細設定対策]]

*認証方法のダンプ [#v7b081e3]
*戦術:認証情報アクセス [#w019e58a]

**戦術 [#ddd263bf]
認証情報アクセス
-MITRE ATT&CK
--[[T1003.001 OS Credential Dumping: LSASS Memory>https://attack.mitre.org/techniques/T1003/001]]
--[[T1003.002 OS Credential Dumping: Security Account Manager>https://attack.mitre.org/techniques/T1003/002]]
--[[T1003.003 OS Credential Dumping: NTDS>https://attack.mitre.org/techniques/T1003/003]]
--[[T1003.004 OS Credential Dumping: LSA Secrets>https://attack.mitre.org/techniques/T1003/004]]
--[[T1003.005 OS Credential Dumping: Cached Domain Credentials>https://attack.mitre.org/techniques/T1003/005]]
--[[T1003.006 OS Credential Dumping: DCSync>https://attack.mitre.org/techniques/T1003/006]]

**必要なアクセス許可 [#la04e9dd]
-Administrator
-SYSTEM

**概説 [#o554df20]

*概説 [#o554df20]
認証情報のダンプは、OSに保存されているアカウントのIDとパスワードを取得するプロセスです。その後、窃取した資格情報を利用して、情報の収集や水平展開を図ります。このため、認証情報のダンプを阻止することは、被害の拡大を防ぐ重要なポイントとなります。~
認証情報はOSによってHashされ安全な状態で保管され、AdministratorやSYSTEM権限でアクセスされますので、一般的な標準ユーザーの場合は安全といえます。しかし、Administrator権限でログオン中に悪意あるプログラムの実行を招くと、認証情報のアクセスを許してしまうこととなります。
認証情報はOSによってHashされ安全な状態で保管され、AdministratorやSYSTEM権限でアクセスされますので、一般的な標準ユーザー権限でログオンしている状態では脆弱性がない限り、悪意あるプログラム(マルウェア)は、認証情報にアクセスできません。しかし、Administrator権限でログオン中に悪意あるプログラムの実行を招くと、認証情報のアクセスを許してしまうこととなります。~
MITRE ATT&CKでは、主にWindowsからの認証情報の窃取にフォーカスしていますが、これ以外にも、DBへの接続情報やアプリケーションの認証情報などが探索される可能性もあることから、本項では、セキュアコーディングで注意事項を加えてあります。

**緩和の方針 [#nb3d986a]
-認証情報の窃取は管理者特権が必要なため、端末の利用者の権限が管理者権限である場合、極めて危険です。このため、利用者の権限を標準ユーザーにすることは、大変効果的で、この攻撃の緩和に役立ちます。
-システム管理者は多要素認証を導入します。

**運用やNetworkが変更された場合の影響の有無 [#d7797d83]
*緩和の方針 [#nb3d986a]
認証情報の窃取は管理者権限が必要なため、利用者の権限を標準ユーザーにすることは大変効果的で、この攻撃の緩和に役立ちます。管理者に対しては、厳重な保護が必要です。システム管理者、もしくは管理者特権が必要な業務には多角的な防御を検討します。

*運用やNetworkが変更された場合の影響の有無 [#d7797d83]
-意図しない管理者権限でのアプリケーションのインストールや、電子メール、Webサイトの閲覧は悪意あるプログラムに高位の権限を与えるため、十分な管理が必要です。


**優先すべき措置 [#yca3f50a]
***Windows [#nae0d92b]
-システム管理者は多要素認証を導入します。
--重要な情報資産を有する端末、サーバー、それらの管理用端末へはハードウェアトークンの導入を検討します。
-ローカル Administrators にドメインユーザーを追加しないでください。
-ローカル Administrator 権限を有するユーザーを監査します。~
-互換性維持のための弱いハッシュ、暗号方式、平文パスワードの使用を禁止します。~
-LSASSプロセスを保護します。 [[アクセスコントロールを参照してください。>#acdc3948]]
--追加の LSA の保護の構成: https://docs.microsoft.com/ja-jp/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection
-Windows Defender Credential Guard の採用の検討。
*優先すべき措置 [#yca3f50a]
多角的な防御が必要です。以下のすべての措置を優先的に検討して下さい。
-一般業務
--標準ユーザーでの運用とする。
-システム管理者、もしくは管理者特権が必要な業務
--多要素認証の導入を検討する。
--重要な情報資産を有する端末、サーバー、それらの管理用端末へはハードウェアトークンの導入を検討する。
--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ネットワークデザイン、アクセスコントロール 、フィルタリング」を参照。 

**ユーザー運用管理責任 [#va91f9ce]
***リスクの受容 [#i5c77ff0]
-優先すべき措置を講じることができない場合、このリスクは回避が困難になり、他の緩和策も代替になるとはいえないため、慎重な検討が必要です。

***啓発・教育 [#j172e3b9]
-システム管理者に対して、認証情報のダンププロセスと攻撃プロセスを理解させるとともに、管理者の認証情報の適切な運用について討議させる。
*ユーザー運用管理責任 [#va91f9ce]
**リスクの受容 [#i5c77ff0]
優先すべき措置を講じることができない場合、このリスクの回避は困難です。慎重な検討を行ってください。
|180|||c
|COLOR(WHITE):BGCOLOR(#44546A):CENTER:業務|COLOR(WHITE):BGCOLOR(#44546A):CENTER:特権|COLOR(WHITE):BGCOLOR(#44546A):CENTER:リスク受容のための条件例|h
|すべて|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 に含めない。|
|上記以外の一般業務担当者|標準ユーザー|~|

***利用規定 [#u3a821ac]
Windows Defender Credential Guard はWindows 10 Enterprise Editionが必要ですが、Windows Defender Credential Guard は管理者特権のWindows で実行されるマルウェアに対して、仮想化ベースのセキュリティで資格情報を保護するため、リスク受容に対しては有効な手段といえます。

**啓発・教育 [#j172e3b9]
-対象:システム管理者
--認証情報のダンププロセスと攻撃プロセスを理解させるとともに、管理者の認証情報の適切な保護や、運用について検討する。

**管理規程 [#u3a821ac]
以下の規程の整備を検討します。
-ローカル Administrator 権限を有するドメインユーザーの管理規程。

**情報システム設計開発部門・運用部門(ベンダー代行を含む) [#d7aa44ed]
***NWデザイン [#xa511562]
-該当なし。
*情報システム設計開発部門・運用部門(ベンダー代行を含む) [#d7aa44ed]
**ポリシー [#w891d435]
以下のポリシーの適用を検討します。~
+ローカル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の無効化は広範な影響が出るため、慎重なテストを実施する。


***アクセスコントロール [#acdc3948]
+ローカルAdministratorの無効化をします。ローカルAdministratorsにドメインユーザーが登録されている場合は削除します。(ダンプが成功した場合、水平展開されます。)
+ローカルポリシーの設定で、ビルトインローカルAdministrator (既定:無効)を有効にしている場合は、推測が困難な他のIDに変更します。~
[コンピュータの構成]-[ポリシー]-[Windowsの設定]-[セキュリティの設定]-[ローカルポリシー]-[セキュリティオプション]-[アカウント:Administrator アカウント名の変更]-[このポリシーの設定を定義する]を有効にし新しいIDを設定する。~
この場合、[アカウント:Administrator アカウントの状態]が有効であることを確認する。
+LSASSプロセスを保護します。
資格情報を管理するLSASSプロセスへの攻撃を防御します。[グループポリシー]-[コンピュータの構成]-[基本設定]-[Windowsの設定]-[レジストリ] で [\HKLM\SYSTEM\CurrentControlSet\Control\Lsa] に値を新規に設定する。
https://docs.microsoft.com/ja-jp/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection#BKMK_HowToConfigure
+ドメインユーザーをローカルAdministratorグループから外す
ローカルのAdministratorグループに所属しているドメインユーザーをすべて削除します。
+クレデンシャルガードの導入(Windows 10 のEditionによって機能制限があります)
Windows Defender Credential Guard の要件:https://docs.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/credential-guard-requirements
**モニタリング [#p8566d98]
以下の監査を検討して下さい。
-管理者端末、重要資産を有する端末、メンバーサーバー、ドメインコントローラー
--「17章・コマンドラインインターフェースの悪用」、「18章・PowerShellの悪用」を参照し、監査を実施する。
--セキュリティイベントログ Evenmt ID 4624  でWDigestのプロセスの使用を監査する。存在する場合は、侵害が疑われるため、専門家の助言を得る。
---ログオンプロセス:WDigest
---認証パッケージ:WDigest
-ドメインコントローラー
--セキュリティイベントログ:イベントEvent ID 4776  でWDigestパッケージの使用を監査する。存在する場合は、侵害が疑われるため、専門家の助言を得る。
---認証パッケージ: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

***フィルタリング [#qb09dce7]
-該当なし。

***ロール運用 [#f7ac4db5]
-管理者権限の付与を最小限にします。


***仮想端末運用 [#e870d281]
-該当なし。
**ネットワークデザイン、アクセスコントロール、フィルタリング [#xa511562]
以下の設定を検討して下さい。
-クレデンシャルガードを導入し、資格情報を仮想化ベースのセキュリティ で保護する。~
>Windows Defender Credential Guard の要件:https://docs.microsoft.com/ja-jp/windows/security/identity-protection/credential-guard/credential-guard-requirements

***エンドポイント対策 [#s86d385a]
-アンチウイルス もしくは Endpoint Detection and Response でツールの検出が期待できます。
** [#qb09dce7]
該当しません。

**受託開発ベンダー管理責任 [#uc37b2dd]
***セキュアコーディング [#mfb95ce5]
**仮想端末運用 [#e870d281]
該当しません。

**ゲートウェイ及びエンドポイント対策 [#s86d385a]
侵入検知システム、Endpoint Detection and Responseの導入を検討します。

*受託開発ベンダー管理責任 [#uc37b2dd]
**セキュアコーディング [#mfb95ce5]
以下を開発規約とすることを検討して下さい。
-特権が必要なサービスに対する認証を行う場合は、システムの認証ダイアログ(またはOSが提供する仕組み)を使用する。
-アプリケーションへの認証情報等のハードコーディングを禁止します。(必須)
-メモリダンプを無効にします。(必須)
-プレーンテキストで機密情報をメモリ、ディスクに格納する事を禁止します。(必須)
-アプリケーション自身に認証情報等をハードコーディングしてはならない。app.configなどに認証情報や接続文字列を記述する場合は、暗号化を行う。(必須)
-プレーンテキストで認証情報をメモリ、ディスクに格納する事を禁止する。(必須)
-物理メモリから機密情報がスワップされディスクに書き出されないようにする。(推奨:権限によりロックできない場合がある。)
-JPCERT/CC Java コーディングスタンダード MSC03-J. センシティブな情報をハードコードしない   を参照してください。
>https://www.jpcert.or.jp/java-rules/msc03-j.html~

-JPCERT/CC CERT C コーディングスタンダード MSC18-C. プログラムコードの中でパスワードなどの機密情報を扱うときは注意する  を参照してください。 
>https://www.jpcert.or.jp/sc-rules/c-msc18-c.html

-JPCERT/CC Java コーディングスタンダード MSC03-J. センシティブな情報をハードコードしない
--https://www.jpcert.or.jp/java-rules/msc03-j.html

-JPCERT/CC CERT C コーディングスタンダード
--MSC18-C. プログラムコードの中でパスワードなどの機密情報を扱うときは注意する~
--https://www.jpcert.or.jp/sc-rules/c-msc18-c.html

***開発環境管理 [#qcd8c290]
**開発環境管理 [#qcd8c290]
-ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。
***サプライチェーン正常性維持" [#ob0677f0]
**サプライチェーン正常性維持" [#ob0677f0]
-ユーザー運用管理責任、情報システム設計開発部門・運用部門責任に準じる。 例外はすべて文書化し、適切な監査を実施する。