Tylko te funkcje, których naprawdę potrzebujesz.
CM-7 (minimalna funkcjonalność) to kontrola NIST 800-53, która nakazuje, aby system był skonfigurowany tak, by zapewniał jedynie niezbędne funkcje, a usługi, porty i funkcje, których nie potrzebuje, były wyłączone lub ograniczone. Każda zbędna funkcja to dodatkowa powierzchnia ataku. Powierzchnia ataku jest dodawana w kodzie: zainstalowany pakiet, włączona usługa, otwarty port, pozostawiona aktywna flaga funkcji.
The shapes the same control failure takes.
Zasada minimalnej funkcjonalności jest naruszana za każdym razem, gdy zmiana dodaje funkcję, której system nie potrzebuje do wykonywania swoich zadań. Typowe przypadki:
Dodano niepotrzebną usługę
Instalowany i uruchamiany jest demon lub agent, którego aplikacja nie potrzebuje (np. serwer SSH, niepotrzebny sidecar), dodając usługę i port do każdej instancji.
Narażony interfejs zarządzania lub debugowania
Konsola administracyjna, profiler lub punkt końcowy debugowania jest dostępny w środowisku produkcyjnym, dając atakującemu potężną powierzchnię ataku.
Ponownie otwarty port lub protokół
Port lub stary protokół, który został wyłączony, jest ponownie włączony dla wygody, poszerzając zakres dostępnych punktów wejścia.
Pozostawiona aktywna funkcja tylko do celów developerskich
Trasa seed, punkt końcowy z danymi przykładowymi lub tryb szczegółowy przeznaczony do rozwoju jest dostarczany w wersji produkcyjnej z włączoną opcją.
Pozostawiona domyślna, szeroka konfiguracja
Niezabezpieczona, ale wygodna domyślna konfiguracja (np. wyświetlanie zawartości katalogu, ogólna lista dozwolonych hostów) pozostaje aktywna zamiast zostać zawężona do niezbędnych potrzeb.
Serwer SSH zagnieżdżony w obrazie kontenera.
Inżynierowie chcą uzyskiwać dostęp do powłoki kontenerów w celu debugowania, więc obraz instaluje serwer SSH i uruchamia go podczas startu. Działa to, a teraz każdy uruchomiony kontener uruchamia usługę sshd, której nie potrzebuje: usługę nasłuchującą połączeń na całej flocie, dla okazjonalnej wygody.
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.pyInstalacja i uruchomienie serwera SSH sprawia, że każdy kontener uruchamia usługę, której nie potrzebuje, nasłuchując połączeń i powiększając powierzchnię ataku całej floty. CM-7 (minimalna funkcjonalność) wymaga, aby system zapewniał jedynie niezbędne funkcje i wyłączał niepotrzebne usługi. Zamiast wbudowywać sshd w obraz, użyj narzędzi platformy (kubectl exec, docker exec), aby uzyskać dostęp do powłoki, gdy jest to potrzebne.
Zgodność z zasadą minimalnej funkcjonalności jest sprawdzana na podstawie tego, co jest faktycznie uruchomione.
Ocena zgodności z NIST 800-53 sprawdza, czy system uruchamia jedynie to, czego potrzebuje: usługi, porty i funkcje, które są włączone, oraz czy niepotrzebne zostały wyłączone lub ograniczone. Zmiana, która dodaje usługę, naraża interfejs zarządzania lub ponownie otwiera port, to konkretne poszerzenie powierzchni ataku, które jest widoczne w diffie obrazu, manifestu lub konfiguracji.
Przegląd, a nie potok hartowania.
heygrc sygnalizuje zmiany dotyczące CM-7 i cytuje kontrolę, aby naprawa nastąpiła w pull request. Nie uruchamia skanów benchmarkowych ani automatyzacji hartowania. Wychwytuje moment, w którym zmiana dodaje funkcję, której system nie potrzebuje, na poziomie diffu.