Seulement les capacités dont vous avez réellement besoin.
CM-7 (fonctionnalité minimale) est le contrôle NIST 800-53 qui stipule qu'un système doit être configuré pour fournir uniquement ses capacités essentielles, et pour désactiver ou restreindre les services, ports et fonctions dont il n'a pas besoin. Chaque capacité inutile est une surface d'attaque. Et cette surface d'attaque est ajoutée dans le code : un package installé, un service activé, un port ouvert, un flag de fonctionnalité laissé activé.
The shapes the same control failure takes.
La fonctionnalité minimale s'érode chaque fois qu'un changement ajoute une capacité dont le système n'a pas besoin pour accomplir sa tâche. Les formes récurrentes :
Un service inutile est ajouté
Un démon ou un agent dont l'application n'a pas besoin (un serveur SSH, un sidecar superflu) est installé et exécuté, ajoutant un service et un port à chaque instance.
Une interface de gestion ou de débogage est exposée
Une console d'administration, un profileur ou un endpoint de débogage est accessible en production, offrant à un attaquant une surface puissante à cibler.
Un port ou un protocole désactivé est rouvert
Un port ou un ancien protocole qui avait été désactivé est réactivé par commodité, élargissant ce qui peut être atteint.
Une fonctionnalité réservée au développement reste activée
Une route de seed, un endpoint de données d'exemple ou un mode verbeux prévu pour le développement est livré activé en production.
Une valeur par défaut trop large reste en place
Une valeur par défaut pratique mais non sécurisée (liste de répertoires, une liste blanche d'hôtes générique) est laissée activée plutôt que restreinte à ce qui est nécessaire.
Un serveur SSH intégré dans une image conteneur.
Les ingénieurs veulent accéder en shell aux conteneurs pour déboguer, donc l'image installe un serveur SSH et le démarre au boot. Cela fonctionne, et maintenant chaque conteneur en cours d'exécution exécute un sshd dont il n'a pas besoin : un service écoutant les connexions sur toute la flotte, pour un confort occasionnel.
FROM python:3.12-slim+ RUN apt-get update && apt-get install -y openssh-serverCOPY . /app- CMD ["python", "app.py"]+ CMD service ssh start && python app.pyInstaller et démarrer un serveur SSH fait que chaque conteneur exécute un service dont il n'a pas besoin, écoutant les connexions et élargissant la surface d'attaque de toute la flotte. CM-7 (fonctionnalité minimale) exige qu'un système ne fournisse que les capacités essentielles et désactive les services inutiles. Utilisez plutôt l'exécution de la plateforme (kubectl exec, docker exec) pour obtenir un shell lorsque vous en avez besoin, au lieu d'intégrer un sshd dans l'image.
La fonctionnalité minimale est vérifiée par rapport à ce qui est réellement exécuté.
Un audit selon NIST 800-53 examine si un système n'exécute que ce dont il a besoin : les services, ports et fonctions qui sont activés, et si les éléments inutiles sont désactivés ou restreints. Un changement qui ajoute un service, expose une interface de gestion ou rouvre un port est l'expansion concrète de la surface d'attaque derrière cela, et cela est visible dans le diff de l'image, du manifest ou de la configuration.
Une revue, pas un pipeline de durcissement.
heygrc signale les changements qui concernent CM-7 et cite le contrôle afin que la correction ait lieu dans la pull request. Il n'exécute pas vos scans de benchmark ni votre automatisation de durcissement. Il détecte le moment où un changement ajoute une capacité dont le système n'a pas besoin, au niveau du diff.