Nessus adalah pemindai keamanan yang digunakan untuk mendeteksi kerentanan keamanan di hardware dan software.
Dokumen ini menyajikan langkah-langkah untuk:
menginstal Nessus
melakukan pemindaian Nessus
mengekspor hasil pemindaian Nessus
1. Latar belakang
Tenable Nessus adalah alat pihak ketiga berlisensi. Lihat referensi berikut untuk mempelajari Nessus lebih lanjut:
2. Sebelum memulai
Workstation
- Bootstrapper (te-bf), atau workstation yang setara dan dapat diakses oleh operator, diperlukan untuk menghosting Nessus.
Perlu akses
Ikuti IAM-R0005:
- Dapatkan peran admin cluster untuk setiap cluster target.
Ikuti IAM-R0004:
- Buat KUBECONFIG untuk setiap cluster target.
Alat yang diperlukan
- kubectl
- ssh-keygen
Software
- Diperlukan penginstal Nessus yang kompatibel dengan OS workstation Anda. Dapatkan penginstal dari https://www.tenable.com/downloads/nessus dan transfer ke workstation Nessus sebelum melanjutkan.
Pemberian Lisensi
- Diperlukan kode aktivasi lisensi Tenable Nessus (Pro, Export, atau Manager) tunggal. Jika Anda tidak memiliki kode aktivasi lisensi, hubungi POC tim Anda untuk mendapatkan lisensi pihak ketiga / daftar materi software.
3. Menginstal Nessus
Bagian ini membahas langkah-langkah untuk menginstal Nessus di workstation Nessus.
Jika Nessus sudah diinstal dan diaktifkan, bagian ini harus dilewati.
Jika Nessus tidak lagi tersedia (misalnya, diinstal pada mesin yang tidak ada lagi), lisensi yang digunakan untuk mengaktifkan instance Nessus sebelumnya harus direset sebelum melanjutkan.
Ekspor jalur ke penginstal Nessus:
NESSUS_INSTALLER=
Instal Nessus dengan dpkg:
dpkg -i ${NESSUS_INSTALLER:?}
Mulai ulang Nessus dan pastikan Nessus berjalan:
sudo systemctl restart nessusd sudo systemctl status nessusd
Mendapatkan kode tantangan untuk mendaftarkan Nessus secara offline:
/opt/nessus/sbin/nessuscli fetch --challenge
Di perangkat yang terhubung ke internet, buka halaman aktivasi offline Nessus https://plugins.nessus.org/v2/offline.php.
Salin kode aktivasi offline Nessus dan kode aktivasi lisensi Nessus ke halaman aktivasi offline Nessus, lalu tekan "Submit"
Halaman aktivasi offline Nessus kini akan menampilkan URL plugin Nessus dan lisensi produk. Kedua nilai ini diperlukan untuk langkah berikutnya.
Simpan URL plugin Nessus ke lokasi yang aman untuk referensi di masa mendatang karena akan diperlukan nanti dalam panduan ini.
Simpan lisensi dari halaman aktivasi offline Nessus ke workstation Nessus dalam file bernama
/opt/nessus/etc/nessus/nessus.license
.Terapkan lisensi ke Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
Buat pengguna admin:
Ikuti perintah dari
nessuscli adduser
untuk membuat penggunaadmin
. Kredensial ini akan digunakan nanti untuk melakukan pemindaian dan mendownload hasil, jadi simpan di tempat yang aman./opt/nessus/sbin/nessuscli adduser
Saat Nessus berjalan, antarmuka penggunanya dapat diakses di port 8834. Menggunakan browser pilihan Anda, buka
https://<nessus-workstation-ip>:8834
dan login sebagai penggunaadmin
.
4. Memperbarui plugin Nessus
Plugin Nessus terbaru harus didownload dan diterapkan ke Nessus sebelum menjalankan pemindaian untuk memastikan hasil pemindaian relevan dan terbaru. Plugin Nessus harus diperoleh langsung dari Tenable menggunakan URL plugin Nessus yang diperoleh dari halaman aktivasi offline Nessus.
Dapatkan paket plugin.
Opsi 1: Buka URL plugin Nessus menggunakan browser pilihan Anda dan paket akan otomatis didownload.
Opsi 2: Download paket menggunakan wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gz
Transfer paket plugin ke workstation Nessus dan ekspor lokasi file:
NESSUS_PLUGIN_BUNDLE=
Terapkan update plugin ke Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
Update plugin memerlukan waktu ~30 menit untuk menyelesaikan kompilasi. Langkah-langkah berikutnya untuk membuat pemindaian dapat diikuti saat hal ini terjadi, tetapi jangan jalankan pemindaian hingga plugin selesai dikompilasi.
5. Mengonfigurasi pemindaian Nessus
Pemindaian harus dibuat untuk setiap kombinasi unik dari target kelas dan kredensial. Bagian ini akan membahas cara membuat pemindaian yang diperlukan melalui UI Nessus.
Sebelum melanjutkan, konfirmasi akses ke UI Nessus di https://<nessus-workstation-ip>:8834
dan login sebagai pengguna admin
.
5.1. Mengumpulkan CIDR jaringan
Pemindaian Nessus dibuat untuk memindai CIDR jaringan eksternal dan internal untuk lingkungan.
Kumpulkan CIDR jaringan eksternal dan internal untuk jaringan appliance target (idealnya, jaringan ini tidak tumpang-tindih dengan lingkungan tetangga lainnya).
Rentang IP kemungkinan akan mencakup IP bootstrapper atau IP lain yang tidak boleh dipindai. Masukkan perintah berikut untuk setiap IP yang tidak boleh dipindai (misalnya, IP bootstrapper):
IGNORE_IP= IGNORE_IP_REASON= echo "# ${IGNORE_IP_REASON:?}" >> /opt/nessus/etc/nessus/nessusd.rules echo "reject ${IGNORE_IP:?}" >> /opt/nessus/etc/nessus/nessusd.rules
5.2. Pemindaian penemuan host
Pemindaian penemuan jaringan tidak diautentikasi dan dimaksudkan untuk menyapu jaringan guna mencari target dan eksposur jaringan yang tidak aman.
Pemindaian ini akan dikonfigurasi untuk memindai CIDR jaringan eksternal dan internal yang diidentifikasi di bagian sebelumnya.
Di UI Nessus:
- Buat pemindaian penemuan host bernama
host-discovery
- Tentukan Host: CIDR eksternal dan internal
- Simpan dan luncurkan
5.3. Pemindaian OS node
Pemindaian node diautentikasi dan dimaksudkan untuk memeriksa sistem operasi penting terkait kerentanan yang diketahui, konfigurasi yang tidak aman, dan kepatuhan.
Pelajari bagian ini untuk cluster infrastruktur organisasi:
Ekspor kubeconfig cluster:
KUBECONFIG=
Mencantumkan semua node cluster:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
Perhatikan kolom yang menampilkan IP data untuk setiap node. Periksa kembali bahwa IP data dapat diakses dari workstation Nessus dengan ping sebelum melanjutkan.
ping <node_data_ip>
Di UI Nessus, mulai buat "Advanced scan" dengan nama
nodeos-compliance-<cluster_name>
Dalam pemindaian lanjutan, isi kolom host dengan daftar semua IP data node yang dipisahkan koma dari langkah 1
Ikuti Lampiran: Menambahkan Kredensial SSH Node Cluster untuk menambahkan kredensial pemindaian.
Buka tab kepatuhan dan pilih revisi terbaru yang tersedia dari "DISA STIG Ubuntu 20.04 v1". Simpan konfigurasi kepatuhan apa adanya tanpa melakukan perubahan apa pun pada nilai default.
Simpan konfigurasi pemindaian dan mulai pemindaian.
5.4. Berhenti sebentar
Pemindaian akan memerlukan waktu lebih dari 30 menit untuk selesai. Sekarang adalah saat yang tepat untuk beristirahat atau melakukan hal lain hingga tugas selesai.
6. Mengekspor hasil pemindaian
Bagian ini menjelaskan proses untuk mengekspor hasil pemindaian.
Untuk setiap pemindaian yang selesai, download hasilnya:
Pilih pemindaian yang telah selesai untuk meninjau hasilnya.
Klik tombol "Laporkan" di kanan atas.
Pilih Format Laporan CSV dan pilih semua kolom.
Klik "Buat Laporan". Setelah penundaan singkat, laporan akan didownload.
(Opsional) Jika laporan HTML juga diperlukan, pilih Format Laporan HTML dan Template Laporan yang sesuai. Template laporan yang direkomendasikan adalah "Detailed Vulnerabilities By Plugin with Compliance/Remediation".
7. Langkah berikutnya
Laporan CSV / HTML yang dihasilkan harus diproses sesuai dengan proses keamanan lingkungan Anda. Jika ragu, hubungi POC SecOps atau Kepatuhan untuk mendapatkan petunjuk lebih lanjut.
8. Lampiran
8.1. Menambahkan Kredensial SSH node cluster
Bagian ini menjelaskan proses untuk mendapatkan serangkaian kredensial SSH agar Nessus dapat memindai node cluster target.
Ekspor kubeconfig cluster:
KUBECONFIG=
Mencantumkan kunci SSH cluster
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
Identifikasi namespace rahasia "ssh-key" yang sesuai dengan cluster target dan ekspor namespace:
CLUSTER_NS=
Buat direktori ssh Nessus:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.ssh
Ekspor pasangan kunci SSH ke direktori SSH Nessus:
kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa-cert\.pub }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Perbaiki izin pasangan kunci:
# fix permissions chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pub
Konversi kunci pribadi ke format pem dengan frasa sandi kosong:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa
Output yang berhasil akan terlihat seperti berikut:
Key has comment 'root@te-bd-bootstrapper' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.
Transfer
nessus-<cluster>-id_rsa
dannessus-<cluster>-id_rsa-cert.pub
ke workstation yang digunakan untuk mengakses UI Nessus.Di UI Nessus, buka tab Kredensial setelan pemindaian.
Buat kredensial SSH baru dan pilih "sertifikat" untuk metode autentikasi.
Berikan setelan berikut ke metode autentikasi SSH sertifikat:
Nama pengguna: "root"
Sertifikat Pengguna: Tambahkan file
nessus-<cluster>-id_rsa-cert.pub
Kunci pribadi: Tambahkan file
nessus-<cluster>-id_rsa
Simpan setelan SSH.
Kembali ke tempat bagian ini dirujuk.