파워쉘을 사용하여 Active Directory 보안 보고서를 작성합니다. 먼저, Active Directory (AD) 환경을 보호하는 것은 여러 가지 이유로 중요합니다. 가장 중요한 것은 네트워크의 중심 구성 요소인 Active Directory에는 사용자, 컴퓨터 및 기타 네트워크 리소스에 대한 중요한 정보가 많이 포함되어 있습니다. 이 정보가 잘못된 손에 들어가면 전체 네트워크의 보안이 침해될 수 있습니다.
이 문서에서는 파워쉘로 Active Directory 환경을 보호하는 다양한 방법에 대해 논의합니다.
파워쉘을 사용하여 Active Directory 보안 보고서를 작성하는 것부터 시작합시다.
파워쉘을 사용하여 Active Directory 보안 보고서를 작성합니다
필수 조건 이 문서의 일부 명령은 Active Directory 명령을 사용합니다. 따라서 이 문서에서는 사전에 다음 구성 요소를 설치해야 합니다:
이 기사의 일부 명령어는 Active Directory 명령어를 사용합니다. 따라서 이 기사에서는 사전 요구 조건 구성 요소를 설치해야 합니다:
- 도메인 기능 수준 – Windows Server 2016.
- Active Directory용 Remote Server Administration Tools (RSAT) 도메인에 가입된 작업 영역에 설치되어 있어야 합니다.
- 최신 PowerShell 버전, 또는 적어도 PowerShell 5.x 이상이 스크립트 실행에 필요합니다.
시작하기 전에 위의 선행 조건을 확인하고 가져오기 다음 스니펫을 사용하여 Active Directory 모듈을 사용합니다.
Install-Module ActiveDirectory
Import-Module ActiveDirectory
Active Directory 보안의 다양한 방법
Active Directory 환경을 보호하는 방법에는 여러 가지가 있습니다. 다음 섹션에서는 Active Directory 인프라를 보호하는 몇 가지 방법에 대해 설명합니다.
세분화된 암호 정책 및 계정 잠금 정책 적용
전반적으로, Active Directory는 기본적으로 비밀번호 정책을 포함합니다. 그러나 관리자들은 더 엄격한 비밀번호 정책과 계정 잠금 정책을 설정합니다. 이 과정을 통해 권한 있는 계정에 대해 더 안전한 비밀번호와 계정 잠금 설정을 배치할 수 있습니다.
다음 PowerShell 명령어를 사용하여 Windows PowerShell용 AD 모듈이 설치되어 있고 가져와져 있는 시스템에서 세분화된 비밀번호 및 계정 잠금 정책을 생성하십시오.
잠금 정책 스크립트:
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 cmdlet을 사용할 수도 있습니다.
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을 사용하여 Active Directory 스냅샷을 생성하려면 Export-DSSnapshot cmdlet을 사용할 수 있습니다.
Export-DSSnapshot -Path
그 후 PowerShell을 사용하여 모든 Active Directory 스냅샷을 보려면 Get-DSSnapshot cmdlet을 사용할 수 있습니다.
Get-DSSnapshot -Path
그런 다음 PowerShell을 사용하여 Active Directory 스냅샷을 마운트하려면 Mount-DSSnapshot cmdlet을 사용합니다. 예를 들어 아래 명령은 지정된 위치에서 지정된 ID의 스냅샷을 마운트합니다.
Mount-DSSnapshot -Path -Identity
위의 PowerShell cmdlet은 데이터베이스가 마운트된 위치를 출력합니다. LDAP 스토어로 노출하려면 다음 명령을 실행하세요:
dsamain.exe -dpbath "" -LDAPport
LDAP 서버가 작동하는 동안 이 명령을 계속 실행하세요. 정보를 조회하려면 AD 모듈을 사용하여 Windows PowerShell cmdlet을 실행하세요. -Server 매개변수와 서버의 호스트 이름과 포트 번호를 세미콜론으로 구분하여 다음과 같이 입력하세요:
Get-ADComputer -Identity * -Server Localhost:PortNumber
또는 다음과 같은 추가적인 Active Directory 도구를 사용할 수 있습니다. ldifde.exe 그리고 csvde.exe 스냅샷과 Active Directory 간의 정보를 전송하는 데 사용합니다. 안타깝게도 이러한 유형의 작업을 수행할 수 있는 기본 도구는 제공되지 않습니다.
삭제된 Active Directory 개체 관리
이 상태에서 삭제된 개체를 Deleted Objects 컨테이너에서 볼 수 있습니다. 기본적으로 그룹 멤버십과 기타 속성을 포함하여 이 컨테이너의 개체를 원래 위치 또는 다른 컨테이너로 복원합니다.
Windows PowerShell용 AD 모듈이 설치된 시스템에서 다음 PowerShell 명령을 사용하여 도메인의 삭제된 AD 개체를 볼 수 있습니다.
Get-ADObject -IncludeDeletedObjects -Filter *
게다가, 삭제된 AD 개체를 복원하려면 AD Windows PowerShell 모듈이 설치된 시스템에서 다음 PowerShell cmdlet을 사용하십시오:
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에서 고급 보안 감사 정책을 몇 번의 반복 전에 도입했습니다. 이 기능은 감사 옵션을 다음과 같은 열 가지 범주로 확장합니다:
이러한 범주 각각에 대한 여러 감사 옵션이 있습니다. 또한 정책은 사용 가능한 이벤트 뷰어에 원본 Microsoft Windows 보안 감사로 항목을 추가합니다.
고급 보안 감사 정책을 구성하려면 다음 단계를 따르세요:
- 을 엽니다. 그룹 정책 관리 콘솔.
- 원하는 도메인의 도메인 컨트롤러 노드로 이동합니다.
- 을 오른쪽 버튼으로 클릭하고 기본 도메인 컨트롤러 정책에서 편집을 클릭합니다.
- 컴퓨터 구성을 확장하고, 정책을 클릭하고, Windows 설정을 클릭하고, 보안 설정을 클릭하고, 고급 감사 정책 구성을 클릭하고, 감사 정책을 클릭하고, 그런 다음 DS 액세스를 클릭합니다.
5. Audit Directory Service, Changes 설정을 더블 클릭하세요.
6. 감사 이벤트를 구성하는 체크박스를 확인하고 성공과 실패 감사 이벤트를 선택하세요.
7. 설정을 저장하고 속성 화면을 닫으세요.
8. 그룹 정책 관리 편집기 창을 닫으세요.
PowerShell을 사용하면, Get-WinEvent Cmdlet을 통해 시스템 감사관이 고급 필터링 옵션을 맞춤화할 수 있습니다. 예를 들어, 다음과 같은 간단한 한 줄 명령어는 모든 보안 로그를 쿼리하고 이를 CSV 파일로 내보내어 생성된 보고서로 만듭니다.
Get-WinEvent -FilterHashtable @{LogName="Security"} | Export-Csv -Path .\Security.csv -NoTypeInformation
CSV 파일은 다음과 같아야 합니다:
도메인 컨트롤러의 이벤트 뷰어 로그에서 감사 이벤트를 복사하여 중앙 집중식 Security Incident and Event Management (SIEM) 솔루션에 전송하는 것은 추천되는 방법입니다.
PowerShell로 Active Directory 보안 보고서를 생성하는 방법을 읽어 주셔서 감사합니다. 이 글은 이제 마무리하겠습니다.
PowerShell로 Active Directory 보안 보고서 생성 결론
위의 보안 관련 문제 외에도, 순응 및 규제 문제가 발생할 수 있으며, Active Directory 환경이 충분히 보호되지 않은 경우에는 특정 데이터 보안 및 개인 정보 보호 기준을 충족해야 하는 많은 조직이 있습니다. Active Directory의 안전성을 보장하지 않으면 규정 준수 위반과 잠재적인 벌금 위험에 노출될 수 있습니다.
Source:
https://infrasos.com/create-active-directory-security-reports-with-powershell/