mirror of
https://github.com/Yamato-Security/WELA.git
synced 2026-10-08 23:35:28 +02:00
Verify source attribution and prerequisites in native control results
This commit is contained in:
1 parent
4432090a6f
commit
a6cef75c12
1 file changed
+13
-7
@@ -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"
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user