Fixture Subscription
Last run 2026-09-09T03:27:45Z
Observed posture
Collection completeness
Accepted risk
Effective posture
Freshness
Audit readiness
Ready for the audit binder: automated checks plus manually tracked status and evidence. Mapped to, not certified against.
Identity
Network
Storage
Data
Logging
Governance
Compute
Defender
Microsoft Secure Score: 68.2% (Azure says).
ProofKit observed posture: 24%.
ProofKit effective posture with 2 compensating controls: 26%.
Secure Score only sees controls inside the tenant.
Microsoft 365: Entra baseline
Microsoft 365: SharePoint and OneDrive
Microsoft 365: collected by script
Checks
From the run on 2026-09-09T03:27:45Z. Full run history › · Access reviews › · Policies › · Microsoft 365 › · Trust center ›
145 of 145 checks map to SOC 2: 14 pass, 45 fail, 41 warn.
Audit target: SOC 2 Type 2, 2026-07-01 to 2026-12-31 · Scope
Evidence collected on 3 runs across the period.
| Check | Family | Severity | Status | SOC 2 control | Affected |
|---|---|---|---|---|---|
| Users without MFA registered | identity | high | fail | CC6.1 | 3 |
| Conditional Access requires MFA | identity | high | pass | CC6.1 | |
| Legacy authentication is blocked | identity | high | warn | CC6.1 | 5 |
| Security defaults or Conditional Access | identity | medium | warn | CC6.1 | 2 |
| Number of Global Administrators | identity | medium | pass | CC6.3 | |
| Global Administrators without MFA | identity | high | fail | CC6.1 | 1 |
| Stale guest accounts | identity | low | warn | CC6.2 | 2 |
| Stale member accounts | identity | low | warn | CC6.2 | 2 |
| Privileged role membership over 5 | identity | medium | warn | CC6.3 | 6 |
| Guest accounts in a directory role | identity | high | fail | CC6.1 | 1 |
| Application credentials expired or expiring | identity | high | fail | CC6.1 | 1 |
| Application secrets older than 2 years | identity | medium | warn | CC6.1 | 1 |
| Non-expiring passwords without MFA | identity | medium | warn | CC6.1 | 1 |
| Application credentials expired, expiring, or too long lived | identity | medium | fail | CC6.1 | 3 |
| Application credentials with no owner | identity | low | warn | CC6.3 | 1 |
| Risky OAuth consent grants | identity | high | fail | CC6.3 | 3 |
| Privileged role members without MFA registered | identity | high | fail | CC6.1 | 5 |
| Guests stale for 90 days or never signed in | identity | low | warn | CC6.2 | 2 |
| Successful sign-ins using legacy authentication | identity | high | fail | CC6.1 | 2 |
| Security defaults or an effective Conditional Access MFA policy | identity | medium | pass | CC6.1 | |
| Banned password protection and lockout | identity | medium | fail | CC6.1 | 2 |
| NSGs open to the internet on management ports | network | high | fail | CC6.6 | 1 |
| NSGs allowing any port from the internet | network | high | pass | CC6.6 | |
| VMs with a public IP | network | medium | warn | CC6.6 | 2 |
| Subnets without an NSG | network | medium | fail | CC6.6 | 1 |
| Storage accounts open to the public network | network | high | fail | CC6.6 | 1 |
| SQL server firewall allows every IP | network | high | pass | CC6.6 | |
| Key vaults open to the public network | network | high | fail | CC6.6 | 1 |
| No Azure Bastion for VMs with a public IP | network | medium | warn | CC6.6 | 1 |
| App Service sites not HTTPS-only | network | high | fail | CC6.7 | 1 |
| App Service minimum TLS version below 1.2 | network | medium | fail | CC6.7 | 1 |
| App Service allows plain FTP | network | low | warn | CC6.7 | 1 |
| Virtual networks without DDoS Protection Standard | network | low | warn | CC6.6 | 1 |
| Anonymous blob access allowed | storage | high | fail | CC6.1 | 1 |
| Minimum TLS version below 1.2 | storage | medium | fail | CC6.7 | 1 |
| HTTPS not enforced | storage | high | pass | CC6.7 | |
| Blob soft delete disabled | storage | medium | pass | A1.2 | |
| Shared key access still allowed | storage | low | warn | CC6.1 | 1 |
| Infrastructure encryption not required | storage | low | warn | CC6.1 | 2 |
| Blob versioning disabled | storage | low | warn | A1.2 | 1 |
| File share soft delete disabled | storage | low | warn | A1.2 | 1 |
| Public storage with no private endpoint | storage | low | warn | CC6.6 | 1 |
| SQL server auditing disabled | data | medium | fail | CC7.2 | 1 |
| Transparent data encryption disabled | data | high | pass | CC6.1 | |
| Defender for SQL disabled | data | medium | fail | CC7.1 | 1 |
| Key vault soft delete or purge protection off | data | high | fail | A1.2 | 1 |
| Key vault has no diagnostic logging | data | medium | pass | CC7.2 | |
| SQL server allows local (SQL) authentication | data | medium | warn | CC6.1 | 1 |
| SQL Vulnerability Assessment disabled | data | medium | fail | CC7.1 | 1 |
| PostgreSQL/MySQL do not require a secure connection | data | high | fail | CC6.7 | 1 |
| PostgreSQL open to every IP address | data | high | fail | CC6.6 | 1 |
| Cosmos DB open to every IP address | data | high | fail | CC6.6 | 1 |
| Activity log not exported | logging | medium | fail | CC7.2 | 1 |
| No Log Analytics workspace | logging | medium | pass | CC7.2 | |
| Azure says: Defender for Cloud plans on Free tier | logging | medium | warn | CC7.1 | 3 |
| No security contact configured | logging | low | fail | CC7.2 | 1 |
| Azure says: Policy compliance | logging | low | warn | CC7.1 | 1 |
| Log Analytics retention below 90 days | logging | medium | warn | CC7.2 | 1 |
| NSGs without a flow log | logging | medium | warn | CC7.2 | 2 |
| Missing activity log alerts for key changes | logging | medium | fail | CC7.2 | 7 |
| Azure says: additional Defender for Cloud plans on Free tier | logging | medium | warn | CC7.1 | 2 |
| Custom roles granting unrestricted actions | governance | high | fail | CC6.3 | 1 |
| Sensitive resource groups without a lock | governance | low | warn | A1.2 | 3 |
| No allowed-locations policy assigned | governance | low | warn | CC6.1 | 1 |
| VMs with unmanaged OS disks | compute | medium | fail | A1.2 | 1 |
| Disks without customer-managed key encryption | compute | low | warn | CC6.1 | 1 |
| Public VMs without Just-In-Time access | compute | medium | warn | CC6.6 | 1 |
| VMs without a backup | compute | medium | warn | A1.2 | 2 |
| Windows VMs without automatic updates | compute | low | warn | CC7.1 | 1 |
| AKS clusters without Kubernetes RBAC | compute | high | fail | CC6.3 | 1 |
| AKS API server open to the internet | compute | high | fail | CC6.6 | 1 |
| VMs without the Azure Monitor Agent | compute | low | warn | CC7.2 | 2 |
| Azure says: secure score | defender | low | warn | CC7.1 | 1 |
| Azure says: top unhealthy assessments | defender | low | fail | CC7.1 | 10 |
| High-risk users are blocked | m365_entra | high | fail | CC7.2 | 6 |
| High-risk sign-ins are blocked | m365_entra | high | fail | CC7.2 | 6 |
| Phishing-resistant MFA is enforced for all users | m365_entra | high | warn | CC6.1 | 5 |
| Microsoft Authenticator shows sign-in context | m365_entra | high | fail | CC6.1 | 1 |
| Authentication methods policy migration is complete | m365_entra | high | pass | CC6.1 | |
| SMS, voice call and email OTP are disabled | m365_entra | high | fail | CC6.1 | 3 |
| A managed device is required for authentication | m365_entra | medium | warn | CC6.1 | 5 |
| A managed device is required to register MFA | m365_entra | medium | fail | CC6.1 | 6 |
| Device code authentication is blocked | m365_entra | medium | fail | CC6.1 | 6 |
| Only administrators can register applications | m365_entra | high | fail | CC6.3 | 1 |
| User consent to applications is restricted | m365_entra | high | fail | CC6.3 | 1 |
| An admin consent workflow is configured | m365_entra | high | pass | CC6.3 | |
| Application password credential addition is blocked | m365_entra | medium | pass | CC6.1 | |
| Privileged accounts are cloud-only | m365_entra | high | pass | CC6.3 | |
| No permanent active assignment to a highly privileged role | m365_entra | high | warn | CC6.3 | |
| Privileged roles are provisioned only through PIM | m365_entra | high | warn | CC6.3 | |
| Global Administrator activation requires approval | m365_entra | high | warn | CC6.3 | |
| Privileged role assignment triggers an alert | m365_entra | high | warn | CC7.2 | |
| Global Administrator activation triggers an alert | m365_entra | high | warn | CC7.2 | |
| Other privileged role activation triggers an alert | m365_entra | medium | warn | CC7.2 | |
| Only admins and Guest Inviters can invite guests | m365_entra | medium | fail | CC6.2 | 1 |
| Guest invites are restricted to approved domains | m365_entra | medium | fail | CC6.2 | |
| Risky AI agents are blocked (Preview) | m365_entra | high | warn | CC6.1 | 1 |
| SharePoint external sharing is limited | m365_sharepoint | high | fail | CC6.2 | 1 |
| OneDrive external sharing is limited | m365_sharepoint | high | fail | CC6.2 | 1 |
| External sharing is restricted to approved domains | m365_sharepoint | high | fail | CC6.2 | 1 |
| Automatic forwarding to external domains SHALL be disabled | m365_collected | high | na | CC6.7 | |
| DKIM SHOULD be enabled for all domains | m365_collected | medium | na | CC6.7 | |
| SMTP AUTH SHALL be disabled | m365_collected | medium | na | CC6.1 | |
| Contact folders SHALL NOT be shared with all domains | m365_collected | medium | na | CC6.7 | |
| Calendar details SHALL NOT be shared with all domains | m365_collected | medium | na | CC6.7 | |
| External sender warnings SHALL be implemented | m365_collected | low | na | CC6.7 | |
| Mailbox auditing SHALL be enabled | m365_collected | high | na | CC7.2 | |
| The standard and strict preset security policies SHALL be enabled | m365_collected | high | na | CC7.1 | |
| All users SHALL be added to EOP in either the standard or strict preset policy | m365_collected | high | na | CC7.1 | |
| All users SHALL be added to Defender for Office 365 in standard or strict | m365_collected | high | na | CC7.1 | |
| Sensitive accounts SHALL be added to EOP in the strict preset policy | m365_collected | high | na | CC7.1 | |
| Sensitive accounts SHALL be added to Defender for Office 365 in strict | m365_collected | high | na | CC7.1 | |
| User impersonation protection SHOULD be enabled for sensitive accounts | m365_collected | medium | na | CC7.1 | |
| Domain impersonation protection SHOULD be enabled for agency-owned domains | m365_collected | medium | na | CC7.1 | |
| Domain impersonation protection SHOULD be added for key suppliers/partners | m365_collected | low | na | CC7.1 | |
| Safe attachments SHOULD be enabled for SharePoint, OneDrive and Teams | m365_collected | medium | na | CC6.7 | |
| Unified Audit logging SHALL be enabled | m365_collected | high | na | CC7.2 | |
| A custom policy SHALL protect PII (credit cards, ITIN, SSN at minimum) | m365_collected | high | na | CC6.7 | |
| The custom policy SHOULD cover Exchange, OneDrive, SharePoint, Teams and Devices | m365_collected | medium | na | CC6.7 | |
| The custom policy SHOULD block sharing sensitive info with everyone | m365_collected | medium | na | CC6.7 | |
| User notifications SHOULD be enabled in the custom policy | m365_collected | low | na | CC6.7 | |
| A restricted-apps list SHOULD be defined for the custom policy | m365_collected | low | na | CC6.7 | |
| The custom policy SHOULD block device/Bluetooth access to sensitive content | m365_collected | medium | na | CC6.7 | |
| The CISA-required Exchange Online alert policies SHALL be enabled | m365_collected | medium | na | CC7.2 | |
| Alerts SHOULD be sent to a monitored address or a SIEM | m365_collected | medium | na | CC7.2 | |
| Audit logs SHALL be retained for at least 12 months (OMB M-21-31) | m365_collected | medium | na | CC7.2 | |
| External meeting participants SHOULD NOT request control of shared desktops | m365_collected | low | na | CC6.1 | |
| Anonymous users SHALL NOT be enabled to start meetings | m365_collected | high | na | CC6.1 | |
| Anonymous users and dial-in callers SHOULD NOT be admitted automatically | m365_collected | medium | na | CC6.1 | |
| Internal users SHOULD be admitted automatically | m365_collected | low | na | CC6.1 | |
| Dial-in users SHOULD NOT be enabled to bypass the lobby | m365_collected | medium | na | CC6.1 | |
| Meeting recording SHOULD be disabled | m365_collected | low | na | CC6.1 | |
| Record an event SHOULD NOT be set to Always record | m365_collected | low | na | CC6.1 | |
| External access for users SHALL only be enabled on a per-domain basis | m365_collected | medium | na | CC6.1 | |
| Unmanaged users SHALL NOT be enabled to initiate contact with internal users | m365_collected | medium | na | CC6.1 | |
| Internal users SHOULD NOT initiate contact with unmanaged users | m365_collected | low | na | CC6.1 | |
| Teams email integration SHALL be disabled | m365_collected | medium | na | CC6.1 | |
| Only agency-approved Microsoft apps SHOULD be installable | m365_collected | low | na | CC6.1 | |
| Only agency-approved third-party apps SHOULD be installable | m365_collected | medium | na | CC6.1 | |
| Only agency-approved custom (sideloaded) apps SHOULD be installable | m365_collected | medium | na | CC6.1 | |
| An SPF policy SHALL be published for each domain that fails all non-approved senders | m365_collected | high | na | CC6.7 | |
| A DMARC policy SHALL be published for every second-level domain | m365_collected | high | na | CC6.7 | |
| The DMARC message rejection option SHALL be p=reject | m365_collected | high | na | CC6.7 | |
| The DMARC rua contact SHALL include [email protected] | m365_collected | low | na | CC6.7 | |
| An agency point of contact SHOULD also receive DMARC reports | m365_collected | low | na | CC6.7 |