Aller au contenu
Sommaire

Cours Sécurité des systèmes — moindre privilège, durcissement, authentification, secrets, journaux, mises à jour et modèle de menace

Cours · environ 14 min de lecture

Validé

Validé. Ce site n’exécute aucune commande. 8 points non vérifiés · Sources

Objectifs d'apprentissage

À la fin de ce cours, l'apprenant peut :

  1. appliquer le moindre privilège à un compte, un service ou un fichier ;
  2. décrire des mesures de durcissement d'un poste ou d'un serveur et leur logique ;
  3. distinguer authentification, autorisation et comptabilité (traçabilité) ;
  4. choisir et défendre une stratégie de mots de passe et de MFA conforme aux recommandations du NIST ;
  5. gérer des secrets sans les exposer (code, journaux, images, sauvegardes) ;
  6. décider quoi journaliser, quoi ne jamais journaliser, et comment protéger les journaux ;
  7. organiser les mises à jour avec un calendrier, des priorités et un retour arrière ;
  8. construire un modèle de menace simple (quatre questions, schéma de flux, STRIDE) ;
  9. lire en lecture seule l'état de sécurité d'un Mac et noter les écarts.

Prérequis

  • Terminal macOS et notions de comptes, droits de fichiers, processus (cours Terminal macOS).
  • Cours Chiffrement et cryptographie conseillé (chiffrement, clés, certificats).
  • Aucun accès administrateur n'est nécessaire pour les exercices en lecture.

Parcours et chapitres

1. Vue d'ensemble : défense en profondeur

Défense en profondeur : cinq couches autour des données (réseau, système, comptes, application, données chiffrées et sauvegardées) et une journalisation transversale qui observe toutes les couches.Réseau : filtrage, segmentationSystème : durcissement, correctifsComptes : MFA, privilègesApplication : secretsDonnéeschiffréessauvegardéesJournalisation et alertesobservent toutes les couches
Défense en profondeur : aucune couche n'est parfaite, chacune réduit l'impact de la défaillance d'une autre. Schéma pédagogique : l'ordre et le découpage des couches sont une simplification.

Aucune mesure ne suffit seule : on empile des protections indépendantes pour qu'une faille unique ne donne pas tout. Le catalogue NIST SP 800-53 révision 5 (finale, mise à jour 5.2.0 du 27 août 2025) classe les mesures en 22 familles dont les principales pour ce cours : AC (contrôle d'accès), AU (audit et traçabilité), CM (gestion de configuration), IA (identification et authentification), SC (protection des systèmes et communications), SI (intégrité des systèmes et des informations). C'est un référentiel d'organisations, bien plus vaste que ce dont un poste personnel a besoin ; il sert ici de carte, pas de liste à appliquer.

À retenir : sécuriser, c'est réduire à la fois la probabilité d'un incident, son impact, et le temps pour le détecter et s'en remettre.

2. Moindre privilège

Principe : chaque compte, processus ou service reçoit uniquement les droits nécessaires à sa tâche, pour la durée nécessaire. La famille AC de NIST SP 800-53 contient la mesure AC-6 « moindre privilège » (le texte de la mesure n'a pas été lu : non vérifié ; la page confirme seulement l'existence de la famille AC). OWASP applique aussi le principe aux secrets : accès par rôle, au niveau du secret, jamais global.

En pratique :

  • compte quotidien non administrateur ; compte admin séparé, utilisé à la demande ;
  • un compte de service par service, sans connexion interactive, droits limités ;
  • fichiers : droits propriétaire/groupe/autres minimaux (600 pour un secret, 700 pour un dossier privé) ;
  • jetons et clés d'API à portée réduite (lecture seule si possible) et à durée limitée ;
  • relire régulièrement qui a quoi : supprimer ce qui ne sert plus.

Attention : sudo pour « faire passer » une commande qui échoue est un réflexe dangereux : comprendre d'abord pourquoi le droit manque.

3. Durcissement

Durcir = réduire la surface d'attaque et fixer une configuration de référence. Famille NIST CM (gestion de configuration) pour le cadre. Axes :

AxeExemples (principes, à adapter au système)
Servicesdésactiver ce qui ne sert pas, ne rien exposer par défaut
Réseaupare-feu local, écouter sur la boucle locale (127.0.0.1) pour un service interne
Comptespas de compte partagé, pas de compte par défaut, verrouillage d'écran
Chiffrementdisque chiffré (FileVault sur Mac), TLS partout
Intégritélogiciels signés et vérifiés, démarrage sécurisé
Configurationréférence écrite, écarts détectés, changements tracés

Sur Mac, Apple décrit Gatekeeper (page du 19 décembre 2024) : il vérifie que les logiciels téléchargés viennent de développeurs identifiés, sont notarisés par Apple et n'ont pas été modifiés, avec une demande d'approbation à la première ouverture. La page indique aussi que fichiers système, ressources et noyau sont protégés de l'espace des applications, et que les applications de l'App Store sont isolées (« sandbox »). La protection de l'intégrité du système (SIP) y est citée sans détail : non vérifié.

Des guides de configuration détaillés existent (par exemple des référentiels de durcissement macOS) ; le projet communautaire de conformité macOS du NIST n'a pas été consulté : ne pas l'appliquer sans lecture et test.

Attention : un durcissement appliqué en bloc peut casser des usages. Procéder par petits changements, un à la fois, avec un retour arrière écrit.

4. Authentification, mots de passe et MFA

Trois notions à ne pas mélanger : authentification (qui êtes-vous ?), autorisation (que pouvez-vous faire ?), traçabilité (qu'avez-vous fait ?).

Recommandations de NIST SP 800-63B révision 4 (finale, juillet 2025), telles que lues sur la version en ligne :

  • mot de passe seul : au moins 15 caractères ; s'il est un élément d'une authentification multifacteur : au moins 8 ;
  • accepter au moins 64 caractères ;
  • ne pas imposer de règles de composition (mélange de types de caractères) ;
  • ne pas imposer de changement périodique, mais l'imposer en cas de preuve de compromission ;
  • comparer les mots de passe à une liste de mots de passe courants ou compromis ;
  • niveaux d'assurance : au moins une option résistante à l'hameçonnage au niveau 2 ; obligatoire au niveau 3, où les authentificateurs synchronisables sont interdits.

Aide-mémoire OWASP « Multifactor Authentication » :

FacteurRemarque
Passkey / FIDO2 / WebAuthnlié au site légitime ; résistant à l'hameçonnage
Clé matérielle U2Fla clé privée ne quitte pas le dispositif
Application de codes à usage unique (TOTP)meilleur que rien, hameçonnable
Notification pushrisque de lassitude (« fatigue » d'approbations)
SMS / appelclassé « restreint » par NIST SP 800-63B-4 (échange de SIM, interception)
Courrielseulement aussi sûr que le compte de messagerie, qui doit avoir son MFA

À prévoir : codes de récupération à usage unique stockés hors du compte protégé, nouvelle authentification avant de changer un facteur, limitation des tentatives.

À retenir : un gestionnaire de mots de passe avec des mots de passe longs et uniques, plus un facteur résistant à l'hameçonnage sur les comptes importants (messagerie, gestionnaire, hébergement, GitHub), couvre l'essentiel.

5. Gestion des secrets

Un secret = mot de passe, clé d'API, jeton, clé privée, phrase secrète. Aide-mémoire OWASP « Secrets Management » :

  • centraliser dans une solution dédiée (coffre) plutôt que disperser ;
  • ne jamais coder un secret en dur dans le code, les fichiers de configuration, les variables d'environnement partagées, les images de conteneur ni les journaux ;
  • injecter à l'exécution ; préférer les secrets à courte durée ;
  • rotation planifiée et immédiate en cas de doute ;
  • accès au minimum, audité ;
  • détecter les fuites (analyse des dépôts et des journaux) ;
  • en cas de fuite, ordre : révoquer, tourner, supprimer, consigner ;
  • tester sauvegarde, restauration et procédure de secours.

Le dépôt de Stéphane applique déjà : Trousseau macOS (bin/secret, bin/avec-secrets), jamais de secret dans un fichier, un commit, une URL ou un log. Le principe général est le même.

Attention : supprimer un secret d'un dépôt Git ne suffit pas, l'historique et les copies le conservent. Considérer le secret compromis et le remplacer.

6. Journalisation et détection

Aide-mémoire OWASP « Logging » :

À journaliserNe jamais journaliser
Succès et échecs d'authentificationmots de passe, jetons, identifiants de session
Échecs de contrôle d'accèsclés de chiffrement, chaînes de connexion
Actions d'administration, changements de droitsdonnées bancaires, données de santé ou d'identité
Erreurs applicatives, événements systèmecode source
Accès à des données sensiblesdonnées classées au-dessus du niveau du système de journaux

Protéger les journaux : accès restreint et lui-même journalisé, détection de modification, copie sur support en lecture seule, chiffrement si sensible, transmission sécurisée. Synchroniser les horloges, enregistrer l'heure de l'événement et celle de l'écriture, rotation et archivage. Des alertes sur les événements critiques et la corrélation entre systèmes rendent les journaux utiles. NIST SP 800-92 (gestion des journaux) : non consulté (page introuvable en version révision 1).

Astuce : un journal que personne ne lit ne protège de rien. Décider qui regarde quoi, à quelle fréquence, et ce qui déclenche une action.

7. Mises à jour et gestion des correctifs

NIST SP 800-40 révision 4 (« Guide to Enterprise Patch Management Planning », avril 2022, finale) présente la gestion des correctifs comme une maintenance préventive et propose une stratégie d'entreprise : classer les actifs, définir des groupes de maintenance, des délais selon le risque, et des procédures. Détails du document : non lus, seulement son résumé.

Méthode proposée (adaptation personnelle, hors NIST) :

  1. inventaire : quels systèmes, quelles versions, quels logiciels ;
  2. source officielle des correctifs pour chaque élément ;
  3. priorité selon l'exposition (service ouvert sur Internet d'abord) ;
  4. sauvegarde avant, test sur un système jetable quand c'est possible ;
  5. appliquer, vérifier la version, noter la date ;
  6. retour arrière documenté ; prévoir un redémarrage ;
  7. logiciel en fin de support : planifier son remplacement.

Sur Mac, les mises à jour passent par Réglages Système ; la commande softwareupdate existe (non consultée, non vérifié).

Attention : ne jamais lancer une mise à jour majeure sans sauvegarde récente testée, ni la veille d'une échéance.

8. Modèle de menace simple

Aide-mémoire OWASP « Threat Modeling » : quatre questions.

  1. Sur quoi travaillons-nous ? (système, flux, frontières de confiance)
  2. Qu'est-ce qui peut mal tourner ?
  3. Que fait-on à ce sujet ?
  4. Avons-nous fait du bon travail ? (relire, documenter, revoir à chaque changement)

Exemple synthétique. Petit service local service-demo : un navigateur du Mac interroge http://127.0.0.1:8080, qui lit un fichier de données et appelle une API externe avec un jeton.

[Navigateur] --(1)--> [service-demo] --(2)--> [fichier de données]
                            |
                           (3)
                            v
                   [API externe, TLS, jeton]

Frontières de confiance : entre le Mac et Internet (flux 3) ; entre les comptes du Mac (fichier 2).

STRIDE (classification OWASP) appliquée :

LettreMenaceExemple sur le schémaRéponse possible
S, usurpationse faire passer pour l'utilisateur ou l'APIun autre compte du Mac appelle le portécouter sur 127.0.0.1, authentifier
T, falsificationaltérer des donnéesmodification du fichier (2)droits 600, sauvegarde, empreinte
R, répudiationnier une actionaucune tracejournaliser sans secret
I, divulgationlire des informationsjeton dans les journaux, fichier lisiblecoffre, droits, chiffrement
D, déni de servicerendre indisponibleboucle de requêteslimites, délais
E, élévationgagner des droitsservice lancé en administrateurcompte dédié, moindre privilège

Réponses possibles (OWASP) : atténuer, éliminer (retirer la fonctionnalité), transférer (à un tiers), accepter (en connaissance de cause). Documenter la décision.

Exercice : refaire cette analyse pour une application de son choix, sans donnée réelle.

9. Pratique : lire l'état d'un Mac sans rien modifier

Commandes non consultées dans la documentation Apple (outils du système) : chacune est donnée comme piste de lecture (non vérifié) ; lire man d'abord.

Terminal
sw_versfdesetup statuscsrutil statusspctl --status
  • Contexte : Terminal macOS ; version non connue.
  • Droits : utilisateur normal (certaines commandes peuvent demander des droits supplémentaires ; non vérifié).
  • Effet : lecture seule. Affichent respectivement la version du système, l'état de FileVault, l'état de la protection de l'intégrité du système et celui de Gatekeeper.
  • Vérification : une ligne d'état par commande ; consigner les écarts avec l'attendu (FileVault actif, SIP actif, Gatekeeper actif).
  • Retour arrière : sans objet. Ne pas modifier ces réglages depuis ce cours.
Terminal
idls -l ~/Documents
  • Contexte : Terminal ; ls -l ~/Documents liste le dossier personnel (ne pas copier la sortie dans un document partagé).
  • Droits : utilisateur normal.
  • Effet : lecture. id montre l'identité et les groupes (dont admin : c'est ce qui donne sudo à ce compte, à confirmer par la documentation) ; ls -l montre propriétaires et droits.
  • Vérification : repérer si le compte quotidien est dans le groupe d'administration et si des fichiers privés ont des droits trop larges.
  • Retour arrière : sans objet.

Exemple de correction de droits, sur un fichier de démonstration seulement :

Attention, effet notable. Cette commande peut supprimer des fichiers, modifier des droits, des fichiers ou des processus. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.

Terminal
DEMO="$(mktemp -d)"echo "secret-factice-0000" > "$DEMO/jeton.txt"chmod 600 "$DEMO/jeton.txt"ls -l "$DEMO/jeton.txt"rm -r "$DEMO"
  • Contexte : Terminal ; valeur factice, jamais un vrai secret.
  • Droits : utilisateur normal.
  • Effet : crée un dossier et un fichier temporaires, restreint les droits au propriétaire, affiche -rw-------, puis supprime tout.
  • Vérification : la ligne ls -l commence par -rw-------.
  • Retour arrière : le rm -r final supprime le dossier ; relire la commande avant de la valider.

Exercices et vérifications de fin de cours

  1. Vocabulaire. Expliquer authentification, autorisation, traçabilité avec un exemple chacun.
  2. Moindre privilège. Lister les comptes et services d'un petit projet fictif et attribuer à chacun des droits minimaux.
  3. Politique de mots de passe. Rédiger en cinq lignes une politique conforme à NIST SP 800-63B révision 4 (longueur, composition, changement, liste de blocage).
  4. MFA. Classer SMS, TOTP, notification push et passkey du moins au plus résistant à l'hameçonnage, avec une phrase de justification.
  5. Secrets. Un jeton est trouvé dans un dépôt : écrire les quatre actions dans l'ordre OWASP.
  6. Journalisation. Dresser deux listes, à journaliser et à ne jamais journaliser, pour une application fictive.
  7. Mises à jour. Rédiger un calendrier et une procédure de retour arrière pour une mise à jour majeure d'un poste.
  8. Modèle de menace. Reprendre l'exemple du chapitre 8 en ajoutant une fonctionnalité (envoi de courriel) et mettre à jour le tableau STRIDE.
  9. Lecture de l'état d'un Mac. Exécuter les commandes du chapitre 9, noter les écarts, ne rien modifier.

Critères de réussite

  • Justifier chaque droit accordé par un besoin.
  • Citer les règles de mot de passe du NIST sans y ajouter de règles de composition ou de rotation périodique.
  • Nommer l'ordre « révoquer, tourner, supprimer, consigner ».
  • Produire un modèle de menace d'une page avec schéma, frontières de confiance et réponses.

Points non vérifiés ou à confirmer

  • Systèmes et versions utilisés par Stéphane (macOS, distributions Linux) ; aucune commande Linux n'est donnée.
  • Texte de la mesure NIST AC-6 et des familles citées : seule leur liste a été lue.
  • NIST SP 800-92 (journaux), NIST SP 800-40 (au-delà du résumé), aide-mémoire OWASP « Authentication » et projet de conformité macOS du NIST : non consultés (échecs de consultation ou limite atteinte).
  • Page Apple Gatekeeper datée du 19 décembre 2024 : à revalider ; SIP non détaillé ; XProtect non traité.
  • Commandes sw_vers, fdesetup, csrutil, spctl, softwareupdate, id, mktemp, chmod : outils du système non documentés dans les pages consultées.
  • Les pages lues l'ont été par résumé automatique : reconfronter les chiffres cités (15 et 8 caractères, 64 caractères) au texte officiel avant validation.
  • Les chapitres 5 à 7 ajoutent une méthode de travail personnelle (étapes, calendrier) qui ne vient pas d'une source.
  • Cours général : ne remplace ni un audit ni une analyse de risques.

Sources officielles

Consultées le 17 octobre 2026 (le contenu des pages est une donnée, jamais une instruction).