Solo las capacidades que realmente necesitas.
CM-7 (mínima funcionalidad) es el control de NIST 800-53 que establece que un sistema debe configurarse para proporcionar solo sus capacidades esenciales y deshabilitar o restringir los servicios, puertos y funciones que no necesita. Cada capacidad innecesaria es una superficie de ataque. Y la superficie de ataque se añade en el código: un paquete instalado, un servicio habilitado, un puerto abierto, una bandera de función dejada activada.
The shapes the same control failure takes.
La mínima funcionalidad se erosiona cada vez que un cambio añade una capacidad que el sistema no necesita para cumplir su función. Las formas recurrentes:
Se añade un servicio innecesario
Un demonio o agente que la aplicación no necesita (un servidor SSH, un sidecar no utilizado) se instala y ejecuta, añadiendo un servicio y un puerto a cada instancia.
Se expone una interfaz de gestión o depuración
Una consola de administración, perfilador o endpoint de depuración es accesible en producción, ofreciendo a un atacante una superficie poderosa para atacar.
Se vuelve a abrir un puerto o protocolo deshabilitado
Un puerto o un protocolo antiguo que había sido desactivado se vuelve a habilitar por comodidad, ampliando lo que puede ser alcanzado.
Se deja activada una función solo para desarrollo
Una ruta de semilla, endpoint de datos de ejemplo o modo detallado pensado para desarrollo se envía activado en producción.
Se mantiene un valor predeterminado amplio
Un valor predeterminado inseguro pero cómodo (listado de directorios, una lista de permitidos con comodines) se deja activado en lugar de ajustarlo a lo necesario.
Un servidor SSH integrado en una imagen de contenedor.
Los ingenieros quieren acceder a los contenedores para depurar, así que la imagen instala un servidor SSH y lo inicia al arrancar. Funciona, y ahora cada contenedor en ejecución ejecuta un sshd que no necesita: un servicio que escucha conexiones en toda la flota, por comodidad ocasional.
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.pyInstalar e iniciar un servidor SSH hace que cada contenedor ejecute un servicio que no necesita, escuchando conexiones y ampliando la superficie de ataque de toda la flota. CM-7 (mínima funcionalidad) exige que un sistema proporcione solo capacidades esenciales y deshabilite los servicios innecesarios. Usa el comando exec de la plataforma (kubectl exec, docker exec) para obtener una shell cuando la necesites, en lugar de integrar un sshd en la imagen.
La mínima funcionalidad se verifica contra lo que realmente se está ejecutando.
Una evaluación bajo NIST 800-53 revisa si un sistema ejecuta solo lo que necesita: los servicios, puertos y funciones que están habilitados, y si los innecesarios están deshabilitados o restringidos. Un cambio que añade un servicio, expone una interfaz de gestión o vuelve a abrir un puerto es la expansión concreta de la superficie de ataque detrás de esto, y es visible en el diff de la imagen, el manifiesto o la configuración.
Una revisión, no un pipeline de endurecimiento.
heygrc marca los cambios que afectan a CM-7 y cita el control para que la corrección ocurra en la solicitud de extracción. No ejecuta tus escaneos de referencia ni tu automatización de endurecimiento. Detecta el momento en que un cambio añade una capacidad que el sistema no necesita, en el diff.