[Bug]: Key Vault: "Ensure 'Purge protection' is set to 'Enabled'" never fails because the rule queries properties.enablePurgeProtection
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Abre rules/findings/azure/keyvault/azure-keyvault-purge-protection-not-enabled.json y compara su condición con la regla de Key Vault recuperable. Comprueba cómo New-MonkeyVaultObject.ps1 normaliza el valor que falta y, después, ejecuta la regla contra un vault sin protección contra el borrado. La tarea estará terminada cuando ese vault no supere la regla de protección contra el borrado, en lugar de superarla.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What happened?
Every Key Vault without purge protection is reported as pass for azure_key_vault_purge_protection_disabled (rules/findings/azure/keyvault/azure-keyvault-purge-protection-not-enabled.json).
The rule condition is:
["properties.enablePurgeProtection", "eq", "false"]
properties holds the raw ARM properties of the vault. ARM only accepts true for enablePurgeProtection (Key Vault reference: "Enabling this functionality is irreversible - that is, the property does not accept false as its value"). A vault that never had purge protection enabled has no enablePurgeProtection value at all, and $null -eq $false is false, so the condition never matches.
New-MonkeyVaultObject.ps1 already normalises the value (line 75):
protection = [PSCustomObject]@{
enablePurgeProtection = If($null -ne $InputObject.Properties.PsObject.Properties.Item('enablePurgeProtection')){$InputObject.Properties.enablePurgeProtection}Else{$false};
How to reproduce it
- Use a Key Vault created without purge protection.
az keyvault show -n <vault> --query "{purge:properties.enablePurgeProtection, softDelete:properties.enableSoftDelete}"returns"purge": null, "softDelete": true. - Run
Invoke-Monkey365 -Instance Azurewith the default ruleset. azure_key_vault_purge_protection_disabledis reported as pass.
Expected behavior
The rule fails for vaults without purge protection.
Suggested fix
Query the normalised value, as the "recoverable" rule already does:
["protection.enablePurgeProtection", "eq", "false"]
From where are you running Monkey365?
- Resource: Docker container
- OS: Linux (Ubuntu 24.04)
- PowerShell Version: 7.6.9
- Monkey365 Version: 1.0.5 (also 1.0.0, PowerShell Gallery)
- Others: app-only authentication with access tokens
Additional context
Same pattern as the Key Vault RBAC issue (value read or queried at the wrong level), reported separately.
- Lenguaje dominante
- PowerShell
- Estrellas
- 1.4k
- Forks
- 144
- Merge medio
- 1 d 21 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de silverhack/monkey365
-
bug status/needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
silverhack/monkey365#200 ·
-
bug status/needs-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 56/100
silverhack/monkey365#198 ·
-
documentation enhancement help wanted impact-low priority-medium question
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
silverhack/monkey365#187 · 1 comentario ·
-
documentation enhancement epic priority-medium
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
silverhack/monkey365#184 ·
-
Expose domain-level context for SPF / DKIM / DMARC findings in Exchange OnlineQuizá libre de nuevo @silverhack la tomó hace 112 días y no hay ningún pull request abierto. Abiertoenhancement
silverhack/monkey365#167 · 3 comentarios · 1 asignado ·
Todos los issues de silverhack/monkey365
Issues similares
-
CRT transfer manager mutates the caller's ExtraArgs, so reusing the dict fails on the next uploadAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
boto/s3transfer#433 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Lambda MicroVMs added x86-64: the service model now lists X86_64, INTEL and 100 image env varsAbiertoplatform rust
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
laithalsaadoon/microvms-agentd#758 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
MicrosoftLearning/eShopOnWeb#466 ·
-
Updating an `OidcIssuer` without `thumbprints` fails with "You must provide at least one thumbprint"AbiertoBug kind/bug pulumi/pulumi-pulumiservice R1 S1
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
pulumi/pulumi-pulumiservice#1370 ·
Los mantenedores suelen responder en 1 día