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:
- Memiliki VPS yang aktif dengan OS Ubuntu 22.04.
- VPS dengan RAM 4 GB & 4 CPU Core.
- 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:
- Fast Mode: Mode default, melakukan scan tanpa perlu root privileges, tidak memiliki dependencies dan sangat ringan di target server.
- Fast Root Mode: Melakukan scan dengan root privileges dan dapat mendeteksi proses yang ditingkatkan tetapi belum dilakukan proses ulang.
- Deep Scan Mode: Melakukan scan sama dengan Fast Root Mode tetapi melakukan pengecekan pada changelogs, yang dapat menyebabkan high load pada target server.
- 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.
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.