SectionScan Rules

Cindera · Scan Rules

Scan Rules

Cindera runs 14 identity and access security checks against your Microsoft 365 tenant. Each finding is mapped to NIS2 and GDPR controls so you can take the same evidence to your auditor or insurer.

How to read this page

Every rule lists the severity range it can emit, what it actually looks at inside your tenant, why it matters in plain language, and which compliance controls it maps to. Most rules emit a single severity. A few scale severity with the size of the finding. Those show a range.

Rule 01

Admin MFA strength

CriticalHighMedium
What it checks
How strong the second factor on each privileged account actually is, not merely whether one exists. No method at all is critical. A phone number as the only method is high, because SMS and voice can be taken over without the account holder doing anything. An authenticator app with nothing stronger registered is medium: it stops a leaked password but not a real-time relay. An account with FIDO2, Windows Hello for Business or certificate-based authentication passes.
Why it matters
An admin without MFA is the single most common path to a full tenant takeover, and a leaked password is often enough on its own. The distinction between phishable and phishing-resistant methods matters just as much now: attacker-in-the-middle kits that capture a password and an app approval together are sold as a service, and insurers have begun asking which methods administrators actually use.
Compliance mapping
NIS2-21.2.dNIS2-21.2.jGDPR-32

Rule 02

Legacy authentication blocking

Critical
What it checks
At least one conditional access policy is in the on state and blocks legacy authentication protocols (Exchange ActiveSync basic auth, IMAP, POP, SMTP AUTH, MAPI over HTTP, and older Office clients).
Why it matters
Legacy protocols don't support MFA. They pre-date it. As long as they're allowed, every other MFA control can be bypassed by sending the same password to a legacy endpoint. Microsoft has been retiring these protocols, but tenants still routinely have at least one open path.
Compliance mapping
NIS2-21.2.dNIS2-21.2.jGDPR-32

Rule 03

Excessive Global Administrators

High
What it checks
The number of enabled accounts permanently assigned the Global Administrator role. Microsoft's own guidance is to keep this small, between 2 and 4. Cindera raises a finding above 3 and lists every Global Administrator by name.
Why it matters
Every Global Admin is a critical asset. Too many of them increases your blast radius. One compromised admin is enough to ransom a tenant. Mid-sized tenants commonly accumulate Global Admins over time without a cleanup.
Compliance mapping
NIS2-21.2.iGDPR-32

Rule 04

Dormant privileged accounts

High
What it checks
Accounts that hold a privileged role but have not signed in for at least 90 days. Cindera uses the sign-in activity from Microsoft Graph and reports the named users with their last activity timestamp.
Why it matters
Dormant admin accounts are attractive targets. They often have stale passwords, no MFA monitoring, and nobody notices when they're used. Removing or de-privileging them costs nothing and meaningfully shrinks your attack surface.
Compliance mapping
NIS2-21.2.iGDPR-32

Rule 05

Risky app consents

High
What it checks
Third-party applications consented in your tenant with high-impact delegated or application permissions, especially Mail.ReadWrite, Files.ReadWrite.All, and Directory.ReadWrite.All granted to apps from unverified publishers.
Why it matters
Consent phishing is now a dominant initial-access technique. An attacker tricks one user into granting a malicious OAuth app. No password ever leaves the user, and from there the app reads mail, exfiltrates files, or pivots into other tenants.
Compliance mapping
NIS2-21.2.eGDPR-32

Rule 06

Expiring client secrets

HighMedium
What it checks
Application client secrets and certificates that will expire within the next 30 days (High) or 90 days (Medium). Includes which application owns each credential and the exact expiry date.
Why it matters
An expired secret quietly breaks production integrations (mail-sending, document automation, ticketing webhooks), and the on-call response is usually a hot rotation under pressure. Surfacing this early lets you rotate on a planned change window.
Compliance mapping
NIS2-21.2.i

Rule 07

Effective MFA exposure

MediumHighCritical
What it checks
Who is still exempt from MFA once every enforcing policy is taken into account. Cindera resolves each policy's exclusions (named users, excluded directory roles, and exclusion groups expanded through their nested groups) and reports the users left uncovered by all of them, by name. Break-glass accounts, disabled accounts and guests are excluded from the result.
Why it matters
A policy called 'Require MFA for all users' reads as fully covered in the Entra portal while an exclusion group created years ago quietly exempts part of the organisation, often including an administrator. Entra shows exclusions per policy and registration state per user, but never the two intersected across every policy, which is the only view that answers who can actually sign in with a password alone.
Compliance mapping
NIS2-21.2.dGDPR-32

Rule 08

Enforced MFA policy

High
What it checks
A conditional access policy is in the on state that requires multi-factor authentication for all users (with documented exclusions only). The Microsoft security defaults toggle also satisfies this check on smaller tenants.
Why it matters
Per-user MFA registration is necessary but not sufficient. Without an enforcing policy, users can register MFA and still sign in without it from a permitted location or app. A blanket conditional access rule is the control auditors and insurers want to see.
Compliance mapping
NIS2-21.2.dNIS2-21.2.jGDPR-32

Rule 09

Overprivileged service principals: tier-0 Graph permissions

MediumHighCritical
What it checks
Service principals (typically applications and automation identities) holding application-level Graph permissions that grant tenant-wide read/write, such as Directory.ReadWrite.All, RoleManagement.ReadWrite.Directory, or Application.ReadWrite.All. Severity scales with the blast radius of the permission and the publisher.
Why it matters
A service principal with Directory.ReadWrite.All can do almost anything a Global Admin can do, and rarely has the same MFA, monitoring, or sign-in restrictions. These are some of the most attractive targets for an attacker who has compromised a developer machine.
Compliance mapping
NIS2-21.2.eNIS2-21.2.iGDPR-32

Rule 10

Permanent privileged role assignments (PIM)

High
What it checks
Directory-role assignments that are active permanently rather than activated just-in-time through Privileged Identity Management. Cindera lists the assignments and the roles involved.
Why it matters
Just-in-time activation shrinks the window during which a privileged account is actually privileged, which directly limits the impact of credential theft. NIS2 and several insurer questionnaires now ask explicitly about JIT/PIM use for tier-0 roles.
Compliance mapping
NIS2-21.2.iGDPR-32

Rule 11

Break-glass account hygiene

MediumHigh
What it checks
Whether the tenant has clearly identified emergency-access (break-glass) Global Administrators, and whether any of them is subject to an enforced conditional access policy. Cindera flags three cases: no break-glass account at all, only one where two are recommended, and a break-glass account that an enforced MFA or block policy would lock out. Detection is based on standard emergency-access naming conventions.
Why it matters
Break-glass accounts are how you recover the tenant if everything else fails, including your identity provider. Microsoft publishes a specific configuration for them; getting it wrong either locks you out during an incident or leaves a permanent backdoor.
Compliance mapping
NIS2-21.2.cNIS2-21.2.i

Rule 12

Service principals without owner

Medium
What it checks
Application registrations and service principals with no assigned owner. Cindera reports the application name, app ID, and creation date so you can locate who actually uses them.
Why it matters
An ownerless app is one nobody is responsible for, nobody to notify when its certificates expire, nobody to question if its permissions should still be there. They're a common source of stale, over-permissioned identities that survive employee turnover.
Compliance mapping
NIS2-21.2.iGDPR-32

Rule 13

Conditional access policies stuck in report-only

Medium
What it checks
Conditional access policies left in the report-only state for more than 30 days. Cindera lists each affected policy and how long it has been in report-only.
Why it matters
Report-only is a useful staging mode but it provides no protection, only telemetry. Policies parked there for months indicate either an abandoned rollout or a configuration nobody is confident enough to enable. Either way, your CA posture is weaker than it looks on paper.
Compliance mapping
NIS2-21.2.dNIS2-21.2.j

Rule 14

MFA registration coverage

MediumHighCritical
What it checks
The percentage of active users registered for a strong MFA method. Severity scales with the gap: a small backlog among newly created users is Medium, while large gaps or privileged users without MFA registered are High to Critical.
Why it matters
Even with an enforced MFA policy, unregistered users can be exploited during the registration grace window, for example via the well-known 'register an attacker's authenticator' attack. Closing the registration gap removes that path entirely.
Compliance mapping
NIS2-21.2.dGDPR-32

Rule 15

Administrative account separation

HighMedium
What it checks
Whether privileged accounts are separate identities or everyday ones. Two deviations are reported: an administrator synchronised from on-premises Active Directory rather than created in the cloud, and an administrator carrying assigned licences, which means mail and files sit on the same identity as the administrative rights. Break-glass accounts are excluded from both checks.
Why it matters
A synchronised administrator means whoever compromises your on-premises domain inherits the cloud tenant, with no further attack required; Microsoft's own tier model puts cloud administration outside that blast radius for exactly this reason. A licensed administrator is an account somebody reads mail on, which makes every phishing attempt an attempt on the directory rather than on one mailbox. Neither is a misconfiguration in the ordinary sense, which is why nobody revisits them.
Compliance mapping
NIS2-21.2.iNIS2-21.2.jGDPR-32

Rule 16

Cross-tenant trust

CriticalHighMedium
What it checks
The trust your tenant extends to other Microsoft 365 organisations. Three settings are reported: accepting a partner's multi-factor claim instead of challenging their users yourself, accepting their device compliance claims, and allowing a partner to synchronise user accounts into your directory.
Why it matters
Every other check here asks whether your own controls are correct. These ask whose controls you have agreed to accept instead. Trusting a partner's MFA claim makes your requirement exactly as strong as theirs, and you cannot inspect theirs. Inbound synchronisation goes further and lets another organisation create identities inside your security boundary. Both are usually configured once for convenience during a project and never looked at again.
Compliance mapping
NIS2-21.2.dNIS2-21.2.iNIS2-21.2.jGDPR-32

Rule 17

Ownership of privileged objects

CriticalHigh
What it checks
Users who own something privileged without holding a privileged role themselves. Three cases: the owner of a group excluded from an enforced MFA policy, the owner of a service principal holding tier-0 Graph permissions, and the owner of a group that can carry a directory role. Owners who already hold a privileged role are not reported, since they can do this directly anyway.
Why it matters
Every membership audit answers who is in a group or who holds a role. An owner appears in neither and can put themselves into both, so a role review that looks clean can still be wrong. The owner of an MFA exclusion group can exempt themselves from multi-factor authentication in one click; the owner of an application can add a credential and then act as that application with all of its permissions. Neither action requires approval, and both look like ordinary maintenance in the audit log.
Compliance mapping
NIS2-21.2.dNIS2-21.2.eNIS2-21.2.iGDPR-32

Rule 18

Tenant-wide default permissions

HighMedium
What it checks
Settings Microsoft ships switched on and almost nobody revisits: whether any employee can approve an application's access to their own data, whether guests see the directory as an employee does, whether any user can register an application or create a new tenant, whether anyone including guests can invite further guests, and whether the tenant is relying on security defaults instead of Conditional Access.
Why it matters
A customer can describe every policy they configured, and none of these, because configuring them was never a step anyone took. Unrestricted user consent is the illicit consent grant: the attack that needs no password, survives a password reset and is not stopped by MFA. Member-equivalent guest access hands every external account your full user list and org chart, which is the reconnaissance a targeted phishing campaign runs on. Neither shows up in a policy review because neither is a policy.
Compliance mapping
NIS2-21.2.eNIS2-21.2.iNIS2-21.2.jGDPR-32GDPR-5

Rule 19

Credentials on privileged applications

HighMedium
What it checks
The client secrets and certificates held by applications with tier-0 Graph permissions. Three things are reported: a credential added within the last two weeks, more than two live credentials on one application, and a credential valid for longer than a year. Certificates are included, not only secrets.
Why it matters
Adding a credential to a privileged application is the ordinary way to make access durable. It belongs to no person, so it survives a password change, an MFA rollout and the departure of whoever created it, and it produces no sign-in that looks unusual. It is also exactly what a routine rotation looks like, which is why the finding asks you to confirm which of the two happened rather than announcing a compromise. The expiring-secrets rule answers the separate, operational question of what is about to stop working.
Compliance mapping
NIS2-21.2.eNIS2-21.2.iGDPR-32

Rule 20

MFA enforcement in practice

CriticalHigh
What it checks
The share of real sign-ins over the last 30 days that completed with a single factor, on tenants whose configuration claims multi-factor authentication is required for everyone. Only interactive sign-ins are counted, and the rule stays silent below fifty of them.
Why it matters
Every other check reads configuration and reasons about what it should produce. This one reads the outcome. A policy can be correct and still not apply: an exclusion group added for a migration, a trusted location covering an entire ISP range, a policy scoped to selected applications, or a legacy protocol that bypasses Conditional Access altogether. All of those look fine in the policy blade, and the sign-in log is the only place the difference shows. It is also the number an auditor or insurer is really asking about when they ask whether MFA is enforced. Requires Entra ID P1, and stays silent rather than reporting a clean result when the log cannot be read.
Compliance mapping
NIS2-21.2.dNIS2-21.2.jGDPR-32

Last updated · 2026-08-23