Melakukan pemindaian Nessus

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

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

  1. Ekspor jalur ke penginstal Nessus:

    NESSUS_INSTALLER=
    
  2. Instal Nessus dengan dpkg:

    dpkg -i ${NESSUS_INSTALLER:?}
    
  3. Mulai ulang Nessus dan pastikan Nessus berjalan:

    sudo systemctl restart nessusd
    sudo systemctl status nessusd
    
  4. Mendapatkan kode tantangan untuk mendaftarkan Nessus secara offline:

    /opt/nessus/sbin/nessuscli fetch --challenge
    
  5. Di perangkat yang terhubung ke internet, buka halaman aktivasi offline Nessus https://plugins.nessus.org/v2/offline.php.

  6. Salin kode aktivasi offline Nessus dan kode aktivasi lisensi Nessus ke halaman aktivasi offline Nessus, lalu tekan "Submit"

  7. Halaman aktivasi offline Nessus kini akan menampilkan URL plugin Nessus dan lisensi produk. Kedua nilai ini diperlukan untuk langkah berikutnya.

  8. Simpan URL plugin Nessus ke lokasi yang aman untuk referensi di masa mendatang karena akan diperlukan nanti dalam panduan ini.

  9. Simpan lisensi dari halaman aktivasi offline Nessus ke workstation Nessus dalam file bernama /opt/nessus/etc/nessus/nessus.license.

  10. Terapkan lisensi ke Nessus:

    /opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.license
    
  11. Buat pengguna admin:

    Ikuti perintah dari nessuscli adduser untuk membuat pengguna admin. Kredensial ini akan digunakan nanti untuk melakukan pemindaian dan mendownload hasil, jadi simpan di tempat yang aman.

    /opt/nessus/sbin/nessuscli adduser
    
  12. Saat Nessus berjalan, antarmuka penggunanya dapat diakses di port 8834. Menggunakan browser pilihan Anda, buka https://<nessus-workstation-ip>:8834 dan login sebagai pengguna admin.

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.

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

  2. Transfer paket plugin ke workstation Nessus dan ekspor lokasi file:

    NESSUS_PLUGIN_BUNDLE=
    
  3. Terapkan update plugin ke Nessus:

    /opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}
    
  4. 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.

  1. Kumpulkan CIDR jaringan eksternal dan internal untuk jaringan appliance target (idealnya, jaringan ini tidak tumpang-tindih dengan lingkungan tetangga lainnya).

  2. 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:

  1. Buat pemindaian penemuan host bernama host-discovery
  2. Tentukan Host: CIDR eksternal dan internal
  3. 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:

  1. Ekspor kubeconfig cluster:

    KUBECONFIG=
    
  2. Mencantumkan semua node cluster:

    kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wide
    
  3. 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>
    
  4. Di UI Nessus, mulai buat "Advanced scan" dengan nama nodeos-compliance-<cluster_name>

  5. Dalam pemindaian lanjutan, isi kolom host dengan daftar semua IP data node yang dipisahkan koma dari langkah 1

  6. Ikuti Lampiran: Menambahkan Kredensial SSH Node Cluster untuk menambahkan kredensial pemindaian.

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

  8. 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:

  1. Pilih pemindaian yang telah selesai untuk meninjau hasilnya.

  2. Klik tombol "Laporkan" di kanan atas.

  3. Pilih Format Laporan CSV dan pilih semua kolom.

  4. Klik "Buat Laporan". Setelah penundaan singkat, laporan akan didownload.

  5. (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.

  1. Ekspor kubeconfig cluster:

    KUBECONFIG=
    
  2. Mencantumkan kunci SSH cluster

    kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-key
    
  3. Identifikasi namespace rahasia "ssh-key" yang sesuai dengan cluster target dan ekspor namespace:

    CLUSTER_NS=
    
  4. Buat direktori ssh Nessus:

    NESSUS_FOLDER=nessus
    mkdir -p ${NESSUS_FOLDER}/.ssh
    
  5. 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
    
  6. 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
    
  7. 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.
    
  8. Transfer nessus-<cluster>-id_rsa dan nessus-<cluster>-id_rsa-cert.pub ke workstation yang digunakan untuk mengakses UI Nessus.

  9. Di UI Nessus, buka tab Kredensial setelan pemindaian.

  10. Buat kredensial SSH baru dan pilih "sertifikat" untuk metode autentikasi.

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

  12. Simpan setelan SSH.

  13. Kembali ke tempat bagian ini dirujuk.