diff --git a/CHANGELOG.md b/CHANGELOG.md index 1270b29..e4c5c68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ The format is based on and uses the types of changes according to [Keep a Change ## [Unreleased] +## [0.1.2] - 2024-04-29 + ### Added - Automated and organized CSV testing and added test 1.1.1. diff --git a/source/Private/Initialize-CISAuditResult.ps1 b/source/Private/Initialize-CISAuditResult.ps1 index 6cc1e40..dd92a7b 100644 --- a/source/Private/Initialize-CISAuditResult.ps1 +++ b/source/Private/Initialize-CISAuditResult.ps1 @@ -13,16 +13,7 @@ function Initialize-CISAuditResult { [string]$Details, [Parameter(Mandatory = $true)] - [string]$FailureReason, - - [Parameter(Mandatory = $true)] - [string]$RecDescription, - - [Parameter(Mandatory = $true)] - [string]$CISControl, - - [Parameter(Mandatory = $true)] - [string]$CISDescription + [string]$FailureReason ) # Import the test definitions CSV file @@ -40,9 +31,9 @@ function Initialize-CISAuditResult { $auditResult.IG1 = [bool]::Parse($testDefinition.IG1) $auditResult.IG2 = [bool]::Parse($testDefinition.IG2) $auditResult.IG3 = [bool]::Parse($testDefinition.IG3) - $auditResult.RecDescription = $RecDescription - $auditResult.CISControl = $CISControl - $auditResult.CISDescription = $CISDescription + $auditResult.RecDescription = $testDefinition.RecDescription + $auditResult.CISControl = $testDefinition.CISControl + $auditResult.CISDescription = $testDefinition.CISDescription $auditResult.Automated = [bool]::Parse($testDefinition.Automated) $auditResult.Connection = $testDefinition.Connection $auditResult.CISControlVer = 'v8' diff --git a/source/tests/Test-AdministrativeAccountCompliance.ps1 b/source/tests/Test-AdministrativeAccountCompliance.ps1 index 66cc0a9..21ab959 100644 --- a/source/tests/Test-AdministrativeAccountCompliance.ps1 +++ b/source/tests/Test-AdministrativeAccountCompliance.ps1 @@ -71,9 +71,6 @@ function Test-AdministrativeAccountCompliance { Status = $status Details = $details FailureReason = $failureReason - RecDescription = "Ensure Administrative accounts are separate and cloud-only" - CISControl = "5.4" - CISDescription = "Restrict Administrator Privileges to Dedicated Administrator Accounts" } $auditResult = Initialize-CISAuditResult @params diff --git a/source/tests/Test-AntiPhishingPolicy.ps1 b/source/tests/Test-AntiPhishingPolicy.ps1 index a9b26e8..88b103e 100644 --- a/source/tests/Test-AntiPhishingPolicy.ps1 +++ b/source/tests/Test-AntiPhishingPolicy.ps1 @@ -66,9 +66,6 @@ function Test-AntiPhishingPolicy { Status = if ($isCompliant) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure that an anti-phishing policy has been created" - CISControl = "9.7" - CISDescription = "Deploy and Maintain Email Server Anti-Malware Protections" } # Create and populate the CISAuditResult object diff --git a/source/tests/Test-AuditDisabledFalse.ps1 b/source/tests/Test-AuditDisabledFalse.ps1 index 69e09d6..3f91a83 100644 --- a/source/tests/Test-AuditDisabledFalse.ps1 +++ b/source/tests/Test-AuditDisabledFalse.ps1 @@ -40,9 +40,6 @@ function Test-AuditDisabledFalse { Status = if ($auditNotDisabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure 'AuditDisabled' organizationally is set to 'False'" - CISControl = "8.2" - CISDescription = "Collect Audit Logs" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-AuditLogSearch.ps1 b/source/tests/Test-AuditLogSearch.ps1 index f1c51fe..023f569 100644 --- a/source/tests/Test-AuditLogSearch.ps1 +++ b/source/tests/Test-AuditLogSearch.ps1 @@ -40,9 +40,6 @@ function Test-AuditLogSearch { Status = if ($auditLogResult) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Microsoft 365 audit log search is Enabled" - CISControl = "8.2" - CISDescription = "Collect Audit Logs" } $auditResult = Initialize-CISAuditResult @params diff --git a/source/tests/Test-BlockChannelEmails.ps1 b/source/tests/Test-BlockChannelEmails.ps1 index 917f1b2..c8ed086 100644 --- a/source/tests/Test-BlockChannelEmails.ps1 +++ b/source/tests/Test-BlockChannelEmails.ps1 @@ -40,9 +40,6 @@ function Test-BlockChannelEmails { Status = if (-not $allowEmailIntoChannel) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure users can't send emails to a channel email address" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-BlockMailForwarding.ps1 b/source/tests/Test-BlockMailForwarding.ps1 index c7a25a4..8039d06 100644 --- a/source/tests/Test-BlockMailForwarding.ps1 +++ b/source/tests/Test-BlockMailForwarding.ps1 @@ -41,9 +41,6 @@ function Test-BlockMailForwarding { Status = if ($forwardingBlocked) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure all forms of mail forwarding are blocked and/or disabled" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-BlockSharedMailboxSignIn.ps1 b/source/tests/Test-BlockSharedMailboxSignIn.ps1 index e3da822..7f4711b 100644 --- a/source/tests/Test-BlockSharedMailboxSignIn.ps1 +++ b/source/tests/Test-BlockSharedMailboxSignIn.ps1 @@ -42,9 +42,6 @@ function Test-BlockSharedMailboxSignIn { Status = if ($allBlocked) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure sign-in to shared mailboxes is blocked" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-CommonAttachmentFilter.ps1 b/source/tests/Test-CommonAttachmentFilter.ps1 index 7229291..9b60797 100644 --- a/source/tests/Test-CommonAttachmentFilter.ps1 +++ b/source/tests/Test-CommonAttachmentFilter.ps1 @@ -40,9 +40,6 @@ function Test-CommonAttachmentFilter { Status = if ($result) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure the Common Attachment Types Filter is enabled" - CISControl = "9.6" - CISDescription = "Block Unnecessary File Types" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-CustomerLockbox.ps1 b/source/tests/Test-CustomerLockbox.ps1 index b5e418b..c0723f9 100644 --- a/source/tests/Test-CustomerLockbox.ps1 +++ b/source/tests/Test-CustomerLockbox.ps1 @@ -40,9 +40,6 @@ function Test-CustomerLockbox { Status = if ($customerLockboxEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure the customer lockbox feature is enabled" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-DialInBypassLobby.ps1 b/source/tests/Test-DialInBypassLobby.ps1 index f2ec463..dd2a47b 100644 --- a/source/tests/Test-DialInBypassLobby.ps1 +++ b/source/tests/Test-DialInBypassLobby.ps1 @@ -40,9 +40,6 @@ function Test-DialInBypassLobby { Status = if ($PSTNBypassDisabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure users dialing in can't bypass the lobby" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-DisallowInfectedFilesDownload.ps1 b/source/tests/Test-DisallowInfectedFilesDownload.ps1 index 865e22e..3ce9b3a 100644 --- a/source/tests/Test-DisallowInfectedFilesDownload.ps1 +++ b/source/tests/Test-DisallowInfectedFilesDownload.ps1 @@ -41,9 +41,6 @@ function Test-DisallowInfectedFilesDownload { Status = if ($isDisallowInfectedFileDownloadEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Office 365 SharePoint infected files are disallowed for download" - CISControl = "10.1" - CISDescription = "Deploy and Maintain Anti-Malware Software" } $auditResult = Initialize-CISAuditResult @params diff --git a/source/tests/Test-EnableDKIM.ps1 b/source/tests/Test-EnableDKIM.ps1 index 806a862..db7bac6 100644 --- a/source/tests/Test-EnableDKIM.ps1 +++ b/source/tests/Test-EnableDKIM.ps1 @@ -41,9 +41,6 @@ function Test-EnableDKIM { Status = if ($dkimResult) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure that DKIM is enabled for all Exchange Online Domains" - CISControl = "9.5" - CISDescription = "Implement DMARC" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ExternalNoControl.ps1 b/source/tests/Test-ExternalNoControl.ps1 index bf9c814..8d52da7 100644 --- a/source/tests/Test-ExternalNoControl.ps1 +++ b/source/tests/Test-ExternalNoControl.ps1 @@ -41,9 +41,6 @@ function Test-ExternalNoControl { Status = if ($externalControlRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure external participants can't give or request control" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ExternalSharingCalendars.ps1 b/source/tests/Test-ExternalSharingCalendars.ps1 index abc4d00..9053bbb 100644 --- a/source/tests/Test-ExternalSharingCalendars.ps1 +++ b/source/tests/Test-ExternalSharingCalendars.ps1 @@ -50,9 +50,6 @@ function Test-ExternalSharingCalendars { Status = if ($isExternalSharingDisabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure 'External sharing' of calendars is not available" - CISControl = "4.8" - CISDescription = "Uninstall or Disable Unnecessary Services on Enterprise Assets and Software" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-GlobalAdminsCount.ps1 b/source/tests/Test-GlobalAdminsCount.ps1 index 1a77c34..c57110f 100644 --- a/source/tests/Test-GlobalAdminsCount.ps1 +++ b/source/tests/Test-GlobalAdminsCount.ps1 @@ -41,9 +41,6 @@ function Test-GlobalAdminsCount { Status = if ($globalAdminCount -ge 2 -and $globalAdminCount -le 4) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure that between two and four global admins are designated" - CISControl = "5.1" - CISDescription = "Establish and Maintain an Inventory of Accounts" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-GuestAccessExpiration.ps1 b/source/tests/Test-GuestAccessExpiration.ps1 index 2c2ca16..4a0b2b6 100644 --- a/source/tests/Test-GuestAccessExpiration.ps1 +++ b/source/tests/Test-GuestAccessExpiration.ps1 @@ -36,9 +36,6 @@ function Test-GuestAccessExpiration { Status = if ($isGuestAccessExpirationConfiguredCorrectly) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure guest access to a site or OneDrive will expire automatically" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-GuestUsersBiweeklyReview.ps1 b/source/tests/Test-GuestUsersBiweeklyReview.ps1 index e25e462..730f039 100644 --- a/source/tests/Test-GuestUsersBiweeklyReview.ps1 +++ b/source/tests/Test-GuestUsersBiweeklyReview.ps1 @@ -43,9 +43,6 @@ function Test-GuestUsersBiweeklyReview { Status = if ($guestUsers) { "Fail" } else { "Pass" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Guest Users are reviewed at least biweekly" - CISControl = "5.1, 5.3" - CISDescription = "Establish and Maintain an Inventory of Accounts, Disable Dormant Accounts" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-IdentifyExternalEmail.ps1 b/source/tests/Test-IdentifyExternalEmail.ps1 index 784c048..623d986 100644 --- a/source/tests/Test-IdentifyExternalEmail.ps1 +++ b/source/tests/Test-IdentifyExternalEmail.ps1 @@ -36,9 +36,6 @@ function Test-IdentifyExternalEmail { Status = if ($externalTaggingEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure email from external senders is identified" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-LinkSharingRestrictions.ps1 b/source/tests/Test-LinkSharingRestrictions.ps1 index 8f1f142..b117da3 100644 --- a/source/tests/Test-LinkSharingRestrictions.ps1 +++ b/source/tests/Test-LinkSharingRestrictions.ps1 @@ -36,9 +36,6 @@ function Test-LinkSharingRestrictions { Status = if ($isLinkSharingRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure link sharing is restricted in SharePoint and OneDrive" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } @@ -47,4 +44,4 @@ function Test-LinkSharingRestrictions { # Return the audit result return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-MailTipsEnabled.ps1 b/source/tests/Test-MailTipsEnabled.ps1 index bfa8475..12224c0 100644 --- a/source/tests/Test-MailTipsEnabled.ps1 +++ b/source/tests/Test-MailTipsEnabled.ps1 @@ -43,9 +43,6 @@ function Test-MailTipsEnabled { Status = if ($allTipsEnabled -and $externalRecipientsTipsEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure MailTips are enabled for end users" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-MailboxAuditingE3.ps1 b/source/tests/Test-MailboxAuditingE3.ps1 index 68361aa..79373b7 100644 --- a/source/tests/Test-MailboxAuditingE3.ps1 +++ b/source/tests/Test-MailboxAuditingE3.ps1 @@ -72,14 +72,11 @@ function Test-MailboxAuditingE3 { # Populate the audit result $params = @{ - Rec = "6.1.2" - Result = $allFailures.Count -eq 0 - Status = if ($allFailures.Count -eq 0) { "Pass" } else { "Fail" } - Details = $details + Rec = "6.1.2" + Result = $allFailures.Count -eq 0 + Status = if ($allFailures.Count -eq 0) { "Pass" } else { "Fail" } + Details = $details FailureReason = $failureReasons - RecDescription = "Ensure mailbox auditing for Office E3 users is Enabled" - CISControl = "8.2" - CISDescription = "Collect audit logs." } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-MailboxAuditingE5.ps1 b/source/tests/Test-MailboxAuditingE5.ps1 index c4c3dc4..8f6796c 100644 --- a/source/tests/Test-MailboxAuditingE5.ps1 +++ b/source/tests/Test-MailboxAuditingE5.ps1 @@ -83,9 +83,6 @@ function Test-MailboxAuditingE5 { Status = if ($allFailures.Count -eq 0) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure mailbox auditing for Office E5 users is Enabled" - CISControl = "8.2" - CISDescription = "Collect audit logs." } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ManagedApprovedPublicGroups.ps1 b/source/tests/Test-ManagedApprovedPublicGroups.ps1 index 8a0cf52..80fb4fa 100644 --- a/source/tests/Test-ManagedApprovedPublicGroups.ps1 +++ b/source/tests/Test-ManagedApprovedPublicGroups.ps1 @@ -41,9 +41,6 @@ function Test-ManagedApprovedPublicGroups { Status = if ($null -eq $allGroups -or $allGroups.Count -eq 0) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure that only organizationally managed/approved public groups exist" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-MeetingChatNoAnonymous.ps1 b/source/tests/Test-MeetingChatNoAnonymous.ps1 index 67d1b84..29428b1 100644 --- a/source/tests/Test-MeetingChatNoAnonymous.ps1 +++ b/source/tests/Test-MeetingChatNoAnonymous.ps1 @@ -37,9 +37,6 @@ function Test-MeetingChatNoAnonymous { Status = if ($chatAnonDisabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure meeting chat does not allow anonymous users" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ModernAuthExchangeOnline.ps1 b/source/tests/Test-ModernAuthExchangeOnline.ps1 index da2df32..811679b 100644 --- a/source/tests/Test-ModernAuthExchangeOnline.ps1 +++ b/source/tests/Test-ModernAuthExchangeOnline.ps1 @@ -35,9 +35,6 @@ function Test-ModernAuthExchangeOnline { Status = if ($orgConfig.OAuth2ClientProfileEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure modern authentication for Exchange Online is enabled (Automated)" - CISControl = "3.10" - CISDescription = "Encrypt Sensitive Data in Transit" } $auditResult = Initialize-CISAuditResult @params diff --git a/source/tests/Test-ModernAuthSharePoint.ps1 b/source/tests/Test-ModernAuthSharePoint.ps1 index c8c06a0..3f7ae76 100644 --- a/source/tests/Test-ModernAuthSharePoint.ps1 +++ b/source/tests/Test-ModernAuthSharePoint.ps1 @@ -33,9 +33,6 @@ function Test-ModernAuthSharePoint { Status = if ($modernAuthForSPRequired) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Modern Authentication for SharePoint Applications" - CISControl = "3.10" - CISDescription = "Encrypt Sensitive Data in Transit" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-NoAnonymousMeetingJoin.ps1 b/source/tests/Test-NoAnonymousMeetingJoin.ps1 index cb5e42b..fbeb7dd 100644 --- a/source/tests/Test-NoAnonymousMeetingJoin.ps1 +++ b/source/tests/Test-NoAnonymousMeetingJoin.ps1 @@ -36,9 +36,6 @@ function Test-NoAnonymousMeetingJoin { Status = if (-not $allowAnonymousUsersToJoinMeeting) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure anonymous users can't join a meeting" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } @@ -47,4 +44,4 @@ function Test-NoAnonymousMeetingJoin { # Return the audit result return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-NoAnonymousMeetingStart.ps1 b/source/tests/Test-NoAnonymousMeetingStart.ps1 index c520b05..01c680f 100644 --- a/source/tests/Test-NoAnonymousMeetingStart.ps1 +++ b/source/tests/Test-NoAnonymousMeetingStart.ps1 @@ -36,9 +36,6 @@ function Test-NoAnonymousMeetingStart { Status = if ($anonymousStartDisabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure anonymous users and dial-in callers can't start a meeting" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-NoWhitelistDomains.ps1 b/source/tests/Test-NoWhitelistDomains.ps1 index 9632762..820ff7b 100644 --- a/source/tests/Test-NoWhitelistDomains.ps1 +++ b/source/tests/Test-NoWhitelistDomains.ps1 @@ -40,9 +40,6 @@ function Test-NoWhitelistDomains { Status = if ($whitelistedRules) { "Fail" } else { "Pass" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure mail transport rules do not whitelist specific domains" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } @@ -51,4 +48,4 @@ function Test-NoWhitelistDomains { # Return auditResult return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-NotifyMalwareInternal.ps1 b/source/tests/Test-NotifyMalwareInternal.ps1 index 3d83262..ba962d6 100644 --- a/source/tests/Test-NotifyMalwareInternal.ps1 +++ b/source/tests/Test-NotifyMalwareInternal.ps1 @@ -49,9 +49,6 @@ function Test-NotifyMalwareInternal { Status = if ($result) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure notifications for internal users sending malware is Enabled" - CISControl = "17.5" - CISDescription = "Assign Key Roles and Responsibilities" } $auditResult = Initialize-CISAuditResult @params } @@ -60,4 +57,4 @@ function Test-NotifyMalwareInternal { # Return the audit result return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-OneDriveContentRestrictions.ps1 b/source/tests/Test-OneDriveContentRestrictions.ps1 index 5905619..7a69c37 100644 --- a/source/tests/Test-OneDriveContentRestrictions.ps1 +++ b/source/tests/Test-OneDriveContentRestrictions.ps1 @@ -40,9 +40,6 @@ function Test-OneDriveContentRestrictions { Status = if ($isOneDriveSharingRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure OneDrive content sharing is restricted" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } @@ -51,4 +48,4 @@ function Test-OneDriveContentRestrictions { # Return auditResult return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-OneDriveSyncRestrictions.ps1 b/source/tests/Test-OneDriveSyncRestrictions.ps1 index 6b6b95b..5357cda 100644 --- a/source/tests/Test-OneDriveSyncRestrictions.ps1 +++ b/source/tests/Test-OneDriveSyncRestrictions.ps1 @@ -40,9 +40,6 @@ function Test-OneDriveSyncRestrictions { Status = if ($isSyncRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure OneDrive sync is restricted for unmanaged devices" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-OrgOnlyBypassLobby.ps1 b/source/tests/Test-OrgOnlyBypassLobby.ps1 index 5fc49e8..7a7e668 100644 --- a/source/tests/Test-OrgOnlyBypassLobby.ps1 +++ b/source/tests/Test-OrgOnlyBypassLobby.ps1 @@ -42,9 +42,6 @@ function Test-OrgOnlyBypassLobby { Status = if ($lobbyBypassRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure only people in my org can bypass the lobby" - CISControl = "6.8" - CISDescription = "Define and Maintain Role-Based Access Control" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-OrganizersPresent.ps1 b/source/tests/Test-OrganizersPresent.ps1 index b10da1e..337e671 100644 --- a/source/tests/Test-OrganizersPresent.ps1 +++ b/source/tests/Test-OrganizersPresent.ps1 @@ -42,9 +42,6 @@ function Test-OrganizersPresent { Status = if ($presenterRoleRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure only organizers and co-organizers can present" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-PasswordHashSync.ps1 b/source/tests/Test-PasswordHashSync.ps1 index e4ece6c..583d65e 100644 --- a/source/tests/Test-PasswordHashSync.ps1 +++ b/source/tests/Test-PasswordHashSync.ps1 @@ -36,9 +36,6 @@ function Test-PasswordHashSync { Status = if ($hashSyncResult) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure password hash sync is enabled for hybrid deployments" - CISControl = "6.7" - CISDescription = "Centralize Access Control" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-PasswordNeverExpirePolicy.ps1 b/source/tests/Test-PasswordNeverExpirePolicy.ps1 index c7fc799..530d481 100644 --- a/source/tests/Test-PasswordNeverExpirePolicy.ps1 +++ b/source/tests/Test-PasswordNeverExpirePolicy.ps1 @@ -36,9 +36,6 @@ function Test-PasswordNeverExpirePolicy { Status = if ($passwordPolicy -eq 0) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure the 'Password expiration policy' is set to 'Set passwords to never expire'" - CISControl = "5.2" - CISDescription = "Use Unique Passwords" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ReauthWithCode.ps1 b/source/tests/Test-ReauthWithCode.ps1 index ca64432..28ac0f0 100644 --- a/source/tests/Test-ReauthWithCode.ps1 +++ b/source/tests/Test-ReauthWithCode.ps1 @@ -35,9 +35,6 @@ function Test-ReauthWithCode { Status = if ($isReauthenticationRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure reauthentication with verification code is restricted" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-ReportSecurityInTeams.ps1 b/source/tests/Test-ReportSecurityInTeams.ps1 index 01b3bfb..f79cf17 100644 --- a/source/tests/Test-ReportSecurityInTeams.ps1 +++ b/source/tests/Test-ReportSecurityInTeams.ps1 @@ -45,9 +45,6 @@ function Test-ReportSecurityInTeams { Status = if ($securityReportEnabled) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure users can report security concerns in Teams" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-RestrictCustomScripts.ps1 b/source/tests/Test-RestrictCustomScripts.ps1 index 7ef723b..43a8eef 100644 --- a/source/tests/Test-RestrictCustomScripts.ps1 +++ b/source/tests/Test-RestrictCustomScripts.ps1 @@ -50,9 +50,6 @@ function Test-RestrictCustomScripts { Status = if ($complianceResult) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure custom script execution is restricted on site collections" - CISControl = "2.7" - CISDescription = "Allowlist Authorized Scripts" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-RestrictExternalSharing.ps1 b/source/tests/Test-RestrictExternalSharing.ps1 index 20d1107..f1b0568 100644 --- a/source/tests/Test-RestrictExternalSharing.ps1 +++ b/source/tests/Test-RestrictExternalSharing.ps1 @@ -35,9 +35,6 @@ function Test-RestrictExternalSharing { Status = if ($isRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure external content sharing is restricted" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-RestrictOutlookAddins.ps1 b/source/tests/Test-RestrictOutlookAddins.ps1 index 1b8d8d1..4438b50 100644 --- a/source/tests/Test-RestrictOutlookAddins.ps1 +++ b/source/tests/Test-RestrictOutlookAddins.ps1 @@ -67,9 +67,6 @@ function Test-RestrictOutlookAddins { Status = if ($isCompliant) { "Pass" } else { "Fail" } Details = $detailsString FailureReason = if ($isCompliant) { "N/A" } else { "Unauthorized Outlook add-ins found in custom or default policies." } - RecDescription = "Ensure users installing Outlook add-ins is not allowed" - CISControl = "9.4" - CISDescription = "Restrict Unnecessary or Unauthorized Browser and Email Client Extensions" } $auditResult = Initialize-CISAuditResult @params } @@ -78,4 +75,4 @@ function Test-RestrictOutlookAddins { # Return the audit result return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-RestrictStorageProvidersOutlook.ps1 b/source/tests/Test-RestrictStorageProvidersOutlook.ps1 index 43dceaf..8400d72 100644 --- a/source/tests/Test-RestrictStorageProvidersOutlook.ps1 +++ b/source/tests/Test-RestrictStorageProvidersOutlook.ps1 @@ -43,9 +43,6 @@ function Test-RestrictStorageProvidersOutlook { Status = if ($allPoliciesRestricted) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure additional storage providers are restricted in Outlook on the web" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-RestrictTenantCreation.ps1 b/source/tests/Test-RestrictTenantCreation.ps1 index cef19d0..96bfb0f 100644 --- a/source/tests/Test-RestrictTenantCreation.ps1 +++ b/source/tests/Test-RestrictTenantCreation.ps1 @@ -35,9 +35,6 @@ function Test-RestrictTenantCreation { Status = if ($tenantCreationResult) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure 'Restrict non-admin users from creating tenants' is set to 'Yes'" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SafeAttachmentsPolicy.ps1 b/source/tests/Test-SafeAttachmentsPolicy.ps1 index 0145a94..48597ce 100644 --- a/source/tests/Test-SafeAttachmentsPolicy.ps1 +++ b/source/tests/Test-SafeAttachmentsPolicy.ps1 @@ -40,9 +40,6 @@ function Test-SafeAttachmentsPolicy { Status = if ($result) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Safe Attachments policy is enabled" - CISControl = "9.7" - CISDescription = "Deploy and Maintain Email Server Anti-Malware Protections" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SafeAttachmentsTeams.ps1 b/source/tests/Test-SafeAttachmentsTeams.ps1 index a38e87d..a1cb453 100644 --- a/source/tests/Test-SafeAttachmentsTeams.ps1 +++ b/source/tests/Test-SafeAttachmentsTeams.ps1 @@ -47,9 +47,6 @@ function Test-SafeAttachmentsTeams { Status = if ($result) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Safe Attachments for SharePoint, OneDrive, and Microsoft Teams is Enabled" - CISControl = "9.7, 10.1" - CISDescription = "Deploy and Maintain Email Server Anti-Malware Protections, Deploy and Maintain Anti-Malware Software" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SafeLinksOfficeApps.ps1 b/source/tests/Test-SafeLinksOfficeApps.ps1 index 42dc59f..46ee852 100644 --- a/source/tests/Test-SafeLinksOfficeApps.ps1 +++ b/source/tests/Test-SafeLinksOfficeApps.ps1 @@ -54,9 +54,6 @@ function Test-SafeLinksOfficeApps { Status = if ($result) { "Pass" } else { "Fail" } Details = $details FailureReason = $failureReasons - RecDescription = "Ensure Safe Links for Office Applications is Enabled" - CISControl = "10.1" - CISDescription = "Deploy and Maintain Anti-Malware Software" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SharePointAADB2B.ps1 b/source/tests/Test-SharePointAADB2B.ps1 index 45937fc..a9af0c4 100644 --- a/source/tests/Test-SharePointAADB2B.ps1 +++ b/source/tests/Test-SharePointAADB2B.ps1 @@ -24,9 +24,6 @@ function Test-SharePointAADB2B { Status = if ($SPOTenantAzureADB2B.EnableAzureADB2BIntegration) { "Pass" } else { "Fail" } Details = "EnableAzureADB2BIntegration: $($SPOTenantAzureADB2B.EnableAzureADB2BIntegration)" FailureReason = if (-not $SPOTenantAzureADB2B.EnableAzureADB2BIntegration) { "Azure AD B2B integration is not enabled" } else { "N/A" } - RecDescription = "Ensure SharePoint and OneDrive integration with Azure AD B2B is enabled" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } @@ -35,4 +32,4 @@ function Test-SharePointAADB2B { # Return auditResult return $auditResult } -} \ No newline at end of file +} diff --git a/source/tests/Test-SharePointExternalSharingDomains.ps1 b/source/tests/Test-SharePointExternalSharingDomains.ps1 index a8a8b4b..25f4213 100644 --- a/source/tests/Test-SharePointExternalSharingDomains.ps1 +++ b/source/tests/Test-SharePointExternalSharingDomains.ps1 @@ -25,9 +25,6 @@ function Test-SharePointExternalSharingDomains { Status = if ($isDomainRestrictionConfigured) { "Pass" } else { "Fail" } Details = "SharingDomainRestrictionMode: $($SPOTenant.SharingDomainRestrictionMode); SharingAllowedDomainList: $($SPOTenant.SharingAllowedDomainList)" FailureReason = if (-not $isDomainRestrictionConfigured) { "Domain restrictions for SharePoint external sharing are not configured to 'AllowList'. Current setting: $($SPOTenant.SharingDomainRestrictionMode)" } else { "N/A" } - RecDescription = "Ensure SharePoint external sharing is managed through domain whitelist/blacklists" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SharePointGuestsItemSharing.ps1 b/source/tests/Test-SharePointGuestsItemSharing.ps1 index f429c7c..6f35325 100644 --- a/source/tests/Test-SharePointGuestsItemSharing.ps1 +++ b/source/tests/Test-SharePointGuestsItemSharing.ps1 @@ -25,9 +25,6 @@ function Test-SharePointGuestsItemSharing { Status = if ($isGuestResharingPrevented) { "Pass" } else { "Fail" } Details = "PreventExternalUsersFromResharing: $isGuestResharingPrevented" FailureReason = if (-not $isGuestResharingPrevented) { "Guest users can reshare items they don't own." } else { "N/A" } - RecDescription = "Ensure that SharePoint guest users cannot share items they don't own" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-SpamPolicyAdminNotify.ps1 b/source/tests/Test-SpamPolicyAdminNotify.ps1 index 4532acd..05be9aa 100644 --- a/source/tests/Test-SpamPolicyAdminNotify.ps1 +++ b/source/tests/Test-SpamPolicyAdminNotify.ps1 @@ -40,9 +40,6 @@ function Test-SpamPolicyAdminNotify { Status = if ($areSettingsEnabled) { "Pass" } else { "Fail" } Details = if ($areSettingsEnabled) { "Both BccSuspiciousOutboundMail and NotifyOutboundSpam are enabled." } else { $failureDetails -join ' ' } FailureReason = if (-not $areSettingsEnabled) { "One or both spam policies are not set to notify administrators." } else { "N/A" } - RecDescription = "Ensure Exchange Online Spam Policies are set to notify administrators" - CISControl = "17.5" - CISDescription = "Assign Key Roles and Responsibilities" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-TeamsExternalAccess.ps1 b/source/tests/Test-TeamsExternalAccess.ps1 index 4a2ad40..8b0cad2 100644 --- a/source/tests/Test-TeamsExternalAccess.ps1 +++ b/source/tests/Test-TeamsExternalAccess.ps1 @@ -35,9 +35,6 @@ function Test-TeamsExternalAccess { Status = if ($isCompliant) { "Pass" } else { "Fail" } Details = "AllowTeamsConsumer: $($externalAccessConfig.AllowTeamsConsumer); AllowPublicUsers: $($externalAccessConfig.AllowPublicUsers); AllowFederatedUsers: $($externalAccessConfig.AllowFederatedUsers); AllowedDomains limited: $allowedDomainsLimited" FailureReason = if (-not $isCompliant) { "One or more external access configurations are not compliant." } else { "N/A" } - RecDescription = "Ensure 'external access' is restricted in the Teams admin center" - CISControl = "0.0" - CISDescription = "Explicitly Not Mapped" } $auditResult = Initialize-CISAuditResult @params } diff --git a/source/tests/Test-TeamsExternalFileSharing.ps1 b/source/tests/Test-TeamsExternalFileSharing.ps1 index 697b2bc..fd4e653 100644 --- a/source/tests/Test-TeamsExternalFileSharing.ps1 +++ b/source/tests/Test-TeamsExternalFileSharing.ps1 @@ -39,9 +39,6 @@ function Test-TeamsExternalFileSharing { Status = if ($isCompliant) { "Pass" } else { "Fail" } Details = if (-not $isCompliant) { "Non-approved providers enabled: $($nonCompliantProviders -join ', ')" } else { "All cloud storage services are approved providers" } FailureReason = if (-not $isCompliant) { "The following non-approved providers are enabled: $($nonCompliantProviders -join ', ')" } else { "N/A" } - RecDescription = "Ensure external file sharing in Teams is enabled for only approved cloud storage services" - CISControl = "3.3" - CISDescription = "Configure Data Access Control Lists" } $auditResult = Initialize-CISAuditResult @params }