・Windows の 管理者の設定
情報システム開発契約のセキュリティ仕様作成のためのガイドライン
詳細設定対策に必要な措置
Windows Administrtor の厳格かつ限定的運用の重要性 †
Windows に組み込まれている特権管理者である Administrator はすべての管理権限を有しています。従って、Administrator 権限で Windows にログオンしている際に、攻撃者や悪意あるプログラムに侵害されると、管理者特権で、永続化、防御の回避(アンチウイルスの停止等)、資格情報の窃取、水平展開が可能となり、情報漏洩、ログの改ざん、サービス停止などの被害を受け、他の端末、サーバーへの拡散を招きます。
このため、安易な Administrator の運用は避けるべきであり、極めて限定的に使用される必要があります。
反対に、Administrator の厳格かつ限定的な運用は、標的型攻撃を始めとする様々な攻撃を緩和する最も有効な措置であり、あらゆるセキュリティ対策の一丁目一番地といえます。
本項では、Active Directory ドメイン環境における Administrator の特性を解説し、Administrator への攻撃と防御方法を述べます。
Windows Administrator の特徴 †
ビルトイン Administrator とビルトイン Administrators †
- ビルトイン Administrator
- ローカル管理者、ローカルAdministrator などと表現されることがありますが、ここでは、ビルトイン Administrator といいます。
- ビルトイン Administrator 以外のユーザーは、Windows に変更を加える場合は、以下のようなユーザーアカウント制御(UAC)が表示されます。
- しかし、ビルトイン Admonistrator は UAC の表示がなく完全な管理者権限が実行でき、リモート接続の際も UAC が適用されません。
- アカウントロックアウト、アカウントの有効期限、ログオン時間が適用されません。
- ビルトイン Administrators から削除できません。
- Windows 10 はビルトイン Administrator は Default で無効となっており、Install の際の最初のユーザーがビルトイン Administrators に所属します。
- Administrator の ID はグループポリシーで変更が可能です。
- Windows Server では Default で有効となっています。
- ドメインコントローラーの場合は、ビルトイン Administrator は存在せず、代わりにドメイン Administrator がビルトイン Administrator として機能します。
- ビルトイン Administrators
- ローカルグループ Administrators 、もしくは Administrators に所属するユーザーを指します。
- UAC が適用されます。
- アカウントロックアウト、アカウントの有効期限、パスワードの有効期限、ログオン時間が適用されます。
Windows Administrator への攻撃と緩和策 †
ビルトイン Administrator へのブルートフォース攻撃(総当たり攻撃) †
ビルトイン Administrator はアカウントロックアウト設定ができないため、ブルートフォース攻撃が可能です。リモートデスクトップ接続 (RDP)、PowerShell (PsSession)、PSEXECなどで実行されます。また、クラウド上の Public IPを持つコンピューターに対する RDP でのブルートフォース攻撃は頻繁に実施されることが知られています。
ビルトイン Administrator 以外のコマンドラインによるリモート接続は、通常、UACが適用されるため、マルウェアによる接続を緩和することができますが、ビルトイン Administrator は UAC が適用されないため危険です。
また、NTLM ハッシュが窃取された場合、オフラインで解析するという手法が知られています。この場合、8桁複雑なパスワードでも、2.5時間で解析可能だとの報告 があります。
https://www.theregister.co.uk/2019/02/14/password_length/
暫定的な緩和策 †
以下の緩和策を設定する前に、ID として Administrator を使用したタスクスケジューラやバッチジョブへの影響を事前に調査してください。
① グループポリシーでビルトイン Administrator の ID を変更し、攻撃者から推測困難な ID に変更します。
[コンピューターの構成]>[Windows の設定]>[セキュリティの設定]>[ローカル ポリシー]>[セキュリティ オプション]>[アカウント:Administrator アカウント名の変更] で 新たなIDを設定します。 |
新たな ID に組織名や組織の略称を含めることは避けるべきです。また、xxxAdmin、xxxSu などの推測容易な文字列も含めることは避けるべきです。
② IDを変更したビルトイン Administrator のパスワードを少なくとも14桁以上にして、セキュリティログを定期点検しブルートフォース攻撃を検出するようにしてください。また、オフライン攻撃に備えて20桁を超える長いパスフレーズへの移行を検討します。
パスフレーズの例:「Hayabusa2 ha Chikyuu ni# Kikanchuu Desu」(スペースを含み39桁)
③ ポリシーでビルトイン Administrator に対しても UAC の適用を行うよう設定します。
参考文書: Your Pa$$word doesn't matter
https://techcommunity.microsoft.com/t5/azure-active-directory-identity/your-pa-word-doesn-t-matter/ba-p/731984
根本的な緩和策 †
- 多要素認証の導入
多要素認証の導入を検討してください。多要素認証は攻撃者のコストが高くなるため、被害を大幅に軽減することができます。調査によると、多要素認証を使用するアカウントの侵害率は0.1%未満といわれています。
https://techcommunity.microsoft.com/t5/azure-active-directory-identity/all-your-creds-are-belong-to-us/ba-p/855124
Active Directory の場合、多要素認証としては、Windows Hello for Business(所有+記憶/所有+生体)、MS-CA やサードパーティーCA による PKI (所有+記憶)、Windows Helloの導入などが考えられます。
- ビルトイン Administrator の無効化
グループポリシーで端末のビルトイン Administrator を無効化します。(Windows 10では既定で無効化されており、最初にログオンしたユーザーがビルトイン Administrators のメンバーになっています)
- グループポリシーエディターで以下のポリシーを開きます。
[コンピューター構成]>[ポリシー]>[Windows の設定]>[セキュリティの設定]>[ローカルポリシー]>[セキュリティオプション]>[アカウント:Administrator アカウントの状態] を [無効] にします。 - ポリシーの規定値
サーバーの種類または GPO 既定値 既定のドメインポリシー 未定義 既定のドメインコントローラーポリシー 未定義 スタンドアロンサーバーの既定の設定 有効 DC の有効な既定の設定 有効 メンバーサーバーの有効な既定の設定 有効 クライアントコンピューターの有効な既定の設定 無効 アカウント: Administrator アカウントの状態: https://docs.microsoft.com/ja-jp/windows/security/threat-protection/security-policy-settings/accounts-administrator-account-status
- グループポリシーエディターで以下のポリシーを開きます。
ビルトイン Administrator を使った水平展開 †
組織で端末やサーバーを初期設定する際に、ビルトイン Administrator の ID、パスワードを共通にすることがあります。これは、セッティングやサポートの管理負担を軽減するためですが、この慣習を狙い、水平展開を図る攻撃が知られています。共通 ID と共通パスワードが摂取できれば、他の端末、サーバーへのリモートアクセスが可能となります。
緩和策 †
① ビルトイン Administrator のパスワードを一台ずつ、すべてユニークにします。リモートでこの作業を一括して展開できるツール LAPS (Local Administrator Password Solution) が、Microsoft から無償で提供されています。
ローカル管理者パスワードソリューション(LAPS)導入ガイド(日本語版)
https://msrc-blog.microsoft.com/2020/08/26/20200827_laps/
②その上で、ポリシーで [Apply UAC restrictions to local accounts on network logons] を有効にします。これによって、ローカルアカウントにネットワーク経由でログオンする際にUACが適用されます。
[コンピューターの構成]>[ポリシー]>[管理用テンプレート]>[MS Security Guide]> [Apply UAC restrictions to local accounts on network logons] |
参考 ユーザー アカウント制御、Windows Vista でリモートの制限の説明: †
https://support.microsoft.com/ja-jp/help/951016.
③ ポリシーでビルトイン Administrator に対しても UAC の適用を行うよう設定します。
|[コンピューターの構成]>[Windows の設定]>[セキュリティの設定]>[ローカル ポリシー]>[セキュリティ オプション]>[ユーザー アカウント制御: ビルトイン Administrator アカウントのための管理者承認モード] でポリシーを [有効] にします。|
ドメインユーザーがビルトイン Administrators に所属している場合の攻撃 †
ドメインユーザーがビルトイン Administrators に所属している場合、マルウェアが侵入すると、マルウェアはビルトイン Administrators で許可される行動が可能になります。
実行可能な戦術 †
悪意あるプログラムの実行、永続化、防御回避、資格情報へのアクセス、情報の窃取、外部送信、ログ改ざん、破壊
緩和策 †
ドメインユーザーは標準ユーザーで運用し、ビルトイン Administrators にドメインユーザーを登録をしないようにします。この措置で、アプリケーションのインストールやWindowsの設定変更のたびに UAC が起動し、管理者のID、パスワードが求められるようになり、マルウェアが外部からダウンロードした新たなマルウェアのインストールを防ぎます。業務上、アプリケーションのインストールや設定変更が必要な場合は、ビルトイン Administrators にドメインユーザー以外のユーザーを登録し、個別にユニークなパスフレーズを設定し、必要に応じて入力することで回避します。
リスク受容する場合の注意点 †
ユーザーの利便性や業務の遂行を優先し無条件にリスク受容を行った場合、予期せぬインシデント招く可能性が高まります。利用者とともに「正しくリスクを認識し、インシデント発生時の事業への影響を検討」した上でリスク受容を行います。
①一般業務でのリスク受容は、まったく推奨できません。メールやWebの閲覧を行わない、インターネットに接続しない完全な閉域網であってもリスク受容は避けるべきです。
②開発環境におけるDebugコマンド実行やヘルプデスク業務などでは、管理者権限が必要となることから緩和策の設定が困難な場合があります。
このような場合は、対象の端末やシステムを限定し、仮想化、ネットワークセグメントの分離やフィルタリング、メールやWebの閲覧の禁止などの措置を講じた上で文書化し、一定のリスクを受容しつつ、検知に努めることを検討して下さい。また、以下の教育や緩和策は規程にし実効性を担保してください。
教育 †
Administrators にドメインユーザーが含まれる環境への脅威を利用者とともに認識します。
- 攻撃手法について理解する ・攻撃ベクトルの研究
緩和策 †
- 脆弱性修正プログラムの適用
- アンチウイルスソフトの更新及び週次での完全スキャンの実施
- リムーバブルメディアの運用制限、自動再生の禁止
- 電子メール、Webブラウザの閲覧等の運用制限の検討(仮想マシン上で閲覧する、仮想マシンは異なるネットワークセグメントで接続する等)
- インターネットへの接続制限の検討
- 侵入検知システム、Endpoint Detection and Response 等の導入の検討