2022年6月3日 星期五

RockyLinux8上安裝openVAS(GVM)弱點掃描管理平台



知名的開源弱點掃描工具openVAS於2020年8月正式更名為GVM(Greenbone Vulnerability Manager),並採用基於日期的版本號方式發布,比如2020年八月發布的版本即為v20.08,也是從這個版本開始支援CentOS8、RockyLinux8、Fedora33、Fedora34等較為先進的作業系統,建議不要再安裝舊版的openVAS或是以較舊版本的Linux作業系統來安裝GVM,否則容易發生安裝相容性問題,並且舊版openVAS的NVT檔案(Network Vulnerability Tests)載點也已被廢除,請直接安裝新版本的GVM。

GVM以圖形化的webGUI介面提供IT管理員操作,支援多群組多角色帳號的會員權限控管與報表手動下載或自動寄件,主要服務有ospd-openvas(控制scan模塊)、gvmd(漏洞管理主要程序)和gasd(Greenbone Security Assistant、提供圖形化的web管理頁面)。

一般來說公司的IT業務若不是太龐大或是不足以引人遐想的話,只要權限控管設計得當,是不太容易遭受到惡意攻擊或入侵的,但如果你所處的環境危機四伏,便可以考慮類似openVAS這樣的免費開源弱點掃描工具來驗證IT服務主機的健全狀況,甚至也能透過付費方案取得Greenbone Enterprise Feed。



測試環境介紹


硬體規格:2cores/4GB/HDD100GB
作業系統:RockyLinux8.5 x64
主機ip:192.168.88.35
GVM版本:21.4.0



作業系統環境設定


設定時區、禁用selinux並對防火牆開放稍後要使用的webGUI port號
[root@openvas ~]# timedatectl set-timezone Asia/Taipei
[root@openvas ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@openvas ~]# firewall-cmd --permanent --zone=public --add-service=https
[root@openvas ~]# firewall-cmd --permanent --zone=public --add-service=http
[root@openvas ~]# reboot


相關套件安裝


無腦安裝吧!
[root@openvas ~]# dnf -y install epel-release
[root@openvas ~]# dnf -y install net-tools langpacks-en glibc-all-langpacks
[root@openvas ~]# dnf config-manager --set-enabled powertools
[root@openvas ~]# dnf -y install gnutls-utils libX11 libX11-common libXpm \
                           libjpeg libtiff net-snmp-utils nmap \
                           postgresql postgresql-server postgresql-contrib \
                           socat tcl teckit texlive


openVAS安裝


初始化資料庫,下載NVT、CERT和SCAP等資料,會花上一些時間下載
[root@openvas ~]# wget -q -O - http://www.atomicorp.com/installers/atomic |sh
...
Do you agree to these terms? (yes/no) [Default: yes]
Enable repo by default? (yes/no) [Default: yes]

[root@openvas ~]# dnf install gvm
[root@openvas ~]# gvm-setup
...
......
Updating OpenVAS Manager certificates: Complete

GVMD startup: Done

Set the GSAD admin users password.
The admin user is used to configure accounts,
Update NVT's manually, and manage roles.

Enter Administrator Password:
Verify Administrator Password:

Created symlink /etc/systemd/system/multi-user.target.wants/ospd-openvas.service → /usr/lib/systemd/system/ospd-openvas.service.
Created symlink /etc/systemd/system/openvas-manager.service → /usr/lib/systemd/system/gvmd.service.
Created symlink /etc/systemd/system/multi-user.target.wants/gvmd.service → /usr/lib/systemd/system/gvmd.service.
Created symlink /etc/systemd/system/greenbone-security-assistant.service → /usr/lib/systemd/system/gsad.service.
Created symlink /etc/systemd/system/multi-user.target.wants/gsad.service → /usr/lib/systemd/system/gsad.service.
success
success


#####################################
Setup complete
  Log in to GSAD at https://localhost
#####################################


透過webGUI操作openVAS


雖然系統提示前往localhost,但目前我們的本機ip為192.168.88.35,故請於區網內任一台電腦瀏覽器中輸入https://ip 前往openVAS,另外由於現在沒有安裝憑證,請直接按右下角參訪此網站

帳號為admin,密碼是gvm-setup時所設定的密碼

登入首頁如下,可以概覽跑過的任務狀況、目前NVT數量等資訊

先設置admin帳號的預設環境參數



設置要被掃瞄的主機或主機群組(可以逗號分隔ip),All TCP and Nmap top100 UDP的意思是掃瞄目標主機的所有TCP port與Nmap常見的前100名UDP port,你可以視情況調整


接下來要創建掃描任務,從中引入要被掃描的主機或主機群組,其中Qod是指掃描的準確率,Scan Config設置為Full and fast是比較中性的配置,也可改為較寬鬆或較嚴格的配置


掃描任務創建完畢後,按下play鍵進行掃描,這裡會花上數十分鐘的時間


當Status顯示為Done時,選取對應任務的Last Report觀看掃描報告結果

簡略的導覽一下,可以看到此任務所掃描的三台主機相關資訊,比如作業系統、可連線port號與該主機的資安漏洞嚴重程度

這邊可以看到比如顯示紅色的High級別漏洞是名為「Report default community names of the SNMP Agent

點進去這個漏洞看看,openVAS很貼心的說明狀況並於最下方提出了Solution,協助IT管理員進行改善,大致的意思就是請把snmp agent預設的communtiy name「public」給改掉啦~

CVEs欄位也能看到與你主機漏洞相關的CVE事件

最後可以在上方icon處點擊下載成文件報告,以便彙整提交給長官或相關人員參閱,支援的格式有txt、xml、pfd等任君選擇。



以下擷取pdf格式的部分報告內容:



crontab自動更新NVT、CERT和SCAP資料


建立一個nvt、scap與cert資料更新的script,注意此更新必須以非root權限進行
[root@openvas ~]# cat <<EOF | sudo tee /usr/local/bin/update-gvm
su gvm -c "greenbone-nvt-sync"
su gvm -c "greenbone-scapdata-sync"
su gvm -c "greenbone-certdata-sync"
EOF
[root@openvas ~]# chmod a+x /usr/local/bin/update-gvm
將該script放入crontab中,每日半夜執行
[root@openvas ~]# crontab -e
10 3 * * * /usr/local/bin/update-gvm 1>/dev/null 2>/dev/null
可以看到原本資料的版本狀態與更新日期

無需重啟服務,在執行update-gvm後,後台會自動更新資料。





Latest
Next Post

0 comments: