Skip to main content

Health Check Rules

Bulwark evaluates over 100 built-in security rules against collected AD data. Each rule checks for a specific misconfiguration, vulnerability, or hygiene issue and produces a finding with a severity level and affected objects.

Rule Categories

Functional Level

Checks whether the domain and forest functional levels are current. Outdated levels miss security features available in newer AD versions.

Domain Controller Health

  • OS version currency (end-of-life detection)
  • FSMO role holder identification
  • Reachability and SMB/Kerberos settings
  • Print spooler exposure
  • LDAP signing and channel binding

Account Hygiene (Stale Objects)

CheckDescription
Inactive usersEnabled accounts with no logon in 6+ months
Password never expiresAccounts with the password-never-expires flag
Password not requiredAccounts where a password is not mandatory
Reversible encryptionAccounts storing passwords with reversible encryption
DES encryptionAccounts with DES Kerberos encryption enabled
No pre-authenticationAS-REP roastable accounts
Bad primary groupAccounts with a non-standard primary group (not 513)
No AES encryptionAccounts not configured for AES Kerberos encryption
SID historyAccounts carrying SID history entries
LAPS coverageComputers without LAPS (legacy or Windows LAPS)

Privileged Account Hygiene

CheckDescription
Service accounts in admin groupsSPNs that are members of Domain Admins or equivalent
AdminSDHolder orphansAccounts with adminCount=1 not in any privileged group
Delegation risksUnconstrained delegation, protocol transition delegation
Privileged group sizeExcessive membership in high-privilege groups
Email on admin accountsAdmin accounts with email addresses (phishing risk)
Smart card configurationAccounts requiring smart card without valid certificates

Trust Relationships

  • Trust type and transitivity analysis
  • SID filtering status
  • Cross-forest trust risks
  • Reachable domain enumeration

Anomalies

CheckDescription
AD Recycle BinWhether the Recycle Bin optional feature is enabled
KDS root keyWhether gMSA can be used (requires KDS root key)
NTFRS for SYSVOLWhether legacy NTFRS is used instead of DFSR
Guest accountWhether the built-in Guest account is enabled
Machine account quotaWhether unprivileged users can join machines (MAQ > 0)
Pre-Windows 2000 groupWhether Everyone or Authenticated Users is in the legacy group
Exchange risksExchange privilege escalation vulnerabilities
GPP passwordsGroup Policy Preferences storing credentials
Weak PKI certificatesRSA key size and signature algorithm checks
NTLMv1Whether NTLMv1 is allowed via GPO

GPO Analysis

  • Audit policy settings (simple and advanced)
  • LSA policy configuration
  • WSUS settings
  • Defender ASR rules
  • Screen saver lock-out policies
  • Firewall rules
  • Event forwarding subscriptions
  • UNC path hardening
  • Terminal Services configuration

DNS

  • AD-integrated DNS zone enumeration
  • Zone configuration analysis

Rule Evaluation

Rules are evaluated in sequence after data collection completes:
Data Collection (LDAP/ADWS)
  |
  v
Rule Evaluation (100+ built-in rules)
  |
  v
Supplemental Rule Evaluation (user-defined)
  |
  v
Score Calculation (global + category scores)
  |
  v
Export (JSON, XML, YAML, HTML)
Each triggered rule produces a RuleAnalysisResult containing:
FieldDescription
risk_idRule identifier (e.g., S-PrimaryGroup, P-ServiceDomainAdmin)
nameHuman-readable rule name
categoryStaleObjects, PrivilegedAccounts, Trusts, Anomalies
severitycritical, high, medium, low, info
pointsRisk score contribution
summaryDescription of the finding
affected_objectsList of affected account names, hostnames, or DNs
solutionRecommended remediation

Scoring Algorithm

The global score is calculated from four category scores, each representing a dimension of AD security:
CategoryMeasures
Stale ObjectsAccount hygiene, password age, inactive accounts, LAPS, functional level
Privileged AccountsAdmin group composition, delegation, service accounts, AdminSDHolder
TrustsTrust relationships, SID filtering, cross-domain risks
AnomaliesFeature flags, misconfigurations, Exchange, PKI, GPO settings
Each triggered rule contributes its points value to the appropriate category. The global score is derived from the weighted combination of category scores, normalized to 0–100.