This page lists every security check included in GrantFlow Sentinel, organized by domain. Each check has a stable ID you can reference in overrides files, SIEM queries, and compliance reports.

Severity key: Critical High Medium Low Info


Entra ID checks (cloud mode)

Authentication & MFA

IDTitleSeverity
SENT-AUTH-001Number matching is enabled for Microsoft AuthenticatorHigh
SENT-AUTH-002Report suspicious activity is enabledMedium
SENT-AUTH-003FIDO2 security keys are enabled as an authentication methodMedium
SENT-AUTH-004Insecure authentication methods (SMS, Voice, Email OTP) are disabledHigh

Why it matters: MFA fatigue attacks exploit push notifications without number matching. SMS and voice OTP are vulnerable to SIM-swapping. FIDO2 is phishing-resistant and the highest-assurance option outside of certificate-based auth.


Conditional Access

IDTitleSeverity
SENT-CA-001MFA is required for all users via Conditional AccessCritical
SENT-CA-002Legacy authentication is blockedHigh
SENT-CA-003Phishing-resistant MFA is required for administratorsCritical
SENT-CA-004Emergency access (break-glass) accounts are not blocked by CA policiesHigh
SENT-CA-005Security groups used in CA policies are protected (Role-Assignable or RMAU)High
SENT-CA-006Device code flow is blocked via Conditional AccessHigh
SENT-CA-007Risk-based Conditional Access policies are configuredHigh
SENT-CA-008Sign-in frequency is configured for admin sessionsMedium
SENT-CA-009No CA policies stuck in Report-Only modeMedium
SENT-CA-010Compliant or Entra-joined device required for admin accessMedium
SENT-CA-011MFA is required for guest and external usersMedium
SENT-CA-012No CA policies with excessive user exclusions (> 10)Low
SENT-CA-013No excessive disabled CA policiesLow

Why it matters: Conditional Access is your primary enforcement layer for identity-based controls. A gap in any of these policies creates a bypass path. Legacy authentication entirely sidesteps CA and MFA — it must be blocked before any other CA work is meaningful.

Break-glass accounts

SENT-CA-004 checks that your break-glass accounts are excluded from all CA policies. If they are blocked, you lose access to your tenant during an incident. Maintain two break-glass accounts with permanent Global Admin access and ensure they are excluded by account (not by group).


Privileged Access

IDTitleSeverity
SENT-PRIV-001No permanent active assignments to Tier 0 roles (except break-glass)Critical
SENT-PRIV-002Limited number of Global Administrators (≤ 5 active + eligible)High
SENT-PRIV-003No more than 1 permanent Global Administrator (break-glass only)Critical
SENT-PRIV-004No stale privileged accounts (inactive > 90 days)High
SENT-PRIV-005No more than 3 active (non-eligible) Global AdministratorsHigh

Why it matters: Permanent privileged assignments mean a compromised account immediately has full tenant control. Just-in-time access (via GrantFlow or Entra PIM) ensures elevated permissions exist only when actively needed and expire automatically.

GrantFlow resolves PRIV findings

SENT-PRIV-001 and SENT-PRIV-003 are in the GrantFlow recommendation lane. Deploying GrantFlow converts all permanent Tier 0 and Tier 1 assignments to JIT-eligible, removing the standing access that these checks flag.


Tenant Hardening

IDTitleSeverity
SENT-TEN-001User consent to applications is disabledHigh
SENT-TEN-002Admin consent workflow is enabledMedium
SENT-TEN-003Guest user access is restrictedMedium
SENT-TEN-004Legacy MSOL PowerShell access is blockedMedium
SENT-TEN-005Self-service group creation is restrictedLow
SENT-TEN-006Security defaults are disabled (Conditional Access is used instead)Info
SENT-TEN-007Users are restricted from registering applicationsMedium
SENT-TEN-008Guest invitation settings are restrictedMedium
SENT-TEN-009Users cannot create app registrationsMedium
SENT-TEN-010Users cannot create security groupsLow

Why it matters: Consent phishing is one of the most effective attack vectors against modern tenants. When users can grant apps access to organizational data, a single click on a malicious link can compromise your environment. SENT-TEN-001 and SENT-TEN-002 together close this attack surface while giving users a legitimate request path.


Workload Identity

IDTitleSeverity
SENT-WID-001No service principals with high-privilege Graph permissions and client secretsCritical
SENT-WID-002No applications with expired credentialsMedium
SENT-WID-003No service principals with broad 'ReadWrite.All' application permissionsHigh
SENT-WID-004No multi-tenant app registrations with high-privilege permissionsHigh
SENT-WID-005No applications with expired credentials still presentHigh
SENT-WID-006No applications with long-lived secrets (> 2 years)Medium

Why it matters: Service principals with Directory.ReadWrite.All or similar permissions, backed by a long-lived client secret, are a high-value target. A leaked secret gives an attacker persistent, non-interactive access equivalent to a Global Administrator — with no MFA requirement and no session expiry.


High-Value Targets

IDTitleSeverity
SENT-HVT-001No non-admin users own applications with high-privilege permissionsCritical
SENT-HVT-002Executive and C-Level users are identified as high-value targetsMedium
SENT-HVT-003No non-admin users have direct assignments to high-privilege service principalsHigh
SENT-HVT-004No orphaned app registrations (apps without owners)Medium
SENT-HVT-005No disabled users retain privileged role assignmentsCritical

Why it matters: SENT-HVT-001 detects "shadow admins" — users who own app registrations with Directory.ReadWrite.All or similar permissions. These users effectively have admin-level access without holding a directory role, making them invisible to standard role-based reviews. Compromising a shadow admin is often trivially easy if they have weak MFA.


Monitoring & Detection

IDTitleSeverity
SENT-MON-001Entra ID recommendations are reviewed (none in critical state)Medium
SENT-MON-002No stale guest accounts (inactive > 90 days)Low
SENT-MON-003No disabled accounts with active role assignmentsMedium
SENT-MON-004No high-risk users remain unreviewedHigh
SENT-MON-005High-priority Entra recommendations are addressedMedium

Active Directory checks (ad mode)

AD Privileged Access

IDTitleSeverity
SENT-ADPRIV-001Domain Admins group has limited membershipCritical
SENT-ADPRIV-002Enterprise Admins group is empty or minimalCritical
SENT-ADPRIV-003No accounts configured for unconstrained delegationCritical
SENT-ADPRIV-004No non-default accounts have DCSync replication rightsCritical
SENT-ADPRIV-005No privileged accounts are KerberoastableHigh
SENT-ADPRIV-006No accounts have Kerberos pre-authentication disabledHigh

Why it matters: Domain Admins and Enterprise Admins are Tier 0 in on-premises environments — full domain and forest compromise starts here. Unconstrained delegation and DCSync rights are among the most commonly abused paths for domain takeover (Mimikatz, Impacket, BloodHound attack chains).


AD Protocol Security

IDTitleSeverity
SENT-ADPROT-001LDAP signing is required on Domain ControllersHigh
SENT-ADPROT-002SMB signing is requiredHigh
SENT-ADPROT-003LLMNR is disabled across the domainHigh
SENT-ADPROT-004NetBIOS over TCP/IP is disabledMedium
SENT-ADPROT-005NTLM authentication is restricted or auditedMedium

Why it matters: LLMNR and NetBIOS poisoning (Responder) are among the most common internal network attack techniques. SMB relay attacks against systems without signing can yield immediate privilege escalation. These checks are all low-cost, high-impact hardening steps.


AD Hygiene

IDTitleSeverity
SENT-ADHYG-001Domain password policy meets minimum security standardsHigh
SENT-ADHYG-002No stale computer accounts (inactive > 90 days)Medium
SENT-ADHYG-003No stale user accounts (inactive > 90 days)Medium
SENT-ADHYG-004No disabled accounts retain privileged group membershipsHigh
SENT-ADHYG-005LAPS is deployed for local administrator password managementHigh
SENT-ADHYG-100AI-powered comprehensive AD hygiene security analysisInfo

AI-assisted check (SENT-ADHYG-100)

SENT-ADHYG-100 uses AI to perform a comprehensive security analysis of AD hygiene — correlating stale accounts, password policy gaps, LAPS coverage, disabled-account risks, and service account exposure into actionable attack narratives. Requires AI configured in sentinel.yaml or environment variables.


AD Credential Exposure

IDTitleSeverity
SENT-ADCRED-001No Group Policy Preferences passwords found in SYSVOLCritical
SENT-ADCRED-002Service accounts use Group Managed Service Accounts (gMSA)Medium
SENT-ADCRED-003No credentials stored in user description fieldsHigh
SENT-ADCRED-004AI scan: no credentials hidden in user description fieldsHigh

AI-assisted check (SENT-ADCRED-004)

SENT-ADCRED-004 uses AI to analyze user description fields for obfuscated credentials, encoded passwords, and other credential-like patterns that regular expression matching misses. This check requires an AI endpoint configured in sentinel.yaml or via environment variables. Without it, the check is skipped.

Why it matters: GPP passwords in SYSVOL (SENT-ADCRED-001) are pre-encrypted with a key Microsoft published in 2012 — any domain user can decrypt them. This is a trivially exploitable, automated attack. If your environment was built before 2014, run this check immediately.


AD Certificate Services

IDTitleSeverity
SENT-ADCS-001No certificate templates vulnerable to ESC1 (enrollee-supplied subject + client auth)Critical
SENT-ADCS-002No certificate templates vulnerable to ESC2 (any purpose / no EKU with broad enrollment)High
SENT-ADCS-003No certificate templates vulnerable to ESC3 (unrestricted Certificate Request Agent)High
SENT-ADCS-004No certificate templates have vulnerable ACLs (non-admin can modify)High
SENT-ADCS-005No CAs have EDITF_ATTRIBUTESUBJECTALTNAME2 enabled (ESC6)Critical
SENT-ADCS-006No HTTP-only certificate enrollment endpoints (ESC8 — NTLM relay)High
SENT-ADCS-007CA web enrollment is disabled or properly securedMedium
SENT-ADCS-100AI-powered comprehensive ADCS security analysisInfo

AI-assisted check (SENT-ADCS-100)

SENT-ADCS-100 uses AI to perform a comprehensive security analysis of the entire ADCS environment — identifying attack chains across CAs and templates, risk correlations, and prioritized remediation steps. Requires AI configured in sentinel.yaml or environment variables.

Why it matters: Active Directory Certificate Services (ADCS) misconfigurations are among the most impactful attack vectors in on-premises environments. ESC1 alone lets any domain user request a certificate as Domain Admin. These checks cover ESC1–ESC4, ESC6, and ESC8 — the most commonly exploited ADCS attack paths documented by SpecterOps. Coverage for ESC5 and ESC7 is planned for a future release.

Cross-platform ADCS scanning

ADCS checks use native LDAP collection, which works on macOS and Linux — no Windows or PowerShell required. Configure ldap_server, ldap_tls, ldap_bind_dn, and ldap_bind_pass in sentinel.yaml to connect to your Domain Controller. See Configuration for details.


Linux checks (linux mode)

Linux Access Control

IDTitleSeverity
SENT-LNXACC-001SSH root login is disabledCritical
SENT-LNXACC-002SSH password authentication is disabled (key-only)High
SENT-LNXACC-003No user accounts have empty passwordsCritical
SENT-LNXACC-004Only root has UID 0Critical
SENT-LNXACC-005No broad NOPASSWD sudo rules configuredHigh
SENT-LNXACC-006No unusual SUID/SGID binaries detectedHigh

Linux Network Security

IDTitleSeverity
SENT-LNXNET-001Host firewall is enabled and activeHigh
SENT-LNXNET-002Services bind to specific interfaces, not 0.0.0.0Medium

Linux System Hardening

IDTitleSeverity
SENT-LNXHRD-001Kernel ASLR (Address Space Layout Randomization) is fully enabledMedium
SENT-LNXHRD-002Ptrace scope is restrictedMedium
SENT-LNXHRD-003Core dumps are disabledLow
SENT-LNXHRD-004Linux audit daemon (auditd) is runningHigh
SENT-LNXHRD-005Unattended security updates are enabledMedium
SENT-LNXHRD-006Sensitive files have correct permissionsHigh
SENT-LNXHRD-007IP forwarding is disabled (unless required)Low

Check count by mode

Scan modeChecks
Cloud (Entra ID)48
AD (on-premises Active Directory)29
Linux15
Total92