TP N°10 : Sécuriser complètement le script de supervision

Sophie clôt la section sécurité avec un ticket de synthèse : « Reprends le script de supervision qu’on a construit depuis la section 7. Je veux qu’il soit signé, qu’il ne contienne plus aucun secret en clair, et qu’il journalise tout ce qu’il fait. »

Objectif

Appliquer les trois piliers de la section 10 — signature (10.1), gestion des secrets (10.2) et logging (10.3) — à un seul et même script, en repartant de la version déjà construite en section 8 et 9.

Consignes

Étape 1 — Créez un certificat de signature de code auto-signé, et signez le script rapport-supervision.ps1 construit au TP N°4 de la section 8.
Indice : revoyez la leçon 10.1, New-SelfSignedCertificate puis Set-AuthenticodeSignature.

Étape 2 — Vérifiez que la signature est valide avec Get-AuthenticodeSignature.

Étape 3 — Installez SecretManagement et SecretStore, enregistrez un coffre, puis stockez-y la clé de l’API de ticketing utilisée en section 9 (ApiTicketingNordika) ainsi qu’un mot de passe fictif pour le compte de service svc-supervision.

Étape 4 — Modifiez le script pour qu’il récupère ces deux secrets depuis le coffre plutôt que depuis une variable en dur ou une variable d’environnement.

Étape 5 — Entourez l’ensemble du script d’un Start-Transcript/Stop-Transcript, avec un nom de fichier horodaté par jour, en -Append.

Étape 6 (bonus) — Ajoutez une vérification en tout début de script : si la signature du script lui-même n’est plus valide au moment de l’exécution, le script s’arrête immédiatement sans rien exécuter d’autre.

Solution commentée