Verify source attribution and prerequisites in native control results

This commit is contained in:
Shirofune-Security committed 2026-09-18 22:00:52 +09:00
1 parent 4432090a6f
commit a6cef75c12
1 file changed
+13 -7
+13 -7
View File
@@ -8,12 +8,12 @@ function Assert-Equal($Actual, $Expected, [string]$Message) {
$script:assertions++
}
$expected = @{
'Group Membership' = @{ Guid = '0CCE9249-69AE-11D9-BED3-505054503030'; Mask = 1 }
'Application Group Management' = @{ Guid = '0CCE9239-69AE-11D9-BED3-505054503030'; Mask = 3 }
'Authorization Policy Change' = @{ Guid = '0CCE9231-69AE-11D9-BED3-505054503030'; Mask = 1 }
'MPSSVC Rule-Level Policy Change' = @{ Guid = '0CCE9232-69AE-11D9-BED3-505054503030'; Mask = 3 }
'IPsec Driver' = @{ Guid = '0CCE9213-69AE-11D9-BED3-505054503030'; Mask = 3 }
'Kernel Object' = @{ Guid = '0CCE921F-69AE-11D9-BED3-505054503030'; Mask = 3 }
'Group Membership' = @{ Guid = '0CCE9249-69AE-11D9-BED3-505054503030'; Mask = 1; Source = 'ms-sct' }
'Application Group Management' = @{ Guid = '0CCE9239-69AE-11D9-BED3-505054503030'; Mask = 3; Source = 'cis-client' }
'Authorization Policy Change' = @{ Guid = '0CCE9231-69AE-11D9-BED3-505054503030'; Mask = 1; Source = 'cis-client' }
'MPSSVC Rule-Level Policy Change' = @{ Guid = '0CCE9232-69AE-11D9-BED3-505054503030'; Mask = 3; Source = 'ms-wef' }
'IPsec Driver' = @{ Guid = '0CCE9213-69AE-11D9-BED3-505054503030'; Mask = 3; Source = 'ms-audit' }
'Kernel Object' = @{ Guid = '0CCE921F-69AE-11D9-BED3-505054503030'; Mask = 3; Source = 'asd' }
}
$current = @{}
foreach ($policy in $config.catalog) { $current[$policy.guid] = 0 }
@@ -24,7 +24,7 @@ foreach ($role in @('Client', 'MemberServer', 'DomainController', 'ADCS')) {
Assert-Equal $row.Count 1 "$role/$name has exactly one plan row"
Assert-Equal $row[0].guid $expected[$name].Guid "$role/$name canonical GUID"
Assert-Equal $row[0].targetMask $expected[$name].Mask "$role/$name applies the intended mask"
Assert-Equal ($row[0].sourceIds.Count -gt 0) $true "$role/$name retains provenance"
Assert-Equal ($row[0].sourceIds -contains $expected[$name].Source) $true "$role/$name retains provenance"
}
$kernel = $plan.policies | Where-Object { $_.id -eq 'Kernel Object' }
Assert-Equal ($kernel.prerequisites -match 'SACL') $true "$role kernel auditing reports object-SACL dependency"
@@ -56,6 +56,12 @@ $result = Invoke-WelaAuditProfilePlan -Plan $plan -ReadPolicy { $script:policySt
$script:writes[$Guid] = $Mask
} -ReadContext { [pscustomobject]@{ Role = 'Client'; Build = 26100 } } -Confirm:$false
Assert-Equal $result.success $true 'Shared apply reports verified success with matching readback'
$kernelResult = $result.results | Where-Object { $_.id -eq 'Kernel Object' }
Assert-Equal ($kernelResult.prerequisites -match 'SACL') $true 'Apply result retains kernel SACL prerequisite'
Assert-Equal ($kernelResult.sourceIds -contains 'asd') $true 'Apply result identifies ASD kernel requirement'
Assert-Equal ($kernelResult.evidence -match 'ASD') $true 'Apply result retains source evidence'
Assert-Equal $result.role 'Client' 'Apply result retains selected role'
Assert-Equal $result.build 26100 'Apply result retains selected build'
foreach ($name in $expected.Keys) {
Assert-Equal $script:writes[$expected[$name].Guid] $expected[$name].Mask "Apply requests correct $name mask"
}