PowerShell で Active Directory セキュリティレポートを作成する。まず、Active Directory (AD) 環境をセキュリティ保護することがいくつかの理由で重要です。まず第一に、Active Directory は多くの組織の ネットワーク の中心的なコンポーネントであり、ユーザー、コンピューター、その他のネットワークリソースに関する多くの機密情報を含んでいます。この情報が悪意のある人に落ちると、彼らはそれを使って ネットワークのセキュリティ 全体を侵害することができます。
この記事では、PowerShell で Active Directory 環境をセキュリティ保護するさまざまな方法について説明します。
PowerShell で Active Directory セキュリティレポートを作成することから始めましょう。
PowerShell で Active Directory セキュリティレポートを作成する
前提条件 この記事のいくつかのコマンドは Active Directory コマンドを使用します。そのため、この記事では、事前に必要なコンポーネントをインストールする必要があります。
この記事のいくつかのコマンドは Active Directory コマンドを使用します。そのため、この記事では、以下の前提条件コンポーネントをインストールする必要があります:
- ドメイン機能レベル – Windows Server 2016.
- Active Directory用のリモートサーバー管理ツール(RSAT) ドメイン参加ワークステーションにインストールされていること。
- 最新のPowerShellバージョン、少なくともPowerShell 5.x以上がスクリプトの実行に必要です。
始める前に、上記の前提条件が揃っていることを確認し、以下のスニペットを使用してActive Directoryモジュールをインポートしてください。
Install-Module ActiveDirectory
Import-Module ActiveDirectory
Active Directoryをセキュリティ保護するさまざまな方法
Active Directory環境をセキュリティ保護する方法は複数あります。次のセクションでは、Active Directoryインフラストラクチャをセキュリティ保護する方法についていくつか説明します。
ファイングレインドパスワードポリシーとアカウントロックアウトポリシーの適用
全体的に見て、Active Directoryはデフォルトでパスワードポリシーを含んでいます。しかし、管理者はより厳格なパスワードポリシーやアカウントロックアウトポリシーを設定することもあります。このプロセスにより、特権アカウントに対してより安全なパスワードとアカウントロックアウト設定を置くことができます。
以下のPowerShellコマンドを使用して、AD Module for Windows PowerShellがインストールされていてインポートされているシステムで、微調整されたパスワードおよびアカウントロックアウトポリシーを作成してください。
ロックアウトポリシーコマンド:
New-ADFineGrainedPasswordPolicy PolicyName -ComplexityEnabled $true -LockoutThreshold "3" -MaxPasswordAge "30.00:00:00" -MinPasswordLength "14" -PasswordHistoryCount "20" -Precedence "1" -ReversibleEncryptionEnabled $false -ProtectedFromAccidentalDeletion $true
微調整されたパスワードポリシーコマンド:
Add-ADFineGrainedPasswordPolicySubject PolicyName -Subjects GroupName
ユーザーアカウントのmsDS-ResultantPSO属性を確認して、どの細かい粒度のパスワードおよびアカウントロックアウトポリシーが適用されるかを判断します。さらに、関連するパスワードポリシー参照も明らかになります。これについては、Get-ADUserResultantPasswordPolicy PowerShellコマンドレットを使用することもできます。
Active Directoryスナップショットの管理
Active Directoryのスナップショットは、組織が特定の時点(スナップショットを撮った時間)の情報と、別の時点のデータを比較する必要がある状況で役立つ場合があります。
A functional Active Directory VSS Writer and the Volume Shadow Copy functionality are required to create an Active Directory snapshot. These features come standard with Windows Server.
ドメインコントローラ(DC)にドメインコントローラ階層のアカウントでログインしてください。このアカウントはドメイン管理者グループもしくはバックアップオペレーターグループに属している必要があります。ログイン後、コマンドプロンプトを開いて以下の手順を実行してください。
PowerShellを使用してアクティブディレクトリスナップショットを作成するには、Export-DSSnapshotコマンドレットを使用できます:
Export-DSSnapshot -Path
その後、PowerShellを使用してすべてのアクティブディレクトリスナップショットを表示するには、Get-DSSnapshotコマンドレットを使用できます:
Get-DSSnapshot -Path
次に、PowerShellを使用してアクティブディレクトリスナップショットをマウントするには、Mount-DSSnapshotコマンドレットを使用します。たとえば、以下のコマンドは、指定されたIDのスナップショットを指定された場所からマウントします:
Mount-DSSnapshot -Path -Identity
上記のPowerShellコマンドレットは、データベースがマウントされている場所を出力します。LDAPストアとして公開するには、このコマンドを実行します:
dsamain.exe -dpbath "" -LDAPport
LDAPサーバーが稼働している限り、このコマンドを実行し続けてください。情報を検索するには、Windows PowerShellコマンドレットのADモジュールを使用します。-Serverパラメーターとサーバーのホスト名とポート番号をセミコロンで区切って入力します:
Get-ADComputer -Identity * -Server Localhost:PortNumber
または、 ldifde.exe および csvde.exe などの追加のActive Directoryツールを使用して、スナップショットとActive Directoryの間で情報を転送できます。残念ながら、これらのタイプの操作を実行するためのネイティブツールは利用できません。
削除されたActive Directoryオブジェクトの管理
全体的に、Active Directoryの墓石化プロセスにより、ドメインコントローラーが削除をレプリケートできます。ADリサイクルバインを有効にすると、DCは削除される前に削除されたオブジェクトをレプリケートします。墓石化されます。
この状態では、削除されたオブジェクトを削除済みオブジェクトコンテナーで確認できます。基本的に、グループメンバーシップやその他の属性を含むこのコンテナーからオブジェクトを復元し、元の場所または別のコンテナーに配置します。
Windows PowerShellのADモジュールがインストールされたシステムで、ドメインの削除されたADオブジェクトを表示するために次のPowerShellコマンドを使用します。
Get-ADObject -IncludeDeletedObjects -Filter *
さらに、削除されたADオブジェクトを復元するには、AD Windows PowerShellモジュールがインストールされたシステムで次のPowerShellコマンドレットを使用します。
Get-ADObject -Filter { displayName -eq "" } - IncludeDeletedObjects |
Restore-ADObject
AD での Kerberos サービス アカウントのパスワードのリセット
各 Active Directory ドメインには、マルチドメイン環境ですべての完全に書き込み可能なドメイン コントローラーが使用する KRBTGT アカウントがあります。 また、読み取り専用ドメイン コントローラーには、個別に KRBTGT アカウントを割り当てます。
確かに、サービスのパスワードをリセットするにはアカウント、ドメイン管理者権限で DC にログインし、次のように実行します。
Set-ADAccountPassword -Identity (Get-ADUser krbtgt).DistinguishedName -Reset -NewPassword (ConvertTo-SecureString "" -AsPlainText -Force)
AD 環境のセキュリティ確保のその他の方法
Active Directory をセキュリティで保護する方法は他にもたくさんあり、いくつかを紹介しました。 ただし、すべてを説明するにはさらにいくつかの記事が必要になるため、Active Directory 環境をセキュリティで保護するために実行できる操作の概念のリストを次に示します。
さて、次のセクションに進みましょう。ここでは、PowerShellを使用してセキュリティと監査レポートをエクスポートする方法について説明します。
PowerShellを使用してActive Directoryセキュリティ監査レポートを作成する
Microsoftは、ADの数回のイテレーション前に高度なセキュリティ監査ポリシーを導入しました。この機能により、監査オプションが10つのカテゴリに拡張されます:
これらの各カテゴリには、いくつかの監査オプションがあります。さらに、このポリシーは、有効にされるとイベントビューアーにソースMicrosoft Windowsセキュリティ監査のエントリを追加します。
高度なセキュリティ監査ポリシーを構成するには、以下の手順に従ってください:
- グループポリシー管理コンソールを開きます。
- 構成したいポリシーのドメイン内のドメインコントローラーノードに移動します。
- デフォルトドメインコントローラーポリシーを右クリックし、メニューから編集をクリックします。
- コンピュータ構成を展開し、ポリシーをクリック、Windows設定をクリック、セキュリティ設定をクリック、高度な監査ポリシー構成をクリック、監査ポリシーをクリック、そしてDSアクセスをクリックします。
5. ダブルクリックして、監査ディレクトリサービス、変更設定を開きます。
6. 監査イベントを構成するチェックボックスをオンにし、成功および失敗の監査イベントを選択します。
7. 設定を保存し、プロパティ画面を閉じます。
8. グループポリシー管理エディターウィンドウを閉じます。
PowerShellを使用すると、Get-WinEvent コマンドレットを使ってシステム監査担当者は高度なフィルタリングオプションをカスタマイズできます。たとえば、以下のシンプルな1行のコマンドは、すべてのセキュリティログを照会し それらをCSVファイルにエクスポートして生成されたレポートとして出力します。
Get-WinEvent -FilterHashtable @{LogName="Security"} | Export-Csv -Path .\Security.csv -NoTypeInformation
CSVファイルは次のようになります。
ドメインコントローラーのイベントビューアログから監査イベントをセキュリティインシデントおよびイベント管理(SIEM)ソリューションにコピーすることは、推奨されるプラクティスです。
PowerShellを使用してActive Directoryのセキュリティレポートを作成する方法を読んでいただき、ありがとうございます。この記事はこれで終わります。
さらに読む:Active Directory管理ツールの展開
PowerShellを使用してActive Directoryのセキュリティレポートを作成する方法の結論
上記のセキュリティに加えて、コンプライアンスと規制上の問題が発生する可能性もあります。たとえば、多くの組織は特定のデータセキュリティとプライバシーの基準を満たす必要があります。Active Directoryのセキュリティを確保しないことは、非コンプライアンスや潜在的な罰金のリスクにさらすことになります。
Source:
https://infrasos.com/create-active-directory-security-reports-with-powershell/