Skip to content

Releases

3.1.0

Choose a tag to compare

@astaykov astaykov released this 20 Oct 11:13
Immutable release. Only release title and notes can be modified.
89db454

Release roll-up expanding Security Operations and Network coverage, adding new report insights, and improving data collection for larger tenants.

Install from PowerShell Gallery:

Install-PSResource -Name ZeroTrustAssessment -Version 3.1.0

⬆️ Upgrade requirements

  • PowerShell 7.6 or later is required.

πŸ“Š Report experience

  • Added a Microsoft 365 protection circuit that shows Global Secure Access traffic acquisition and compliant-network enforcement as separate stages.
  • Added a Private Access posture funnel showing app segmentation, strong authentication, and Application Administrator assignments.
  • Added Data insights for DLP policy coverage across Exchange, SharePoint, OneDrive, Teams, Endpoint, and Copilot, and sensitivity-label protection across classification, visual marking, encryption, and Double Key Encryption.
  • Added Infrastructure insights showing open Microsoft Defender for Cloud recommendations by severity, plus a weighted Cloud Secure Score overview across supported Azure, AWS, GCP, and developer/container environments.
  • Expanded device insights with Microsoft Defender for Endpoint sensor coverage by operating system and an antivirus protection summary.
  • Added an AI-agent ownership and sponsor distribution to help identify agents without an owner, sponsor, or both.
  • Refined the Azure network security planes and secure web gateway defense-layer visualizations.

πŸ›‘οΈ Security Operations assessments

Directory and privileged access

  • 41004 β€” Privileged Active Directory accounts are marked as sensitive and cannot be delegated.
  • 41008 β€” Local administrator passwords on identity assets are protected with Microsoft LAPS.
  • 41011 β€” Non-administrative accounts do not have domain-controller replication permissions.
  • 41012 β€” The Microsoft Entra Connect synchronization account does not have unnecessary replication permissions.

Email and collaboration

  • 41035 β€” User reports of phishing and spam are routed to a reviewed mailbox.
  • 41036 β€” Attack Simulation Training is configured and a baseline simulation has run within the last 12 months.
  • 41039 β€” Zero-hour auto purge is enabled for malware, phishing, and spam in email.
  • 41040 β€” Tenant Allow/Block List allow entries are reviewed for expiration, justification, and staleness.

Endpoint protection

  • 41049 β€” The Microsoft Defender Antivirus user interface is hidden from end users.
  • 41050 β€” Attack surface reduction rules are enabled in block mode.
  • 41051 β€” Removable storage and device-control policies are enforced through Intune.
  • 41054 β€” Controlled folder access is enabled in block mode.
  • 41055 β€” Microsoft Defender Antivirus real-time, behavioral, and heuristic protections are enabled.
  • 41119 β€” Local modification of Microsoft Defender Antivirus policy is blocked.

Cloud app session controls

  • 41080 β€” Conditional Access App Control session policies are enabled for cloud apps.
  • 41083 β€” Step-up authentication is required for risky in-session actions.

Microsoft Sentinel and Security Copilot

  • 41201 β€” Each Sentinel-onboarded workspace has a Microsoft first-party data connector.
  • 41202 β€” Third-party data connectors are configured for in-scope non-Microsoft workloads.
  • 41203 β€” Custom connectors are configured for in-scope sources without a built-in connector.
  • 41204 β€” Workspace interactive and total retention meet the security baseline.
  • 41205 β€” Data collection rules control ingestion into Sentinel workspaces.
  • 41210 β€” Microsoft Threat Intelligence indicators are integrated into Sentinel.
  • 41212 β€” Sentinel hunting is operationalized with saved queries or bookmarks.
  • 41214 β€” A Sentinel automation rule runs a playbook for automated threat response.
  • 41216 β€” Security Copilot capacity consumption is monitored and alerted on through Cost Management.
  • 41217 β€” Sentinel security tables use an appropriate Analytics, Basic, or Auxiliary storage plan.

🌐 Network and AI Gateway assessments

  • 25412 β€” Global Secure Access threat-intelligence filtering protects internet traffic from malicious destinations.
  • 27028 β€” A web content filtering policy on the Global Secure Access baseline profile governs Copilot Studio agent traffic.

πŸ“ˆ Performance improvement efforts

These improvements address performance and stability concerns raised in #1236 and related large-tenant feedback.

  • Graph request handling: Batched Graph GET requests now use the shared batch-request helper, with more consistent paging, throttling and transient-error retries, and dependency recovery. Checks that retrieve data for many principals can make fewer individual network round trips, while recovery behavior is more consistent.
  • Export pipeline: Export queries now select smaller field sets for applications, users, sign-in logs, service principals, and privileged-group members. Role-assignment and eligibility schedule-instance exports request principal IDs first, resolve only the fields needed for assessment processing in batches, and cache results across pages. Page reconciliation updates saved exports without keeping all pages in memory. Together, the export configuration and model changes reduce response size, repeated lookups, and memory/serialization work.
  • DuckDB resource cleanup: Database query commands and readers are now disposed in a finally block, including when result processing fails. This prevents query resources from accumulating during long or repeated assessments.
  • Existing assessment refinements: Existing checks were optimized or corrected across authentication and privileged access (21801, 21814, 21818), guest ownership and sponsorship (21868, 21877), Global Secure Access and Private Access (25376, 25384, 25395, 25396), Defender for Cloud recommendations (50001), and Copilot agent discovery and sign-in evidence (61005, 61011). These changes include using exported data for local role analysis, limiting policy checks to privileged roles, bounding report detail, and improving result handling for incomplete or mismatched data. Some refinements improve correctness and report clarity rather than runtime speed.
  • Expanded Pester coverage for Graph batching and retries, export behavior, report data, telemetry, and the updated assessments to guard against regressions. The tests improve change confidence; they are not themselves runtime optimizations.

Assessments of large tenants may still take a long time. The goal is reliable completion: tenant size or a long runtime alone should not cause the assessment to break or fail. For larger tenants, an appropriately sized dedicated Windows VM with sufficient CPU and memory is still recommended. See the dedicated clean VM guidance.

πŸ”’ Telemetry and demo-report safety

  • Added a run-time telemetry notice that explains the event payload and the -DisableTelemetry switch. The event contains the tenant ID as its only tenant-specific custom property and does not include assessment results; standard network metadata may still be processed by Azure Monitor or intervening network services.
  • Reworked demo-report generation to replace tenant-specific identities and resource details with synthetic values, validate the generated report data and HTML, and verify anonymization before publishing demo outputs.

πŸ“š Documentation and maintenance

  • Updated the PowerShell guide, troubleshooting guidance, and report screenshots, and added a Zero Trust Workshop pitch deck.
  • Added a repository verification script and development conventions, refreshed the build and release scripts for the current PowerShell requirements, and pinned GitHub Actions to full commit SHAs.

Full changelog

2.6.0

Choose a tag to compare

@astaykov astaykov released this 01 Aug 18:43
Immutable release. Only release title and notes can be modified.

Release roll-up introducing a redesigned assessment report experience, expanded Security Operations and Network coverage, stronger privacy protections for diagnostics, and updated Zero Trust Workshop integration and guidance.

Install from PowerShell Gallery:

Install-Module -Name ZeroTrustAssessment -RequiredVersion 2.6.0

πŸ“Š Report experience

  • A redesigned report is now generated as ZeroTrustAssessmentReport.html and opened by default.
  • The previous report remains available alongside it as ZeroTrustAssessmentReport-classic.html.
  • The overview now includes AI agent counts and recent active agent users.
  • Device insights now include operating-system distribution, desktop join and compliance state, mobile compliance, ownership, and managed-device summaries.
  • New Network visualizations show how Azure workloads are protected across inbound, outbound, and availability defense planes.
  • Report generation now validates template paths and embedded-data markers, with improved temporary-file handling.

πŸ›‘οΈ Security Operations assessments

Microsoft Defender for Office 365 and collaboration protection

  • 41033 β€” Anti-phishing policies in Microsoft Defender for Office 365 are configured with impersonation and spoof protection
  • 41034 β€” Anti-spam (hosted content filter) policies are configured with recommended thresholds and actions
  • 41114 β€” Microsoft Teams protection policies are configured to block malicious messages, links, and attachments
  • 41116 β€” Threat hunting against Email and Collaboration tables in Microsoft 365 Defender Advanced Hunting is operational

Endpoint and application control

  • 41052 β€” Application control (WDAC / App Control for Business) is enforced via Intune

Microsoft Sentinel and Security Copilot

  • 41209 β€” User and Entity Behavior Analytics (UEBA) is enabled in Microsoft Sentinel
  • 41211 β€” Auditing and health monitoring is enabled for Microsoft Sentinel
  • 41215 β€” Microsoft Security Copilot capacity (Security Compute Units) is provisioned in the tenant

🌐 Network coverage

  • 25375 β€” The tenant holds the licenses required to operate Global Secure Access
  • 27024 β€” HTTP DDoS protection rule set is enabled in Azure Front Door WAF
  • Added report insights for Azure inbound, outbound, and availability defense planes.

βœ… Pillars and assessment metadata

  • Infrastructure, Security Operations, and AI have moved out of preview. All current pillars now run by default without requiring -Preview.
  • The -Preview switch remains available for future preview-only functionality.
  • Assessment 35037 was retired because it cannot be evaluated reliably by the assessment framework. (#1434)
  • Updated Secure Future Initiative pillar mappings and implementation metadata for assessments 21835, 24550, and 24552.

πŸ”’ Privacy and diagnostic safety

  • Added defense-in-depth sanitization before error details are persisted to reports, logs, or test results. (#1426)
  • Credential-bearing HTTP headers, sensitive values, response bodies, and unsafe target objects are excluded from persisted diagnostics.
  • Failed tests now use bounded, structured diagnostic summaries containing safe fields such as request method and path, HTTP status, Graph error code, correlation IDs, exception type, and source location.

🧩 Zero Trust Workshop integration

Assessment results now generate a ready-to-import Zero Trust Workshop notes file at <output folder>\zt-export\ZeroTrustWorkshop.json. Take this file and import it directly into the Zero Trust Workshop at aka.ms/zerotrust/workshop.

πŸ“š Workshop guidance and documentation

  • Added comprehensive DevSecOps Workshop guidance.
  • Expanded Workshop guidance for AI, Devices, and Network tasks.
  • Added and refreshed AI, Assessment, Devices, and DevSecOps videos.
  • Updated the Workshop and Assessment site experience, screenshots, delivery guidance, and version history.
  • Updated module documentation for the new default pillars and dual report outputs.

2.5.0

Choose a tag to compare

@astaykov astaykov released this 21 Jul 12:53
Immutable release. Only release title and notes can be modified.
4ccd9e8

Release roll-up introducing a comprehensive Security Operations (SecOps) pillar and a major Devices pillar expansion, plus new AI and Infrastructure checks, framework performance and caching improvements, and correctness fixes.

Install from PowerShell Gallery:

Install-Module -Name ZeroTrustAssessment -RequiredVersion 2.5.0

πŸ›‘οΈ Security Operations pillar

Microsoft Defender for Identity

  • 41002 β€” Microsoft Defender for Identity sensor is installed and healthy on every domain controller
  • 41003 β€” Microsoft Defender for Identity sensors are installed and healthy on AD FS, AD CS, and Microsoft Entra Connect servers
  • 41018 β€” No open Microsoft Defender for Identity health issues are present in the tenant
  • 41019 β€” Compromised identities surfaced by Microsoft Defender for Identity have been remediated
  • 41020 β€” Microsoft Defender for Identity sensor deployment is validated by reviewing the Health Issues page
  • 41022 β€” Microsoft Defender for Identity security alerts have been triaged and tuned
  • 41009 β€” Dormant accounts have been removed from sensitive Active Directory groups

Endpoint & antivirus protection

  • 41029 β€” Anti-malware policies are configured according to recommended settings
  • 41045 β€” All eligible endpoints are onboarded to Microsoft Defender for Endpoint
  • 41053 β€” Network protection is enabled in block mode
  • 41059 β€” EDR in block mode is enabled when Microsoft Defender Antivirus is not the primary antivirus
  • 41060 β€” Cloud-delivered protection is enabled in Microsoft Defender Antivirus

Email & collaboration security

  • 41031 β€” Safe Attachments policies in Microsoft Defender for Office 365 are configured to detonate and block
  • 41032 β€” Safe Links policies in Microsoft Defender for Office 365 are configured to scan and block malicious URLs

Detection, triage & response

  • 41041 β€” Automated Investigation and Response (AIR) recommendations are reviewed and actioned
  • 41061 β€” All active Microsoft Defender XDR incidents are triaged and remediated
  • 41062 β€” Automated Investigation and Response (AIR) recommendations are reviewed and actioned
  • 41081 β€” At least one Microsoft Defender for Cloud Apps anomaly detection policy is generating alerts
  • 41121 β€” Every open Microsoft Defender XDR alert is triaged across all Defender services, with no high-severity alert left unassigned or unworked past its triage window

Microsoft Sentinel

  • 41206 β€” At least one workbook is deployed in every Microsoft Sentinel workspace for visualization and operational reporting
  • 41207 β€” Active analytics rules are configured in Microsoft Sentinel to detect threats
  • 41208 β€” At least one watchlist is configured in Microsoft Sentinel for correlation against high-value entities
  • 41213 β€” At least one automation rule is configured in Microsoft Sentinel to manage incident response

πŸ’» Devices pillar

  • 51001 β€” Windows Endpoint Privilege Management is configured and assigned
  • 51013 β€” App Protection Policies block managed-app access when user re-authentication fails (disabled Entra ID accounts, blocked sign-ins, expired tokens)
  • 51014 β€” App Protection Policies block managed-app access on jailbroken or rooted mobile devices
  • 51015 β€” Multi Admin Approval is enabled in Intune to require a second admin to approve sensitive tenant changes
  • 51016 β€” Privileged Identity Management is enforced for Intune Administrator role assignments
  • 51018 β€” Windows App Control for Business (WDAC) is configured and assigned via Intune
  • 51019 β€” MAM app access timeout and re-authentication are enforced after idle period
  • 24550 β€” Data on Windows is protected by BitLocker encryption

πŸ€– AI pillar

  • 61017 β€” Microsoft Defender for AI Services alerts are flowing to the Microsoft Sentinel workspace via a single connector path
  • 61023 β€” A365 Observability data connector is enabled on the Microsoft Sentinel workspace

πŸ—οΈ Infrastructure pillar

  • 50001 β€” Surfaces Microsoft Defender for Cloud recommendations in the report's Infrastructure view (view and reporting enhancements). (#1408)

πŸ”‘ Graph permissions

Added the scopes required by the new SecOps checks:

  • SecurityIdentitiesSensors.Read.All, SecurityIdentitiesHealth.Read.All β€” Defender for Identity sensor & health checks
  • SecurityEvents.Read.All, SecurityAlert.Read.All, SecurityIncident.Read.All β€” alerts and incident triage checks
  • ThreatHunting.Read.All β€” advanced hunting queries
  • PrivilegedAssignmentSchedule.Read.AzureADGroup, PrivilegedEligibilitySchedule.Read.AzureADGroup β€” privileged role/group assignment checks

Permission list in the README and Get-ZtGraphScope was sorted and reconciled with the new checks.

⚑ Performance & framework

  • Caching rework with configurable timeouts and memory improvements to keep large-tenant runs responsive.
  • Group membership resolution now uses a larger page size to reduce Graph round-trips.
  • Tests requiring Exchange Online or SharePoint Online are no longer run in parallel, avoiding session contention.
  • Invoke-ZtGraphRequest now supports POST requests (enables advanced hunting and other POST-based Graph calls).
  • Added a Tenant alias for the TenantId parameter.

🐞 Fixed issues

  • #1230 β€” Corrected the AIP service environment (USGov DoD) and the Security & Compliance AADAuthEndpointUri.
  • #1310 β€” Sankey reports are now resilient to null/missing link values; additional renderer guard added.
  • #1365 β€” Fixed PSGallery repository registration during publish on PowerShell 7.6+.
  • Test 24550 β€” fixed a $profile variable collision and corrected the test category.
  • Corrected the KnownPillars value to security-ops for the SecOps pillar.
  • Fixed result counting when -DisablePaging is used in Graph requests.
  • Standardized the device test category to Devices for consistency.

πŸ› οΈ Tooling & docs

  • Zero Trust Workshop export (Convert-ZtAssessmentToWorkshop) enhancements: markdown cleanup, long-line compaction, status-icon/emoji de-duplication, a notes hard-cap, and skip diagnostics.
  • README and Graph scope documentation updated for the new SecOps and Infrastructure checks (including a Security Reader note for test 41114).

2.4.0

Choose a tag to compare

@astaykov astaykov released this 12 Jun 21:02
d9b193e

Release roll-up introducing a comprehensive AI security pillar and an Infrastructure pillar, plus correctness and performance fixes.

Install from PowerShell Gallery:

Install-Module -Name ZeroTrustAssessment -RequiredVersion 2.4.0

πŸ€– AI pillar assessments

AI Threat Detection

  • 61002 β€” Microsoft Sentinel onboarded on at least one Log Analytics workspace
  • 61016 β€” Entra ID Protection risk events flowing to the Sentinel workspace
  • 61018 β€” Purview Information Protection data connector enabled on Sentinel
  • 61021 β€” Microsoft 365 Copilot data connector enabled on Sentinel
  • 61022 β€” Defender for AI Services enabled on every subscription hosting Azure OpenAI / AI Services
  • 61024 β€” Defender XDR (unified) data connector enabled on Sentinel

AI Cloud Posture

  • 61004 β€” Defender for Cloud CSPM plan enabled on all Azure subscriptions

AI Authentication & Access

  • 61006 β€” AI administrative roles have assigned principals
  • 61009 β€” Conditional Access covers both agent identities and agent users
  • 61011 β€” Require users to use Entra ID auth to interact with agents
  • 61012 β€” Risk-based Conditional Access blocks risky agent identities
  • 61013 β€” Identity governance for agents (sponsors, entitlement management, lifecycle automation)
  • 61008 β€” Agent identity lifecycle tagging (custom security attributes present)

AI Inventory & Lifecycle

  • 61005 β€” Copilot agents are discoverable in the Agent Registry
  • 61014 β€” Agent identities & blueprint principals have technical owners; no disabled agents remain

Global Secure Access

  • 25415 β€” AI Gateway protects enterprise generative AI apps from prompt-injection attacks

Data security & information-protection checks in the AI pillar

  • 35003–35008 β€” Sensitivity label configuration, publishing, SharePoint/OneDrive labeling, PDF labeling, IRM, default library labels
  • 35010–35017 β€” Double Key Encryption, super-user membership, container labels, encryption labels, attachment inheritance, mandatory & default labeling
  • 35019–35025 β€” Auto-labeling (config, enforcement, SharePoint/OneDrive), on-demand scans, OCR, Azure RMS activation & licensing
  • 35030–35036 β€” DLP policies, Adaptive Protection, custom SITs, Exact Data Match, named entities, trainable classifiers
  • 35037–35041 β€” M365 audit logging, Insider Risk for risky AI usage, communication compliance for Copilot & enterprise AI tools, browser DLP for AI apps via Edge for Business

πŸ—οΈ Infrastructure pillar

  • 50001 β€” Surfaces Microsoft Defender for Cloud recommendations from the connected/scanned environment in the report's Infrastructure view.

🧩 Zero Trust Workshop integration (experimental)

  • Assessment results now project onto Zero Trust Workshop tasks and emit a ZeroTrustWorkshop.json for direct import into the Workshop app (best-effort; never fails the run).

πŸ”‘ Graph permissions

  • Added scopes required by the new AI checks (Lifecycle Workflows, privileged assignment/eligibility schedules, Copilot packages).

🐞 Fixed issues

  • #1194 β€” Test 21835: performance, correctness & reporting cleanups for the emergency-access account check.
  • #1274 β€” Test 24552: explicit null guard so firewall status is detected correctly.
  • #1264 β€” Test 25392: now correctly reports "skipped" when no private-access connectors are installed.
  • #1235 β€” HTML report crashed on render despite a clean run; rendering safety fixes applied.
  • #1193 β€” Use the system browser (-UseSystemBrowser) for SharePoint Online interactive auth in Connect-ZtAssessment.
  • #687 β€” Truncate large results tables (applied to 61014) to keep the report readable.
  • 21816 β€” PIM privileged-role assignment check now accounts for JIT access into role-assignable groups.

πŸ› οΈ Tooling & docs

  • New support-package analyzer skill and Copilot review instructions.
  • New troubleshooting guide with PII/OII/EUII sanitization guidance.

2.3.0

Choose a tag to compare

@astaykov astaykov released this 10 Jun 08:58

Zero Trust Assessment 2.3.0

Install from PowerShell Gallery:

powershell Install-Module -Name ZeroTrustAssessment -RequiredVersion 2.3.0

2.0.0

Choose a tag to compare

@merill merill released this 03 Nov 06:46

Zero Trust Assessment V2

  • Updated html based reporting
  • Additional tests for Identity (100) and Devices (36)

The previous version can be installed using the -RequiredVersion parameter.

Install-Module -Name ZeroTrustAssessment -RequiredVersion 1.3.0

0.23.0 - Release Candidate

Pre-release

Choose a tag to compare

@merill merill released this 01 Nov 06:58
Update ZeroTrustAssessmentV2.psd1

Public Preview Release Candidate

Pre-release

Choose a tag to compare

@merill merill released this 31 Oct 07:14
0.22.0

Update ZeroTrustAssessmentV2.psd1

0.20.0

0.20.0 Pre-release
Pre-release

Choose a tag to compare

@merill merill released this 22 Oct 09:16

Release Candidate - Oct 25

v.0.19.0

v.0.19.0 Pre-release
Pre-release

Choose a tag to compare

@merill merill released this 22 Oct 04:28

Release candidate Oct 2025