Test porównawczy usługi Azure Linux w usłudze Center for Internet Security (CIS)

Konfiguracja systemu operacyjnego zabezpieczeń zastosowana do hosta kontenera systemu Linux platformy Azure dla usługi AKS jest oparta na punkcie odniesienia zabezpieczeń systemu Linux platformy Azure, który jest zgodny z testem porównawczym 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 kompilowany i obsługiwany 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: skojarzony identyfikator reguły z każdą z 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 opartej na regułach ciS:

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

Następne kroki

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