frameworks/disa-stig-ad-domain.psd1

# DISA Active Directory Domain STIG, Version 3 Release 8 (benchmark date 30 Sep
# 2026): all 36 rules, by Vuln ID. Rules and severities from DISA's STIG
# (U_Active_Directory_Domain_STIG_V3R8_Manual-xccdf.xml); automated checks written
# for this project. STIG content is published by DISA at
# https://public.cyber.mil/stigs/. Titles here are short summaries; STIG Viewer has
# the full rule text. Levels are the severity categories.
# Field meanings are in frameworks/README.md.

@{
    Id = 'DISA-STIG-AD-Domain'
    Name = 'DISA Active Directory Domain STIG V3R8'
    Source = 'https://public.cyber.mil/stigs/'
    StigId = 'Active_Directory_Domain'
    Levels = @('CAT I', 'CAT II', 'CAT III')
    Complete = $true
    AppliesTo = @{ ProductTypes = @(2) }
    Thresholds = @{
        LockoutThresholdMax = 3
        LockoutDurationMinMinutes = 15
        MinPasswordLength = 14
        MinPasswordHistory = 24
        InactivityLockMaxSeconds = 900
        MinSecurityLogMB = 1000
        UacAdminPromptValues = @(2)
        UacUserPromptValues = @(0)
    }
    Requirements = @(
        @{
            Id = 'V-243466'
            Family = 'Directory'
            Level = 'CAT I'
            Title = 'Enterprise Admins members are in no other administrator group'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'EnterpriseAdminsSeparate' }
            )
        }
        @{
            Id = 'V-243467'
            Family = 'Directory'
            Level = 'CAT I'
            Title = 'Domain Admins members are in no other administrator group'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'DomainAdminsSeparate' }
            )
        }
        @{
            Id = 'V-243468'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Administrators must have separate accounts specifically for managing domain member servers.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243469'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Administrators must have separate accounts specifically for managing domain workstations.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243470'
            Family = 'Directory'
            Level = 'CAT I'
            Title = 'Privileged accounts are sensitive and cannot be delegated'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'PrivilegedNotDelegated' }
            )
        }
        @{
            Id = 'V-243471'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Local administrator passwords are unique (LAPS)'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'LapsCoverage' }
            )
        }
        @{
            Id = 'V-243472'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Separate smart cards must be used for Enterprise Admin (EA) and Domain Admin (DA) accounts from smart cards used for ...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243473'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Separate domain accounts must be used to manage public facing servers from any domain accounts used to manage interna...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243475'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Domain controllers must be blocked from Internet access.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243476'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'NT hashes of smart card accounts are rotated'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'SmartCardHashRolling' }
            )
        }
        @{
            Id = 'V-243477'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Administrative accounts are in Protected Users'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'ProtectedUsers' }
            )
        }
        @{
            Id = 'V-243478'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'No computer but a domain controller has unconstrained delegation'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'UnconstrainedDelegation' }
            )
        }
        @{
            Id = 'V-243479'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'DSRM password changed in the last year'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'DsrmPasswordAge' }
            )
        }
        @{
            Id = 'V-243480'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Domain functional level is Windows Server 2016 or later'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'DomainFunctionalLevel' }
            )
        }
        @{
            Id = 'V-243481'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Access to need-to-know information must be restricted to an authorized community of interest.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243482'
            Family = 'Other'
            Level = 'CAT I'
            Title = 'Interconnections between DoW directory services of different classification levels must use a cross-domain solution t...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243483'
            Family = 'Other'
            Level = 'CAT I'
            Title = 'A controlled interface must have interconnections among DoW information systems operating between DoW and non-DoW sys...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243484'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Trusts filter SIDs from other domains'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'TrustSidFiltering' }
            )
        }
        @{
            Id = 'V-243485'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Outgoing forest trusts use selective authentication'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'SelectiveAuthentication' }
            )
        }
        @{
            Id = 'V-243486'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Pre-Windows 2000 Compatible Access excludes Everyone and Anonymous Logon'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'PreWindows2000Access' }
            )
        }
        @{
            Id = 'V-243487'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Incoming Forest Trust Builders and Group Policy Creator Owners are limited'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'TrustBuildersAndPolicyCreators' }
            )
        }
        @{
            Id = 'V-243488'
            Family = 'Other'
            Level = 'CAT III'
            Title = 'User accounts with delegated authority must be removed from Windows built-in administrative groups or remove the dele...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243489'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Read-only Domain Controller (RODC) architecture and configuration must comply with directory services requirements.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243490'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Usage of administrative accounts must be monitored for suspicious and anomalous activity.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243491'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Systems must be monitored for attempts to use local accounts to log on remotely from other systems.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243492'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Systems must be monitored for remote desktop logons.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243493'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Active Directory data must be backed up daily for systems with a Risk Management Framework categorization for Availab...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243494'
            Family = 'Other'
            Level = 'CAT III'
            Title = 'Each cross-directory authentication configuration must be documented.'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243495'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'A VPN must be used to protect directory network traffic for directory service implementation spanning enclave boundar...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243496'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'Accounts from outside directories that are not part of the same organization or are not subject to the same security ...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243497'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'Inter-site replication occurs at least daily'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'InterSiteReplication' }
            )
        }
        @{
            Id = 'V-243498'
            Family = 'Other'
            Level = 'CAT II'
            Title = 'If a VPN is used in the AD implementation, the traffic must be inspected by the network Intrusion detection system (I...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243499'
            Family = 'Other'
            Level = 'CAT III'
            Title = 'Active Directory implementation information must be added to the organization contingency plan where the Risk Managem...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-243500'
            Family = 'Directory'
            Level = 'CAT II'
            Title = 'More than one domain controller supports the domain'
            Checks = @()
            Expect = @(
                @{ Source = 'Directory'; Name = 'DomainControllerCount' }
            )
        }
        @{
            Id = 'V-243501'
            Family = 'Other'
            Level = 'CAT III'
            Title = 'The impact of CPCON changes on the cross-directory authentication configuration must be considered and procedures doc...'
            Checks = @()
            Note = 'Not automated by this scanner; check it with STIG Viewer or another SCAP tool.'
        }
        @{
            Id = 'V-269097'
            Family = 'Audit'
            Level = 'CAT II'
            Title = 'Kerberos Authentication Service and Kerberos Service Ticket Operations audited: Success and Failure'
            Checks = @()
            Expect = @(
                @{ Source = 'Audit'; Subcategory = 'Kerberos Authentication Service'; Setting = 'SuccessAndFailure' }
                @{ Source = 'Audit'; Subcategory = 'Kerberos Service Ticket Operations'; Setting = 'SuccessAndFailure' }
            )
        }
    )
}