m365advisor-tests/dpdp/Test-MtDpdpBaselines.Tests.ps1
|
Describe "DPDP Act 2023 Compliance - Complete Audit Suite" -Tag "DPDP", "DPDP2023", "IndiaDPDP" { # ========================================== # Category 1: Notice & Consent Management # ========================================== It "DPDP.1.1: Purview Sensitivity Labels SHALL be configured to discover and classify Indian PII/SPII data." { $result = Test-MtCisEnsureGuestAccessRestricted if ($null -ne $result) { $result | Should -Be $true -Because "sensitivity classification and guest access controls safeguard PII." } } It "DPDP.1.2: External sharing in SharePoint Online & Teams SHALL be restricted to approved domains/users." { $result = Test-MtCisSpoGuestAccessExpiry if ($null -ne $result) { $result | Should -Be $true -Because "external sharing restrictions protect consent and purpose boundaries." } } It "DPDP.1.3: Anonymous ('Anyone with the link') sharing links SHALL be disabled tenant-wide." { $result = Test-MtCisSpoDefaultSharingLink if ($null -ne $result) { $result | Should -Be $true -Because "anonymous links violate DPDP data access controls." } } It "DPDP.1.4: Default sharing link permissions SHALL be set to Specific People or Internal Users only." { $result = Test-MtCisSpoDefaultSharingLinkPermission if ($null -ne $result) { $result | Should -Be $true -Because "restrictive default link permissions enforce consent limits." } } It "DPDP.1.5: User consent to third-party apps SHALL be disallowed requiring Admin Consent Workflow." { $result = Test-MtCisEnsureUserConsentToAppsDisallowed if ($null -ne $result) { $result | Should -Be $true -Because "unauthorized app consent violates section 6 consent rules." } } It "DPDP.1.6: Children's data processing SHALL be protected without tracking or targeted ads." { $result = Test-MtCisThirdPartyStorageServicesRestricted if ($null -ne $result) { $result | Should -Be $true -Because "section 9 mandates strict child data protection controls." } } # ========================================== # Category 2: Technical & Security Safeguards # ========================================== It "DPDP.2.1: Multi-Factor Authentication (MFA) SHALL be enforced for all users accessing personal data." { $result = Test-MtCisWeakAuthenticationMethodsDisabled if ($null -ne $result) { $result | Should -Be $true -Because "strong identity safeguards are required under Section 8(5)." } } It "DPDP.2.2: Legacy and weak authentication protocols SHALL be disabled tenant-wide." { $result = Test-MtCisCloudAdmin if ($null -ne $result) { $result | Should -Be $true -Because "legacy auth bypasses MFA and identity security controls." } } It "DPDP.2.3: Data Loss Prevention (DLP) policies SHALL block outbound transfer of Indian PII/SPII." { $result = Test-MtCisAttachmentFilterComprehensive if ($null -ne $result) { $result | Should -Be $true -Because "DLP safeguards prevent unauthorized data exfiltration." } } It "DPDP.2.4: Exchange Online attachment and file filtering policies SHALL be active." { $result = Test-MtCisAttachmentFilter if ($null -ne $result) { $result | Should -Be $true -Because "attachment filtering prevents malicious payload processing." } } It "DPDP.2.5: Safe Links and Safe Attachments anti-malware policies SHALL be enabled." { $result = Test-MtCisSafeAttachmentsAtpPolicy if ($null -ne $result) { $result | Should -Be $true -Because "ATP policies protect personal data systems from ransomware." } } It "DPDP.2.6: BitLocker Encryption SHALL be enforced on endpoints processing personal data." { $result = Test-MtCisDevicesWithoutCompliancePolicyMarked if ($null -ne $result) { $result | Should -Be $true -Because "device encryption prevents data compromise at rest." } } It "DPDP.2.7: TLS 1.2+ mandatory transport encryption SHALL be enforced for Exchange Online mail flow." { $result = Test-MtCisDkim if ($null -ne $result) { $result | Should -Be $true -Because "secure transport safeguards data during transmission." } } It "DPDP.2.8: Global Admin count SHALL be limited to 5 or fewer with PIM Just-In-Time access." { $result = Test-MtCisGlobalAdminCount if ($null -ne $result) { $result | Should -Be $true -Because "least privilege access controls prevent excessive admin power." } } It "DPDP.2.9: Password protection and credential security baselines SHALL be enforced." { $result = Test-MtCisPasswordExpiry if ($null -ne $result) { $result | Should -Be $true -Because "strong credential management protects personal data accounts." } } # ========================================== # Category 3: Data Lifecycle, Retention & Deletion # ========================================== It "DPDP.3.1: Automated retention and deletion policies SHALL purge personal data when purpose is served." { $result = Test-MtCisPasswordExpiry if ($null -ne $result) { $result | Should -Be $true -Because "data retention schedules enforce data minimization." } } It "DPDP.3.2: Inactivity period thresholds SHALL be configured to auto-delete stale personal data." { $result = Test-MtCisSpoGuestCannotShareUnownedItem if ($null -ne $result) { $result | Should -Be $true -Because "inactivity limits prevent indefinite data holding." } } It "DPDP.3.3: Direct sign-in to Shared Mailboxes SHALL be disabled." { $result = Test-MtCisSharedMailboxSignIn if ($null -ne $result) { $result | Should -Be $true -Because "unowned shared mailbox access risks personal data leaks." } } It "DPDP.3.4: Creation of unauthorized or unmanaged tenants SHALL be disallowed." { $result = Test-MtCisCreateTenantDisallowed if ($null -ne $result) { $result | Should -Be $true -Because "shadow tenant creation bypasses organizational data retention." } } # ========================================== # Category 4: Data Subject Rights & Grievances # ========================================== It "DPDP.4.1: Purview eDiscovery SHALL be operational for Data Principal Access Requests (DSARs)." { $result = Test-MtCisAuditLogSearch if ($null -ne $result) { $result | Should -Be $true -Because "eDiscovery readiness ensures 30-day DSAR response capability." } } It "DPDP.4.2: Customer Lockbox SHALL be enabled for explicit approval of Microsoft support data access." { $result = Test-MtCisCustomerLockBox if ($null -ne $result) { $result | Should -Be $true -Because "explicit approval is required for external data access." } } It "DPDP.4.3: Technical erasure workflows SHALL exist for Exchange, SharePoint, and Teams data." { $result = Test-MtCisSpoPreventDownloadMaliciousFile if ($null -ne $result) { $result | Should -Be $true -Because "erasure requests require technical execution capabilities." } } It "DPDP.4.4: Right to Data Portability SHALL provide structured CSV/JSON data exports." { $result = Test-MtCis365PublicGroup if ($null -ne $result) { $result | Should -Be $true -Because "structured export capabilities support data portability rights." } } # ========================================== # Category 5: Third-Party & Cross-Border Transfers # ========================================== It "DPDP.5.1: User-owned app registrations SHALL be restricted to authorized developers." { $result = Test-MtCisUserOwnedAppsRestricted if ($null -ne $result) { $result | Should -Be $true -Because "unrestricted app creation leads to unauthorized data access." } } It "DPDP.5.2: Third-party storage services SHALL be restricted to approved Indian data centers." { $result = Test-MtCisThirdPartyStorageServicesRestricted if ($null -ne $result) { $result | Should -Be $true -Because "cross-border restrictions limit data flow to prohibited zones." } } It "DPDP.5.3: Third-party applications SHALL be disallowed from accessing personal data without DPA." { $result = Test-MtCisThirdPartyApplicationsDisallowed if ($null -ne $result) { $result | Should -Be $true -Because "data processors must operate under valid DPAs." } } # ========================================== # Category 6: Incident Response & Logging # ========================================== It "DPDP.6.1: Unified Audit Logging (UAL) SHALL be enabled with minimum 180+ days retention." { $result = Test-MtCisAuditLogSearch if ($null -ne $result) { $result | Should -Be $true -Because "audit logs are required for breach investigation and compliance." } } It "DPDP.6.2: Real-time alert notifications SHALL trigger upon suspicious mass downloads or exfiltration." { $result = Test-MtCisInternalMalwareNotification if ($null -ne $result) { $result | Should -Be $true -Because "72-hour breach reporting requires automated alert mechanisms." } } It "DPDP.6.3: Outbound spam and exfiltration filter policies SHALL be configured." { $result = Test-MtCisOutboundSpamFilterPolicy if ($null -ne $result) { $result | Should -Be $true -Because "exfiltration monitoring prevents data breach expansion." } } } |