Bagikan melalui


Penyelarasan gambar Ubuntu Azure Kubernetes Service (AKS) dengan tolok ukur Center for Internet Security (CIS)

Sebagai layanan yang aman, Azure Kubernetes Service (AKS) mematuhi standar SOC, ISO, PCI DSS, dan HIPAA. Artikel ini membahas konfigurasi OS keamanan yang diterapkan ke gambar Ubuntu yang digunakan oleh AKS. Konfigurasi keamanan ini didasarkan pada garis besar keamanan Azure Linux, yang selaras dengan tolok ukur CIS. Untuk informasi lebih lanjut tentang keamanan AKS, lihat Konsep keamanan untuk aplikasi dan kluster di Azure Kubernetes Service (AKS). Untuk informasi lebih lanjut tentang keamanan AKS, lihat Konsep keamanan untuk aplikasi dan kluster di Azure Kubernetes Service (AKS). Untuk informasi lebih lanjut tentang tolok ukur CIS, lihat Tolok ukur Center for Internet Security (CIS). Untuk informasi selengkapnya tentang garis besar keamanan Azure untuk Linux, lihat Garis besar keamanan Linux.

Ubuntu LTS 18.04

Kluster AKS disebarkan pada mesin virtual host, yang menjalankan sistem operasi dengan konfigurasi aman bawaan. Sistem operasi ini digunakan untuk kontainer yang berjalan di AKS. Sistem operasi host ini didasarkan pada gambar Ubuntu 18.04.LTS dengan konfigurasi keamanan yang diterapkan.

Sebagai bagian dari sistem operasi yang dioptimalkan keamanan:

  • AKS menyediakan OS host yang dioptimalkan keamanan secara default, tetapi tidak ada opsi untuk memilih sistem operasi alternatif.
  • OS host yang dioptimalkan keamanannya dibuat dan dipelihara khusus untuk AKS dan tidak didukung di luar platform AKS.
  • Beberapa driver modul kernel yang tidak perlu telah dinonaktifkan di OS untuk mengurangi area permukaan serangan.

Catatan

Tidak terkait dengan tolok ukur CIS, Azure menerapkan patch harian, termasuk patch keamanan, ke host mesin virtual AKS.

Tujuan dari konfigurasi aman yang dibuat ke dalam OS host adalah untuk mengurangi area permukaan serangan dan mengoptimalkan penyebaran kontainer dengan cara yang aman.

Berikut ini adalah hasil dari rekomendasi CIS Ubuntu 18.04 LTS Benchmark v2.1.0.

Rekomendasi dapat memiliki salah satu alasan berikut:

  • Dampak Operasi Potensial - Rekomendasi tidak diterapkan karena akan memiliki efek negatif pada layanan.
  • Tercakup di Tempat Lain - Rekomendasi dicakup oleh kontrol lain dalam komputasi cloud Azure.

Berikut ini adalah aturan CIS yang diterapkan:

Nomor paragraf CIS Deskripsi rekomendasi Status Alasan
1 Penyiapan Awal
1.1 Konfigurasi Sistem File
1.1.1 Menonaktifkan sistem file yang tidak digunakan
1.1.1.1 Memastikan pemasangan filesystem cramfs dinonaktifkan Lulus
1.1.1.2 Memastikan pemasangan filesystem cramfs dinonaktifkan Lulus
1.1.1.3 Memastikan pemasangan filesystem jffs2 dinonaktifkan Lulus
1.1.1.4 Memastikan pemasangan sistem file hfs dinonaktifkan Lulus
1.1.1.5 Memastikan pemasangan sistem file hfsplus dinonaktifkan Lulus
1.1.1.6 Memastikan pemasangan sistem file udf dinonaktifkan Gagal Potensi Dampak Operasional
1.1.2 Pastikan /tmp dikonfigurasi Gagal
1.1.3 Memastikan opsi nodev diatur pada partisi /tmp Gagal
1.1.4 Memastikan opsi nodev diatur pada partisi /tmp Lulus
1.1.5 Pastikan opsi noexec diatur di partisi /tmp Lulus
1.1.6 Pastikan /dev/shm dikonfigurasi Lulus
1.1.7 Memastikan opsi nodev diatur pada partisi /dev/shm Lulus
1.1.8 Memastikan opsi nosuid diatur pada partisi /dev/shm Lulus
1.1.9 Memastikan opsi noexec diatur pada partisi /dev/shm Gagal Potensi Dampak Operasional
1.1.12 Memastikan partisi /var/tmp menyertakan opsi nodev Lulus
1.1.13 Memastikan partisi /var/tmp menyertakan opsi nosuid Lulus
1.1.14 Memastikan partisi /var/tmp menyertakan opsi noexec Lulus
1.1.18 Memastikan partisi /home menyertakan opsi nodev Lulus
1.1.19 Memastikan opsi nodev diatur pada partisi media yang dapat dilepas Tidak Berlaku
1.1.20 Memastikan opsi nosuid diatur pada partisi media yang dapat dilepas Tidak Berlaku
1.1.21 Memastikan opsi noexec diatur pada partisi media yang dapat dilepas Tidak Berlaku
1.1.22 Memastikan bit tempel diatur di semua direktori yang dapat ditulis dunia Gagal Potensi Dampak Operasi
1.1.23 Menonaktifkan Pemasangan Otomatis Lulus
1.1.24 Menonaktifkan Penyimpanan USB Lulus
1.2 Mengonfigurasi Pembaruan Perangkat Lunak
1.2.1 Memastikan repositori manajer paket dikonfigurasi Lulus Tercakup di Tempat Lain
1.2.2 Memastikan kunci GPG dikonfigurasi Tidak Berlaku
1.3 Pemeriksaan Integritas Sistem File
1.3.1 Memastikan AIDE diinstal Gagal Tercakup di Tempat Lain
1.3.2 Memastikan integritas sistem file diperiksa secara teratur Gagal Tercakup di Tempat Lain
1.4 Pengaturan Boot Aman
1.4.1 Pastikan izin pada konfigurasi bootloader tidak ditimpa Gagal
1.4.2 Memastikan kata sandi bootloader diatur Gagal Tidak Berlaku
1.4.3 Memastikan izin pada konfigurasi bootloader dikonfigurasi Gagal
1.4.4 Memastikan autentikasi diperlukan untuk mode pengguna tunggal Gagal Tidak Berlaku
1.5 Pengerasan Proses Tambahan
1.5.1 Memastikan dukungan XD/NX diaktifkan Tidak Berlaku
1.5.2 Memastikan pengacak tata letak ruang alamat (ASLR) diaktifkan Lulus
1.5.3 Memastikan pralink dinonaktifkan Lulus
1.5.4 Memastikan cadangan inti dibatasi Lulus
1.6 Kontrol Akses Wajib
1.6.1 Mengonfigurasi AppArmor
1.6.1.1 Memastikan AppArmor diinstal Lulus
1.6.1.2 Memastikan AppArmor diaktifkan dalam konfigurasi bootloader Gagal Potensi Dampak Operasi
1.6.1.3 Memastikan semua Profil AppArmor dalam mode berlaku atau komplain Lulus
1.7 Banner Peringatan Baris Perintah
1.7.1 Memastikan pesan hari ini dikonfigurasi dengan benar Lulus
1.7.2 Memastikan izin pada /etc/issue.net dikonfigurasi Lulus
1.7.3 Memastikan izin pada /etc/issue dikonfigurasi Lulus
1.7.4 Memastikan izin pada /etc/motd dikonfigurasi Lulus
1.7.5 Memastikan banner peringatan masuk dari jauh dikonfigurasi dengan benar Lulus
1.7.6 Memastikan banner peringatan masuk lokal dikonfigurasi dengan benar Lulus
1.8 Pengelola Tampilan GNOME
1.8.2 Memastikan banner masuk GDM dikonfigurasi Lulus
1.8.3 Memastikan disable-user-list diaktifkan Lulus
1.8.4 Pastikan XDCMP tidak diaktifkan Lulus
1.9 Memastikan pembaruan, patch, dan perangkat lunak keamanan tambahan diinstal Lulus
2 Layanan
2.1 Layanan Tujuan Khusus
2.1.1 Sinkronisasi Waktu
2.1.1.1 Memastikan sinkronisasi waktu sedang digunakan Lulus
2.1.1.2 Memastikan systemd-timesyncd dikonfigurasi Tidak Berlaku AKS menggunakan ntpd untuk timesync
2.1.1.3 Memastikan kroni dikonfigurasi Gagal Tercakup di Tempat Lain
2.1.1.4 Memastikan ntp dikonfigurasi Lulus
2.1.2 Pastikan Sistem Jendela X tidak terinstal Lulus
2.1.3 Pastikan Avahi Server tidak diinstal Lulus
2.1.4 Pastikan CUPS tidak diinstal Lulus
2.1.5 Pastikan Server DHCP tidak diinstal Lulus
2.1.6 Pastikan server LDAP tidak diinstal Lulus
2.1.7 Pastikan NFS tidak diinstal Lulus
2.1.8 Pastikan Server DNS tidak terinstal Lulus
2.1.9 Pastikan Server FTP tidak diinstal Lulus
2.1.10 Pastikan server HTTP tidak terinstal Lulus
2.1.11 Pastikan server IMAP dan POP3 tidak terinstal Lulus
2.1.12 Pastikan Samba tidak diinstal Lulus
2.1.13 Pastikan Server Proksi HTTP tidak terinstal Lulus
2.1.14 Pastikan SNMP Server tidak terinstal Lulus
2.1.15 Memastikan agen transfer email dikonfigurasi untuk mode lokal saja Lulus
2.1.16 Pastikan layanan rsync tidak diinstal Gagal
2.1.17 Pastikan Server NIS tidak terinstal Lulus
2.2 Klien Layanan
2.2.1 Pastikan Klien NIS tidak diinstal Lulus
2.2.2 Pastikan klien rsh tidak diinstal Lulus
2.2.3 Pastikan klien bicara tidak terinstal Lulus
2.2.4 Pastikan klien telnet tidak diinstal Gagal
2.2.5 Pastikan klien LDAP tidak diinstal Lulus
2.2.6 Pastikan RPC tidak terinstal Gagal Potensi Dampak Operasional
2.3 Memastikan tidak ada layanan penting yang dihapus atau ditutupi Lulus
3 Konfigurasi Jaringan
3.1 Menonaktifkan protokol dan perangkat jaringan yang tidak digunakan
3.1.2 Memastikan antarmuka nirkabel dinonaktifkan Lulus
3.2 Parameter Jaringan (Hanya Host)
3.2.1 Memastikan pengiriman pengalihan paket dinonaktifkan Lulus
3.2.2 Memastikan penerusan IP dinonaktifkan Gagal Tidak Berlaku
3.3 Parameter Jaringan (Host dan Router)
3.3.1 Pastikan paket sumber yang dirutekan tidak diterima Lulus
3.3.2 Pastikan pengalihan ICMP tidak diterima Lulus
3.3.3 Pastikan pengalihan ICMP yang aman tidak diterima Lulus
3.3.4 Memastikan paket mencurigakan dicatat Lulus
3.3.5 Memastikan permintaan penyebarluasan ICMP diabaikan Lulus
3.3.6 Memastikan respons ICMP palsu diabaikan Lulus
3.3.7 Memastikan Pemfilteran Jalur Terbalik diaktifkan Lulus
3.3.8 Memastikan Cookie TCP SYN diaktifkan Lulus
3.3.9 Pastikan iklan router IPv6 tidak diterima Lulus
3.4 Protokol Jaringan Yang Jarang
3.5 Konfigurasi Firewall
3.5.1 Mengonfigurasi UncomplicatedFirewall
3.5.1.1 Memastikan ufw diinstal Lulus
3.5.1.2 Memastikan iptables-persistent tidak diinstal dengan ufw Lulus
3.5.1.3 Memastikan layanan ufw diaktifkan Gagal Tercakup di Tempat Lain
3.5.1.4 Memastikan lalu lintas loopback ufw dikonfigurasi Gagal Tercakup di Tempat Lain
3.5.1.5 Memastikan koneksi keluar ufw dikonfigurasi Tidak Berlaku Tercakup di Tempat Lain
3.5.1.6 Memastikan aturan firewall ufw ada untuk semua port terbuka Tidak Berlaku Tercakup di Tempat Lain
3.5.1.7 Memastikan ufw default tolak kebijakan firewall Gagal Tercakup di Tempat Lain
3.5.2 Mengonfigurasi nftables
3.5.2.1 Memastikan nftables terinstal Gagal Tercakup di Tempat Lain
3.5.2.2 Memastikan ufw dihapus instalannya atau dinonaktifkan dengan nftables Gagal Tercakup di Tempat Lain
3.5.2.3 Memastikan iptable di-flush dengan nftables Tidak Berlaku Tercakup di Tempat Lain
3.5.2.4 Memastikan tabel nftables ada Gagal Tercakup di Tempat Lain
3.5.2.5 Memastikan rantai dasar nftables ada Gagal Tercakup di Tempat Lain
3.5.2.6 Memastikan lalu lintas loopback nftables dikonfigurasi Gagal Tercakup di Tempat Lain
3.5.2.7 Memastikan koneksi keluar dan koneksi yang dibuat nftable dikonfigurasi Tidak Berlaku Tercakup di Tempat Lain
3.5.2.8 Memastikan kebijakan firewall tolak default nftables Gagal Tercakup di Tempat Lain
3.5.2.9 Memastikan layanan nftables diaktifkan Gagal Tercakup di Tempat Lain
3.5.2.10 Memastikan aturan nftables bersifat permanen Gagal Tercakup di Tempat Lain
3.5.3 Mengonfigurasi iptables
3.5.3.1 Mengonfigurasi perangkat lunak iptables
3.5.3.1.1 Memastikan paket iptables diinstal Gagal Tercakup di Tempat Lain
3.5.3.1.2 Memastikan nftables tidak diinstal dengan iptables Lulus
3.5.3.1.3 Memastikan ufw dihapus instalannya atau dinonaktifkan dengan iptables Gagal Tercakup di Tempat Lain
3.5.3.2 Mengonfigurasi iptables IPv4
3.5.3.2.1 Memastikan kebijakan firewall tolak default iptables Gagal Tercakup di Tempat Lain
3.5.3.2.2 Memastikan lalu lintas loopback iptables dikonfigurasi Gagal Tidak Berlaku
3.5.3.2.3 Memastikan koneksi keluar dan dibuat iptables dikonfigurasi Tidak Berlaku
3.5.3.2.4 Memastikan aturan firewall iptables ada untuk semua port terbuka Gagal Potensi Dampak Operasi
3.5.3.3 Mengonfigurasi IPv6 ip6tables
3.5.3.3.1 Memastikan kebijakan firewall tolak default ip6tables Gagal Tercakup di Tempat Lain
3.5.3.3.2 Memastikan lalu lintas loopback ip6tables dikonfigurasi Gagal Tercakup di Tempat Lain
3.5.3.3.3 Memastikan koneksi keluar dan yang dibuat ip6tables dikonfigurasi Tidak Berlaku Tercakup di Tempat Lain
3.5.3.3.4 Memastikan aturan firewall ip6tables ada untuk semua port terbuka Gagal Tercakup di Tempat Lain
4 Pengelogan dan Audit
4.1 Mengonfigurasi Akuntansi Sistem (auditd)
4.1.1.2 Memastikan audit diaktifkan
4.1.2 Mengonfigurasi Retensi Data
4.2 Mengonfigurasi Pengelogan
4.2.1 Mengonfigurasi rsyslog
4.2.1.1 Memastikan rsyslog diinstal Lulus
4.2.1.2 Memastikan Layanan rsyslog diaktifkan Lulus
4.2.1.3 Memastikan pengelogan dikonfigurasi Lulus
4.2.1.4 Memastikan izin file default rsyslog dikonfigurasi Lulus
4.2.1.5 Memastikan rsyslog dikonfigurasi untuk mengirim log ke host log jarak jauh Gagal Tercakup di Tempat Lain
4.2.1.6 Memastikan pesan rsyslog jarak jauh hanya diterima pada host log yang ditunjuk. Tidak Berlaku
4.2.2 Mengonfigurasi journald
4.2.2.1 Memastikan journald dikonfigurasi untuk mengirim log ke rsyslog Lulus
4.2.2.2 Memastikan journald dikonfigurasi untuk memadatkan file log besar Gagal
4.2.2.3 Memastikan journald dikonfigurasi untuk menulis file log ke disk persisten Lulus
4.2.3 Memastikan izin pada semua file log dikonfigurasi Gagal
4.3 Memastikan logrotate dikonfigurasi Lulus
4.4 Memastikan logrotate menetapkan izin yang sesuai Gagal
5 Akses, Autentikasi, dan Otorisasi
5.1 Mengonfigurasi penjadwal pekerjaan berbasis waktu
5.1.1 Memastikan daemon cron diaktifkan dan berjalan Lulus
5.1.2 Memastikan izin pada /etc/crontab dikonfigurasi Lulus
5.1.3 Memastikan izin pada /etc/cron.hourly dikonfigurasi Lulus
5.1.4 Memastikan izin pada /etc/cron.daily dikonfigurasi Lulus
5.1.5 Memastikan izin pada /etc/cron.weekly dikonfigurasi Lulus
5.1.6 Memastikan izin pada /etc/cron.monthly dikonfigurasi Lulus
5.1.7 Memastikan izin pada /etc/cron.d dikonfigurasi Lulus
5.1.8 Memastikan cron dibatasi untuk pengguna yang diotorisasi Gagal
5.1.9 Memastikan at dibatasi untuk pengguna yang diotorisasi Gagal
5.2 Mengonfigurasi sudo
5.2.1 Memastikan sudo terinstal Lulus
5.2.2 Memastikan perintah sudo menggunakan pty Gagal Potensi Dampak Operasional
5.2.3 MEmastikan file log sudo ada Gagal
5.3 Mengonfigurasi Server SSH
5.3.1 Memastikan izin pada /etc/ssh/sshd_config dikonfigurasi Lulus
5.3.2 Memastikan izin di file kunci host privat SSH dikonfigurasi Lulus
5.3.3 Memastikan izin di file kunci host publik SSH dikonfigurasi Lulus
5.3.4 Pastikan akses SSH terbatas Lulus
5.3.5 Memastikan SSH LogLevel sesuai Lulus
5.3.7 Memastikan SSH MaxAuthTries diatur ke 4 atau kurang Lulus
5.3.8 Memastikan SSH IgnoreRhosts diaktifkan Lulus
5.3.9 Memastikan SSH HostbasedAuthentication dinonaktifkan Lulus
5.3.10 Memastikan masuk akar SSH dinonaktifkan Lulus
5.3.11 Memastikan SSH PermitEmptyPasswords dinonaktifkan Lulus
5.3.12 Memastikan SSH PermitUserEnvironment dinonaktifkan Lulus
5.3.13 Memastikan hanya Cipher yang kuat yang digunakan Lulus
5.3.14 Memastikan hanya algoritme MAC yang kuat yang digunakan Lulus
5.3.15 Memastikan hanya algoritme Exchange Kunci yang kuat yang digunakan Lulus
5.3.16 Memastikan SSH Idle Timeout Interval dikonfigurasi Gagal
5.3.17 Memastikan SSH LoginGraceTime diatur ke satu menit atau kurang Lulus
5.3.18 Memastikan banner peringatan SSH dikonfigurasi Lulus
5.3.19 Memastikan SSH PAM diaktifkan Lulus
5.3.21 Memastikan SSH MaxStartups dikonfigurasi Gagal
5.3.22 Memastikan SSH MaxSessions dibatasi Lulus
5.4 Mengonfigurasi PAM
5.4.1 Memastikan persyaratan pembuatan kata sandi dikonfigurasi Lulus
5.4.2 Memastikan penguncian untuk upaya kata sandi yang gagal dikonfigurasi Gagal
5.4.3 Memastikan penggunaan kembali kata sandi dibatasi Gagal
5.4.4 Pastikan algoritma hash kata sandi adalah SHA-512 Lulus
5.5 Akun dan Lingkungan Pengguna
5.5.1 Mengatur Parameter Rangkaian Kata Sandi Bayangan
5.5.1.1 Memastikan hari minimum antara perubahan kata sandi dikonfigurasi Lulus
5.5.1.2 Memastikan waktu kedaluwarsa kata sandi adalah 365 hari atau kurang Lulus
5.5.1.3 Memastikan hari peringatan kedaluwarsa kata sandi adalah 7 atau lebih Lulus
5.5.1.4 Memastikan kunci kata sandi tidak aktif adalah 30 hari atau kurang Lulus
5.5.1.5 Pastikan semua pengguna terakhir kali mengubah tanggal kata sandi di masa lalu Gagal
5.5.2 Memastikan akun sistem diamankan Lulus
5.5.3 Pastikan grup default untuk akun root adalah GID 0 Lulus
5.5.4 Memastikan umask pengguna default adalah 027 atau lebih ketat Lulus
5.5.5 Memastikan batas waktu shell pengguna default adalah 900 detik atau kurang Gagal
5.6 Memastikan masuk root dibatasi untuk konsol sistem Tidak Berlaku
5.7 Memastikan akses ke perintah su dibatasi Gagal Potensi Dampak Operasi
6 Pemeliharaan Sistem
6.1 Izin File Sistem
6.1.2 Memastikan izin di /etc/passwd dikonfigurasi Lulus
6.1.3 Memastikan izin di /etc/passwd- dikonfigurasi Lulus
6.1.4 Memastikan izin di /etc/group dikonfigurasi Lulus
6.1.5 Memastikan izin di /etc/group- dikonfigurasi Lulus
6.1.6 Memastikan izin di /etc/shadow dikonfigurasi Lulus
6.1.7 Memastikan izin di /etc/shadow- dikonfigurasi Lulus
6.1.8 Memastikan izin di /etc/gshadow dikonfigurasi Lulus
6.1.9 Memastikan izin di /etc/gshadow- dikonfigurasi Lulus
6.1.10 Memastikan tidak ada file bisa-tulis dunia Gagal Potensi Dampak Operasi
6.1.11 Memastikan tidak ada file atau direktori yang tidak ada Gagal Potensi Dampak Operasi
6.1.12 Memastikan tidak ada file atau direktori yang tidak digrup Gagal Potensi Dampak Operasi
6.1.13 Mengaudit executable SUID Tidak Berlaku
6.1.14 Mengaudit executable SGID Tidak Berlaku
6.2 Pengaturan Pengguna dan Grup
6.2.1 Memastikan akun di /etc/passwd menggunakan kata sandi berbayangan Lulus
6.2.2 Pastikan bidang kata sandi tidak kosong Lulus
6.2.3 Memastikan semua grup dalam /etc/passwd ada di /etc/group Lulus
6.2.4 Memastikan semua direktori asal pengguna ada Lulus
6.2.5 Memastikan pengguna memiliki direktori asal mereka Lulus
6.2.6 Memastikan izin direktori beranda pengguna adalah 750 atau lebih ketat Lulus
6.2.7 Pastikan file titik pengguna tidak dapat ditulis grup atau dunia Lulus
6.2.8 Memastikan tidak ada pengguna yang memiliki file .netrc Lulus
6.2.9 Memastikan tidak ada pengguna yang memiliki file .forward Lulus
6.2.10 Memastikan tidak ada pengguna yang memiliki file .rhosts Lulus
6.2.11 Memastikan root satu-satunya akun dengan UID 0 Lulus
6.2.12 Memastikan Integritas PATH root Lulus
6.2.13 Memastikan tidak ada UID duplikat Lulus
6.2.14 Memastikan tidak ada GID duplikat Lulus
6.2.15 Memastikan tidak ada nama pengguna duplikat Lulus
6.2.16 Memastikan tidak ada nama grup duplikat Lulus
6.2.17 Memastikan grup bayangan kosong Lulus

Langkah berikutnya

Untuk informasi selengkapnya tentang keamanan AKS, lihat artikel berikut: