Cara Menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04

Cara Menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04

Jika kamu memiliki server Ubuntu 22.04 yang aktif untuk sebuah aplikasi, kamu sangat memerlukan Vulnerability Scanner untuk memantau atau memonitoring apakah ada hal-hal yang mencurigakan di server atau tidak. Hal ini dapat dilakukan menggunakan Vuls. Pada artikel ini, kami akan membahas mengenai cara menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04.

Vuls

Vuls adalah agentless vulnerability scanner yang open-source dan ditulis dengan bahasa pemrograman Go. Ini mengotomatiskan security vulnerability analysis dari software yang di install pada system, yang dapat menjadi tugas berat bagi seorang System Administrator untuk dilakukan secara manual di production environment. 

Vuls menggunakan beberapa vulnerability databases, termasuk National Vulnerability Database (NVD). Vuls dapat melakukan scan multiple system sekaligus dan mengirim report melalui email atau Slack. Dan memiliki 3 scan mode (Fast, Fast Root, dan Deep), yang dapat kamu pilih sesuai dengan situasi dan kondisi.

Baca juga: Cara Mudah Koneksi Samba Share dari Windows

Persiapan

Ada beberapa hal yang perlu disiapkan:

  1. Memiliki VPS yang aktif dengan OS Ubuntu 22.04.
  2. VPS dengan RAM 4 GB & 4 CPU Core.
  3. Memiliki akses root.

Point

Terdapat beberapa rangkuman point instalasi pada artikel ini.

  • Update Server
  • Install Firewall
  • Install Dependencies
  • Install Go
  • Download & Configuring Vuls
  • Run Local Scan

Baca juga: Cara Install SSL Certificate Berbayar di cPanel

Cara Menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04

Berikut cara menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04.

Update Server

Login terlebih dahulu ke root server dan update server untuk memastikan packages server nya sudah up-to-date.

$ apt-get update -y

$ reboot

Install Firewall

Sebelum memulainya, perlu instalasi Firewall supaya lebih secure. Pada Firewall ini menggunakan CSF (ConfigServer Security & Firewall). Instalasinya dengan perintah di bawah ini:

$ cd /usr/src

$ wget https://download.configserver.com/csf.tgz

$ tar -xzf csf.tgz

$ cd csf/

$ sh install.sh

Pada konfigurasi CSF rubah “make TESTING=’1’ menjadi 0”.

$ nano /etc/csf/csf.conf

Kemudian restart CSF supaya reload konfigurasi yang ter-update.

$ csf -r

Baca juga: Cara Upload Laravel ke Hosting

Install Dependencies

Buat directory untuk menyimpan Vuls data, dan install latest version dari bahasa pemrograman Go, serta install beberapa package Vuls lain yang dibutuhkan.

Create Directory.

$ mkdir /usr/share/vuls-data

$ apt-get update -y

Install beberapa package.

$ sudo apt-get install sqlite git debian-goodies gcc make wget snapd -y

Install Go

Kami menggunakan snap package manager untuk menginstall Go.

$ snap install go --classic

Create go-env.sh

$ nano /etc/profile.d/go-env.sh

Pastekan script di bawah ini.

export GOPATH=$HOME/go 

export PATH=$PATH:$GOPATH/bin:/snap/bin

Buat file go-env.sh menjadi executeable.

$ sudo chmod +x /etc/profile.d/go-env.sh

$ source /etc/profile.d/go-env.sh

Baca juga: Cara Install Ajenti Control Panel di CentOS 7

Install & Running go-cve-dictionary

Download dan compile go-cve-dictionary, sebuah Go package yang menyediakan akses ke National Vulnerability Database (NVD). Kemudian, kamu akan menjalankannya untuk mengambil vulnerability data yang dapat digunakan Vuls. 

Install go-cve-dictionary dengan cloning Go package dari GitHub.

$ mkdir -p $GOPATH/src/github.com/vulsio

$ cd $GOPATH/src/github.com/vulsio

$ git clone https://github.com/vulsio/go-cve-dictionary.git

$ cd go-cve-dictionary

Compile dan install.

$ make install

Tunggu beberapa saat sampai prosesnya selesai.

Untuk membuatnya tersedia di seluruh sistem, copy ke /usr/local/bin

$ sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

Buat log directory untuk vuls.

$ mkdir /var/log/vuls

Ubah permission pada log directory.

$ chmod 700 /var/log/vuls

Fetch vulnerability data dari NVD dan simpan pada Vuls workspace yang ada di path /usr/share/vuls-data/.

$ go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3

Perlu waktu untuk melakukan proses fetching, dan kemungkinan gagal jika server kamu memiliki RAM kurang dari 2GB.

Output:

INFO[03-16|06:41:28] Refreshed 15473 CVEs. 

INFO[03-16|06:41:28] Fetching CVE information from NVD(2020). 

INFO[03-16|06:41:28] Fetching... https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2020.json.gz 

INFO[03-16|06:41:38] Inserting fetched CVEs(2020)... 

18457 / 18457 [--------------------------------------------------------------------] 100.00% 970 p/s

INFO[03-16|06:41:57] Refreshed 18457 CVEs. 

INFO[03-16|06:41:57] Fetching CVE information from NVD(2021). 

INFO[03-16|06:41:57] Fetching... https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2021.json.gz 

INFO[03-16|06:42:10] Inserting fetched CVEs(2021)... 
20872 / 20872 [--------------------------------------------------------------------] 100.00% 912 p/s

INFO[03-16|06:42:34] Refreshed 20872 CVEs. 

INFO[03-16|06:42:34] Fetching CVE information from NVD(2022). 

INFO[03-16|06:42:34] Fetching... https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2022.json.gz 

INFO[03-16|06:42:45] Inserting fetched CVEs(2022)... 

21914 / 21914 [-------------------------------------------------------------------] 100.00% 1082 p/s

INFO[03-16|06:43:06] Refreshed 21914 CVEs. 

INFO[03-16|06:43:06] Fetching CVE information from NVD(2023). 

INFO[03-16|06:43:06] Fetching... https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2023.json.gz 

INFO[03-16|06:43:08] Inserting fetched CVEs(2023)... 

2748 / 2748 [---------------------------------------------------------------------] 100.00% 1449 p/s

INFO[03-16|06:43:11] Refreshed 2748 CVEs. 

INFO[03-16|06:43:12] Finished fetching NVD.

Download & Configuring Vuls

Download dan compile Vuls dari source code. Kamu juga perlu konfigurasi pada server.

Create directory baru.

$ mkdir -p $GOPATH/src/github.com/future-architect

$ cd $GOPATH/src/github.com/future-architect

Clone Vuls dari GitHub Repository.

$ git clone https://github.com/future-architect/vuls.git

$ cd vuls

Compile & Install.

$ make install

Tunggu beberapa saat sampai prosesnya selesai.

Untuk membuatnya tersedia di seluruh sistem, copy ke /usr/local/bin

$ sudo cp $GOPATH/bin/vuls /usr/local/bin

$ cd /usr/share/vuls-data

Vuls menyimpan konfigurasi dengan file TOML, kamu bisa cek pada config.toml.

$ nano config.toml

Pastekan script di bawah ini.

[cveDict]

type = "sqlite3"

SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]

type = "sqlite3"

SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[gost]

type = "sqlite3"

SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[servers]

[servers.localhost]

host = "localhost"

port = "local"

scanMode = [ "fast" ]

#scanMode = ["fast", "fast-root", "deep", "offline"]

Save dan exit.

Vuls memiliki 4 scan mode:

  1. Fast Mode: Mode default, melakukan scan tanpa perlu root privileges, tidak memiliki dependencies dan sangat ringan di target server.
  2. Fast Root Mode: Melakukan scan dengan root privileges dan dapat mendeteksi proses yang ditingkatkan tetapi belum dilakukan proses ulang.
  3. Deep Scan Mode: Melakukan scan sama dengan Fast Root Mode tetapi melakukan pengecekan pada changelogs, yang dapat menyebabkan high load pada target server.
  4. Offline Mode: Melakukan scan pada machine tanpa akses internet dan dapat digunakan bersamaan dengan mode lainnya.

Test konfigurasi file:

$ vuls configtest

Output:

[Mar 17 03:12:32]  INFO [localhost] vuls-v0.22.1-build-20230316_065022_984debe

[Mar 17 03:12:32]  INFO [localhost] Validating config...

[Mar 17 03:12:32]  INFO [localhost] Detecting Server/Container OS... 

[Mar 17 03:12:32]  INFO [localhost] Detecting OS of servers... 

[Mar 17 03:12:32]  INFO [localhost] (1/1) Detected: localhost: ubuntu 22.04

[Mar 17 03:12:32]  INFO [localhost] Detecting OS of containers... 

[Mar 17 03:12:32]  INFO [localhost] Checking Scan Modes...

[Mar 17 03:12:32]  INFO [localhost] Checking dependencies...

[Mar 17 03:12:32]  INFO [localhost] Dependencies... Pass

[Mar 17 03:12:32]  INFO [localhost] Checking sudo settings...

[Mar 17 03:12:32]  INFO [localhost] sudo ... No need

[Mar 17 03:12:32]  INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode

[Mar 17 03:12:32]  INFO [localhost] Scannable servers are below...
localhost 

Artinya, konfigurasinya valid dan Vuls dapat digunakan.

Baca juga: Cara Install phpMyAdmin Dengan Nginx di CentOS 7

Run Local Scan

Pada section ini, kamu bisa melakukan local scan dan akan melakukan generate vulnerability report. Karena pada konfigurasi di atas menggunakan Fast Mode, maka proses scan yang akan dilakukan di bawah ini ada Fast Mode. Kamu juga bisa ubah mode nya sesuai dengan kebutuhan kamu.

Lakukan Scan:

$ vuls scan

Output:

[Mar 17 03:16:51]  INFO [localhost] vuls-v0.22.1-build-20230316_065022_984debe

[Mar 17 03:16:51]  INFO [localhost] Start scanning

[Mar 17 03:16:51]  INFO [localhost] config: /usr/share/vuls-data/config.toml

[Mar 17 03:16:51]  INFO [localhost] Validating config...

[Mar 17 03:16:51]  INFO [localhost] Detecting Server/Container OS... 

[Mar 17 03:16:51]  INFO [localhost] Detecting OS of servers... 

[Mar 17 03:16:51]  INFO [localhost] (1/1) Detected: localhost: ubuntu 22.04

[Mar 17 03:16:51]  INFO [localhost] Detecting OS of containers... 

[Mar 17 03:16:51]  INFO [localhost] Checking Scan Modes... 

[Mar 17 03:16:51]  INFO [localhost] Detecting Platforms... 

[Mar 17 03:16:53]  INFO [localhost] (1/1) localhost is running on other

[Mar 17 03:16:53]  INFO [localhost] Scanning OS pkg in fast mode
[Mar 17 03:16:53]  INFO [localhost] Scanning listen port...

[Mar 17 03:16:53]  INFO [localhost] Using Port Scanner: Vuls built-in Scanner
Scan Summary

================

[Reboot Required] localhost ubuntu22.04 679 installed

To view the detail, vuls tui is useful.

To send a report, run vuls report -h.

Vuls memiliki log mengenai apa yang sudah diproses, untuk melihatnya, kamu bisa gunakan perintah di bawah ini:
$ vuls tui

Jika di server memiliki banyak bug, maka akan terlihat mengenai vulnerabilitynya. Namun jika di log tidak terlihat hal tersebut, maka server kamu aman.

cara menggunakan vuls

Tampilan di atas tidak terlihat found vulnerabilities nya, artinya server aman dan tidak memiliki bug sama sekali.

Kesimpulan

Dengan menggunakan Vuls sebagai Vulnerability Scanner, maka kamu tidak perlu khawatir dengan keadaan server.

Jika kamu mengikuti artikel ini dari awal sampai akhir, artinya kamu sudah berhasil Menggunakan Vuls sebagai Vulnerability Scanner di Ubuntu 22.04.

Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin Anda baca di blog Dewaweb. Semoga artikel ini membantu.