[Bug]: Key Vault: "Ensure 'Purge protection' is set to 'Enabled'" never fails because the rule queries properties.enablePurgeProtection
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
Piste de recherche
Ouvrez rules/findings/azure/keyvault/azure-keyvault-purge-protection-not-enabled.json et comparez sa condition avec celle de la règle Key Vault récupérable. Vérifiez comment New-MonkeyVaultObject.ps1 normalise la valeur manquante, puis exécutez la règle sur un vault sans protection contre la suppression définitive. Le travail est terminé lorsque ce vault échoue à la règle de protection contre la suppression définitive au lieu de la réussir.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- PowerShell
- Étoiles
- 1.4k
- Forks
- 144
- Merge moyen
- 1 j 21 h
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de silverhack/monkey365
-
bug status/needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
silverhack/monkey365#200 ·
-
bug status/needs-triage
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
silverhack/monkey365#198 ·
-
documentation enhancement help wanted impact-low priority-medium question
Difficulté 4/5 3-5 jours Accessibilité débutants 68/100
silverhack/monkey365#187 · 1 commentaire ·
-
documentation enhancement epic priority-medium
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
silverhack/monkey365#184 ·
-
Expose domain-level context for SPF / DKIM / DMARC findings in Exchange OnlinePeut-être à nouveau libre @silverhack l’a pris il y a 112 jours, et aucune pull request n’est ouverte. Ouverteenhancement
silverhack/monkey365#167 · 3 commentaires · 1 personne assignée ·
Toutes les issues de silverhack/monkey365
Issues similaires
-
[BUG] OpenSearch domain endpoint includes a URI scheme and breaks standard Terraform consumersOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
floci-io/floci#7707 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
CRT transfer manager mutates the caller's ExtraArgs, so reusing the dict fails on the next uploadOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
boto/s3transfer#433 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
Lambda MicroVMs added x86-64: the service model now lists X86_64, INTEL and 100 image env varsOuverteplatform rust
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
laithalsaadoon/microvms-agentd#758 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
MicrosoftLearning/eShopOnWeb#466 ·