Udostępnij za pośrednictwem


Test porównawczy Center for Internet Security (CIS) dla Azure Linux

Konfiguracja systemu operacyjnego zabezpieczeń zastosowana do obrazu hosta kontenera Azure Linux dla usługi AKS jest oparta na bazowym poziomie zabezpieczeń Azure Linux, który jest zgodny z benchmarkiem CIS. Jako bezpieczna usługa AKS jest zgodna ze standardami SOC, ISO, PCI DSS i HIPAA. Aby uzyskać więcej informacji na temat zabezpieczeń hosta kontenera systemu Linux platformy Azure, zobacz Pojęcia dotyczące zabezpieczeń klastrów w usłudze AKS. Aby dowiedzieć się więcej na temat testu porównawczego CIS, zobacz Centrum testów porównawczych zabezpieczeń internetowych (CIS). Aby uzyskać więcej informacji na temat punktów odniesienia zabezpieczeń platformy Azure dla systemu Linux, zobacz Punkt odniesienia zabezpieczeń systemu Linux.

Azure Linux 2.0

Ten system operacyjny Azure Linux Container Host jest oparty na obrazie systemu Linux 2.0 platformy Azure z zastosowanymi wbudowanymi konfiguracjami zabezpieczeń.

W ramach systemu operacyjnego zoptymalizowanego pod kątem zabezpieczeń:

  • Usługi AKS i Azure Linux zapewniają system operacyjny hosta zoptymalizowany pod kątem zabezpieczeń domyślnie bez opcji wybrania alternatywnego systemu operacyjnego.
  • System operacyjny hosta zoptymalizowany pod kątem zabezpieczeń jest tworzony i utrzymywany specjalnie dla usługi AKS i nie jest obsługiwany poza platformą AKS.
  • Niepotrzebne sterowniki modułów jądra zostały wyłączone w systemie operacyjnym w celu zmniejszenia obszaru ataków.

Zalecenia

Poniższa tabela zawiera cztery sekcje:

  • IDENTYFIKATOR CIS: Powiązany identyfikator reguły z każdą regułą punktu odniesienia.
  • Opis zalecenia: opis zalecenia wydanego przez test porównawczy CIS.
  • Poziom: L1 lub Poziom 1, zaleca podstawowe wymagania dotyczące zabezpieczeń, które można skonfigurować w dowolnym systemie i powinny powodować niewielkie przerwy w działaniu usługi lub ograniczonej funkcjonalności.
  • Stan:
    • Pass — zalecenie zostało zastosowane.
    • Niepowodzenie — zalecenie nie zostało zastosowane.
    • Nie dotyczy — zalecenie dotyczy wymagań dotyczących uprawnień do pliku manifestu, które nie są istotne dla usługi AKS.
    • Zależy od środowiska — zalecenie jest stosowane w określonym środowisku użytkownika i nie jest kontrolowane przez usługę AKS.
    • Równoważna kontrola — zalecenie zostało zaimplementowane w inny sposób równoważny.
  • Przyczyna:
    • Potencjalny wpływ operacji — zalecenie nie zostało zastosowane, ponieważ miałoby to negatywny wpływ na usługę.
    • Omówione w innym miejscu — zalecenie jest objęte inną kontrolą w obliczeniach w chmurze platformy Azure.

Poniżej przedstawiono wyniki zaleceń CIS Azure Linux 2.0 Benchmark w wersji 1.0 opartych na regułach CIS:

Identyfikator CIS Opis rekomendacji Stan Przyczyna
1.1.4 Wyłącz automatyczne montowanie Przejść
1.1.1.1 Upewnij się, że instalowanie systemu plików cramfs jest wyłączone Przepustka
1.1.2.1 Upewnij się, że /tmp jest oddzielną partycją Przepustka
1.1.2.2 Upewnij się, że opcja nodev jest ustawiona na partycji /tmp Przejść
1.1.2.3 Upewnij się, że opcja nosuid ustawiona na partycji /tmp Zaliczenie / Przejście
1.1.8.1 Upewnij się, że opcja nodev jest ustawiona na partycji /dev/shm Zaliczony
1.1.8.2 Upewnij się, że opcja nosuid jest ustawiona na partycji /dev/shm Zalicz
1.2.1 Upewnij się, że DNF gpgcheck jest aktywowane globalnie Przejść
1.2.2 Zadbaj o to, aby gpgcheck dla TDNF był aktywowany globalnie. Przepustka
1.5.1 Upewnij się, że przechowywanie zrzutów pamięci jest wyłączone Przejdź
1.5.2 Upewnij się, że odejmowanie zrzutu rdzenia jest wyłączone Przepustka
1.5.3 Upewnij się, że włączono losowość układu przestrzeni adresowej (ASLR) Przejdź
1.7.1 Upewnij się, że lokalny baner ostrzegawczy logowania został prawidłowo skonfigurowany Przejdź
1.7.2 Upewnij się, że baner ostrzeżenia o zdalnym logowaniu jest prawidłowo skonfigurowany Przejść
1.7.3 Upewnij się, że skonfigurowano uprawnienia dla /etc/motd Przejście
1.7.4 Upewnij się, że skonfigurowano uprawnienia dotyczące /etc/issue Przepustka
1.7.5 Upewnij się, że skonfigurowano uprawnienia w pliku /etc/issue.net Przepustka
2.1.1 Upewnij się, że synchronizacja czasu jest używana Podaj
2.1.2 Upewnij się, że chrony jest skonfigurowane Przejdź
2.2.1 Upewnij się, że xinetd nie jest zainstalowany Przejdź
2.2.2 Upewnij się, że program xorg-x11-server-common nie jest zainstalowany Przejście
2.2.3 Upewnij się, że avahi nie jest zainstalowany Przepustka
2.2.4 Upewnij się, że serwer wydruku nie jest zainstalowany Pass
2.2.5 Upewnij się, że serwer DHCP nie jest zainstalowany Zaliczony
2.2.6 Upewnij się, że serwer DNS nie jest zainstalowany Przejdź
2.2.7 Upewnij się, że klient FTP nie jest zainstalowany Przepustka
2.2.8 Upewnij się, że serwer FTP nie jest zainstalowany Przepuścić
2.2.9 Upewnij się, że serwer tftp nie jest zainstalowany Przepustka
2.2.10 Upewnij się, że serwer internetowy nie jest zainstalowany Przejdź
2.2.11 Upewnij się, że serwer IMAP i POP3 nie są zainstalowane Przejdź
2.2.12 Upewnij się, że Samba nie jest zainstalowana Przejść
2.2.13 Upewnij się, że serwer proxy HTTP nie jest zainstalowany Przekaż
2.2.14 Upewnij się, że net-snmp nie jest zainstalowany lub usługa snmpd nie jest włączona Przejdź
2.2.15 Upewnij się, że serwer usługi NIS nie jest zainstalowany Przejdź
2.2.16 Upewnij się, że telnet-server nie został zainstalowany Przejdź
2.2.17 Upewnij się, że agent transferu poczty jest skonfigurowany dla trybu lokalnego Przejdź
2.2.18 Upewnij się, że narzędzie nfs-utils nie jest zainstalowane lub usługa nfs-server jest maskowana Przejść
2.2.19 Upewnij się, że demon rsync-daemon nie jest zainstalowany lub usługa rsyncd jest maskowana Przepustka
2.3.1 Upewnij się, że klient usługi NIS nie jest zainstalowany Przejdź
2.3.2 Upewnij się, że klient rsh nie jest zainstalowany Przepustka
2.3.3 Upewnij się, że klient rozmów nie jest zainstalowany Przejść
2.3.4 Upewnij się, że klient telnet nie jest zainstalowany Zaliczone
2.3.5 Upewnij się, że klient LDAP nie jest zainstalowany Zaliczone
2.3.6 Upewnij się, że klient TFTP nie jest zainstalowany Przepuść
3.1.1 Upewnij się, że protokół IPv6 jest włączony Przepuść
3.2.1 Upewnij się, że wysyłanie przekierowania pakietów jest wyłączone Przejdź
3.3.1 Upewnij się, że pakiety kierowane przez źródło nie są akceptowane Przepustka
3.3.2 Upewnij się, że przekierowania protokołu ICMP nie są akceptowane Przejdź
3.3.3 Upewnij się, że bezpieczne przekierowania protokołu ICMP nie są akceptowane Przejdź
3.3.4 Upewnij się, że są rejestrowane podejrzane pakiety Przejdź
3.3.5 Upewnij się, że żądania ICMP rozgłoszeniowe są ignorowane Przepustka
3.3.6 Upewnij się, że fałszywe odpowiedzi protokołu ICMP są ignorowane Przepustka
3.3.7 Upewnij się, że włączono filtrowanie ścieżki odwrotnej Przejdź
3.3.8 Upewnij się, że włączono pliki cookie SYN protokołu TCP Przejście
3.3.9 Upewnij się, że anonse routerów IPv6 nie są akceptowane Przejdź
3.4.3.1.1 Upewnij się, że pakiet iptables jest zainstalowany Zaliczony
3.4.3.1.2 Upewnij się, że nftables nie jest zainstalowane wraz z iptables Przepustka
3.4.3.1.3 Upewnij się, że firewalld nie jest zainstalowany lub jest maskowany przy użyciu iptables. Przepustka
4.2 Upewnij się, że skonfigurowano logrotate Przekaż
4.2.2 Upewnij się, że wszystkie pliki dziennika mają skonfigurowany odpowiedni dostęp Przepustka
4.2.1.1 Upewnij się, że zainstalowano rsyslog Przepustka
4.2.1.2 Upewnij się, że usługa rsyslog jest włączona Przepuść
4.2.1.3 Upewnij się, że skonfigurowano domyślne uprawnienia pliku rsyslog Przepustka
4.2.1.4 Upewnij się, że rejestrowanie zostało skonfigurowane Przejdź
4.2.1.5 Upewnij się, że program rsyslog nie jest skonfigurowany do odbierania dzienników z klienta zdalnego Przejście
5.1.1 Upewnij się, że demon cron jest włączony Przełączyć
5.1.2 Upewnij się, że skonfigurowano uprawnienia na /etc/crontab Przejdź
5.1.3 Upewnij się, że skonfigurowano uprawnienia /etc/cron.hourly Przejść
5.1.4 Upewnij się, że skonfigurowano uprawnienia /etc/cron.daily Przejdź
5.1.5 Upewnij się, że skonfigurowano uprawnienia dla /etc/cron.weekly Zdane
5.1.6 Upewnij się, że skonfigurowano uprawnienia /etc/cron.monthly Przepustka
5.1.7 Upewnij się, że skonfigurowano uprawnienia w pliku /etc/cron.d Przejdź
5.1.8 Upewnij się, że cron jest ograniczony do autoryzowanych użytkowników Przejdź
5.1.9 Upewnij się, że dostęp do 'at' mają tylko autoryzowani użytkownicy. Przejście
5.2.1 Upewnij się, że skonfigurowano uprawnienia dla /etc/ssh/sshd_config Przejść
5.2.2 Upewnij się, że skonfigurowano uprawnienia do plików klucza prywatnego hosta SSH Zdane
5.2.3 Upewnij się, że uprawnienia dostępu do plików publicznego klucza hosta SSH są skonfigurowane. Przejście
5.2.4 Upewnij się, że dostęp SSH jest ograniczony Zaliczony
5.2.5 Upewnij się, że poziom LogLevel dla SSH jest odpowiedni Przejdź
5.2.6 Upewnij się, że włączono protokół SSH PAM Zaliczony
5.2.7 Upewnij się, że logowanie główne protokołu SSH jest wyłączone Zaliczenie
5.2.8 Upewnij się, że uwierzytelnianie SSH oparte na hoście jest wyłączone Przejdź
5.2.9 Upewnij się, że opcja SSH PermitEmptyPasswords jest wyłączona. Przejść
5.2.10 Upewnij się, że ustawienie SSH PermitUserEnvironment jest wyłączone Przejść
5.2.11 Upewnij się, że opcja IgnoreRhosts w SSH jest włączona Przejdź
5.2.12 Upewnij się, że są używane tylko silne szyfry Przepustka
5.2.13 Upewnij się, że są używane tylko silne algorytmy MAC Przejście
5.2.14 Upewnij się, że są używane tylko silne algorytmy wymiany kluczy Przejść
5.2.15 Upewnij się, że skonfigurowano transparent ostrzegawczy SSH Przejdź
5.2.16 Upewnij się, że dla protokołu SSH MaxAuthTries ustawiono wartość 4 lub mniejszą Przejdź
5.2.17 Upewnij się, że w SSH skonfigurowano funkcję MaxStartups Zdane
5.2.18 Upewnij się, że parametr SSH LoginGraceTime jest ustawiony na minutę lub mniej Przejść
5.2.19 Upewnij się, że wartość MaxSessions protokołu SSH jest ustawiona na 10 lub mniej. Przepustka
5.2.20 Upewnij się, że skonfigurowano interwał limitu czasu bezczynności protokołu SSH Przejście
5.3.1 Upewnij się, że program sudo jest zainstalowany Przejdź
5.3.2 Upewnij się, że ponowne uwierzytelnianie na potrzeby eskalacji uprawnień nie jest wyłączone globalnie Przejść
5.3.3 Upewnij się, że limit czasu uwierzytelniania sudo jest poprawnie skonfigurowany Zaliczony
5.4.1 Upewnij się, że skonfigurowano wymagania dotyczące tworzenia haseł Zaliczone
5.4.2 Upewnij się, że skonfigurowano blokadę dla nieudanych prób haseł Przejść
5.4.3 Upewnij się, że algorytm wyznaczania skrótów haseł to SHA-512 Przejść
5.4.4 Upewnij się, że ponowne użycie hasła jest ograniczone Przejdź
5.5.2 Upewnij się, że konta systemowe są zabezpieczone Przepuść
5.5.3 Upewnij się, że domyślna grupa dla konta głównego to GID 0 Przepustka
5.5.4 Upewnij się, że domyślna maska użytkownika jest 027 lub bardziej restrykcyjna Przejście
5.5.1.1 Upewnij się, że wygaśnięcie hasła wynosi 365 dni lub mniej Przepustka
5.5.1.2 Upewnij się, że skonfigurowano minimalną liczbę dni między zmianami haseł Przepustka
5.5.1.3 Upewnij się, że liczba dni ostrzeżenia o wygaśnięciu hasła to 7 lub więcej Przepustka
5.5.1.4 Upewnij się, że nieaktywna blokada hasła wynosi 30 dni lub mniej Przejście
5.5.1.5 Upewnij się, że data ostatniej zmiany hasła wszystkich użytkowników jest w przeszłości Przejdź
6.1.1 Upewnij się, że skonfigurowano uprawnienia dla /etc/passwd Przepustka
6.1.2 Upewnij się, że skonfigurowano uprawnienia dla /etc/passwd Zdane
6.1.3 Upewnij się, że skonfigurowano uprawnienia dla /etc/group Przepuść
6.1.4 Upewnij się, że skonfigurowano uprawnienia dla /etc/group- Przejdź
6.1.5 Upewnij się, że skonfigurowano uprawnienia do /etc/shadow Przejdź
6.1.6 Upewnij się, że skonfigurowano uprawnienia do /etc/shadow Przejdź
6.1.7 Upewnij się, że skonfigurowano uprawnienia w /etc/gshadow Podaj
6.1.8 Upewnij się, że skonfigurowano uprawnienia w /etc/gshadow Przepustka
6.1.9 Upewnij się, że nie istnieją żadne nieznajdowane lub niezgrupowane pliki lub katalogi Zaliczone
6.1.10 Upewnij się, że pliki i katalogi z dostępem do zapisu przez wszystkich są zabezpieczone. Przepustka
6.2.1 Upewnij się, że pola haseł nie są puste Przejść
6.2.2 Upewnij się, że wszystkie grupy w /etc/passwd istnieją w /etc/group Przejście
6.2.3 Upewnij się, że nie istnieją zduplikowane identyfikatory UID Przejść
6.2.4 Upewnij się, że nie istnieją zduplikowane identyfikatory GID Zaliczenie
6.2.5 Upewnij się, że nie istnieją zduplikowane nazwy użytkowników Przejść
6.2.6 Upewnij się, że nie istnieją zduplikowane nazwy grup Przejść
6.2.7 Upewnij się, że integralność ścieżki głównej Przepustka
6.2.8 Upewnij się, że root jest jedynym kontem UID 0 Przejdź
6.2.9 Upewnij się, że wszystkie katalogi główne użytkowników istnieją Przechodzić
6.2.10 Upewnij się, że użytkownicy są właścicielami swoich katalogów domowych Przejdź
6.2.11 Upewnij się, że uprawnienia katalogów domowych użytkowników są 750 lub bardziej restrykcyjne Przejść
6.2.12 Upewnij się, że pliki kropkowe użytkowników nie są grupowalne ani nie są zapisywalne w świecie Przejść
6.2.13 Upewnij się, że pliki .netrc użytkowników nie są grupowe ani dostępne dla świata Przejść
6.2.14 Upewnij się, że żaden użytkownik nie ma plików .forward Zaliczone
6.2.15 Upewnij się, że żaden użytkownik nie ma plików .netrc Przejście
6.2.16 Upewnij się, że żaden użytkownik nie ma plików .rhosts Zaliczenie

Następne kroki

Aby uzyskać więcej informacji na temat zabezpieczeń usługi Azure Linux Container Host, zobacz następujące artykuły: