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 |
|