iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
Security

一個人的藍隊系列 第 16

OpenVAS 開源弱點檢測平台架設與架構說明

  • 分享至 

  • xImage
  •  

OpenVAS 弱點掃描平台安裝與架構說明

亂入!挑戰者出現

我們今天要來架一台OpenVAS(Greenbone)弱點檢測平台
原因等明天文末就會知道了,總之我們來架設一下吧

雖然我通常一律推薦使用容器方式
但今天 OpenVAS 的架設我們會安裝在本機上
然後我在範例中安裝的又是另一台Kali Linux虛擬機上

安裝的指令流程如下

# 更新來源與安裝
sudo apt update
sudo apt install gvm

# 如果有跳出提示要你autoremove,就執行這行
sudo apt autoremove

# 設置gvm,會花費很久很久的時間,最後會顯示一段密碼 可以記下來
sudo gvm-setup

# 確認一下安裝有沒有問題
sudo gvm-check-setup

# 更新feed (這個亦可省略)
sudo gvm-feed-update

# reload
sudo systemctl daemon-reload

# 啟動
sudo gvm-start

# --- 到這邊應該是可以正常啟動服務使用 ---
# 以下是補充的指令

# 如果需要更新密碼
sudo gvmd --user=admin --new-password=password

# 要創帳號或更新密碼也可以用
sudo runuser -u _gvm -- gvmd --user=username --new-password=password
sudo -E -u _gvm -g _gvm gvmd --user=username --new-password=password

# 更新資料庫 (會跑很久)
sudo gvm-stop
sudo runuser -u _gvm -- greenbone-nvt-sync --rsync
sudo runuser -u _gvm -- greenbone-scapdata-sync --rsync
sudo runuser -u _gvm -- greenbone-certdata-sync --rsync
sudo systemctl daemon-reload && sudo gvm-start

https://ithelp.ithome.com.tw/upload/images/20231001/20114110BKKRTtDRSY.png

https://ithelp.ithome.com.tw/upload/images/20231001/2011411036ZfSJZiNM.png

https://ithelp.ithome.com.tw/upload/images/20231001/20114110El5lwP5e9t.png

https://ithelp.ithome.com.tw/upload/images/20231001/20114110YPvw2M36sy.png

[*] User created with password '7e3e3e16-193f-41d1-bbca-6890476d1334'.

訪問
https://127.0.0.1:9392
用admin跟密碼登入即可

https://ithelp.ithome.com.tw/upload/images/20231001/20114110m4nQWXcJdR.png

如果在網路上找到一些資訊跟指令發現沒有作用
然後指令是跟 openvas 相關,或是文章比較舊的
很可能是因為 OpenVAS 改名的緣故
他產品從原本的 OpenVAS 改名成 Greenbone Vulnerability Management(GVM)
原本一些指令幾乎都改了
像是原本使用 openvas setup,現在要使用 gvm-setup

一些問題排除

如何更改監聽的 IP

如果有遇到監聽 IP 問題
需要更改監聽的 IP

#要修改此檔案
/usr/lib/systemd/system/gsad.service

#指定如下
sudo sed -e 's/127.0.0.1/0.0.0.0/g' /usr/lib/systemd/system/gsad.service -i

sudo systemctl daemon-reload && sudo gvm-start

安裝遇到Postgresql問題

# 查看一下目前系統上用哪些版本
sudo pg_lsclusters

# 把不需要的停用,假設我只需要16
sudo pg_dropcluster 14 main --stop
sudo pg_dropcluster 15 main --stop

# 暫停服務
sudo service postgresql stop

# 去修改 postgresql 監聽的 port 為 5432
vim /etc/postgresql/16/main/postgresql.conf

# 重啟
sudo systemctl restart postgresql

https://ithelp.ithome.com.tw/upload/images/20231001/20114110O8HBexwH9p.png

https://ithelp.ithome.com.tw/upload/images/20231001/20114110pQ0ix1Suru.png

https://ithelp.ithome.com.tw/upload/images/20231001/20114110cCOEMtHVm5.png

架構說明

https://ithelp.ithome.com.tw/upload/images/20231001/20114110TsLKTJyL69.png

我們來介紹一下Greenbone的架構
這張圖是 20.08 與 21.04 的
但 22.04 其實差不多也是一樣的架構
會選用這張圖是看起來比較完整的

Greenbone Vulnerability Manager Daemon(gvmd)

我們從最中間開始看,因為他算是核心組件,整個架構當中的總指揮官。中間的 Greenbone Vulnerability Manager Daemon(gvmd)是一個中央的服務,負責將漏洞掃描的結果整合到漏洞管理平台當中。同時 gvmd 透過 OSP 協定控制 OpenVAS Scanner。

gvmd 服務本身有基於 XML 的無狀態協定 GMP,這個算是很重要的一個地方,後續會提到原因。然後 gvmd 也負責管控資料庫(安裝過程當中也會安裝PostgreSQL),各項的設定資訊與掃描結果也會被儲存在這個資料庫。使用者的權限,群組與角色的權限控管也由 gvmd 管理。

Greenbone Security Assistant (GSA)

接著右側的 GSA,其實就是我們看到的管理介面,我們可以透過瀏覽器來查看的 WEB 介面。算是一般使用者與該架構主要的溝通操作管道。我們在 GSA 進行的操作,GSA 會透過 GMP 協定來與 gvmd 溝通。

OpenVAS Scanner

接著我們來談 OpenVAS Scanner,廣義上的 OpenVAS Scanner 是整組掃描引擎跟資料庫,包含了 ospd-openvas 以及 openvas-scanner(這邊用小寫加上dash來稍微區分),也就是圖中兩個淺綠色的圓圈,還有其他 VTs、SCAP、CERT 整組都算。狹義上的話也可以單指 openvas-scanner,僅負責執行檢測的掃描器。

在 Greenbone 架構中,OpenVAS Scanner 才是負責對於目標系統進行弱點掃描(VT)的部分,可以說是掃描動作的核心。OpenVAS Scanner 會透過與漏洞資料庫的數據去識別目標系統當中的已知弱點,並產生相關的結果。

OpenVAS Scanner 當中的 ospd-openvas 是一個實作 OSP(Open Scanner Protocol)協定的伺服器,OSP 也是基於 XML 的協定。gvmd 和 ospd-openvas 和 openvas-scanner 之間也是透過 OSP 來通訊。gvmd 會透過 OSP 協定來控制 ospd-openvas。包含控制掃描器的啟動、停止和結束,以及ospd-openvas 將掃描結果傳輸到 gvmd。

最主要的就上面提及的幾個部分,然後其他有其他地方要補充。
第一個是架構圖的左上方,有個黑色圓圈的 OSP Scanner,
這個是使用者可以自行開發外部的掃描引擎,使用 OSP 協定與 gmvd 串接,
以下的 Github 有 OSP 框架範例,但目前已經停止維護,我也不知道這個功能現在是否還能使用。
https://github.com/greenbone/ospd-example-scanner

右上方的就是我們的瀏覽器,沒甚麼特別好多說的,
也就是說我們可以透過瀏覽器訪問 GSA 而已,算是一般使用者正常操作流程。

中間上方的是 GMP Client,剛剛有提到其實可以透過 GMP 協定與 gvmd 溝通,
還有特別說這個很重要,為什麼呢?
因為在瀏覽器上執行操作其實是效率還是偏低的,
如果今天工具或平台沒有提供 CLI 或是 API 的方式控制,
這樣我們很難去做到一個自動化。

但 Greenbone 還不錯,
這邊 Clinet 跟 Server 之間其實可透過 CLI 的方式利用 GMP 控制 gvmd,
這樣我們就可以寫腳本來去進行操作,其實會有效率很多。
Greenvbone 官方其實就有提供了 gvm-tools 來幫助我們進行遠端控制 gvmd,
也有提供許多自動化的腳本參考。
腳本是使用 python 所撰寫,方便使用者去修改。
但底層其實就是 GMP(和連接後端的 OSP 協定),
所以如果知道協定格式,不管要用甚麼語言去撰寫程式和腳本都可以。

再來是這張圖沒有的東西XD

https://ithelp.ithome.com.tw/upload/images/20231001/20114110096IXPRE9Y.jpg

叫 Notus Scanner,位置會在 ospd-openvas 之後,不直接與 openvas-scanner,但會使用到 openvas-scanner 掃描的結果資料。Notus Scanner 是一個全新的掃描引擎,於2021發布,這邊附上介紹的文章
https://www.greenbone.net/en/blog/new-vulnerability-scanner-notus/

大概看了一下,我的白話解釋:
邏輯上是說,因為弱點掃描許多是基於版本的偵測,所以在 OpenVAS Scanner 在常規的掃描完成之後,會於伺服器的本地執行 Notus Scanner 去進行版本與弱點的比對。這樣的方式可以加快整個弱點掃描過程的速度。

接著是左下角的,很深的坑(?)
反正就是三個東西弱點掃描需要用的資料庫
這些東西要持續更新才可以,不然你掃不到最新的弱點

  • VTs 是 Vulnerability Tests (VTs),也就是 Network Vulnerability Tests (NVTs)。是用 NASL 程式語言編寫的腳本,用來檢測遠端主機上的漏洞。
  • SCAP 是 Security Content Automation Protocol 的縮寫。是來自於 Greenbone Enterprise 和社群來源提供 CPE 和 CVE 資料。
  • CERT 這個我原本以為是憑證之類的,後來才發現他 CERT 應該是 Computer Emergency Response Team 的縮寫。所以應該也是同步漏洞相關的資訊。
    其實安裝完資料都會存在本地的資料庫,有想了解更多也是可以連接進去一探究竟。

最左側 Target Systems 就是我們要去檢測的主機啦!今天只安裝跟介紹一下架構,明天會進行操作的設定,然後對我們的 Wazuh Sever 主機進行檢測。

心聲備註:
連假要結束了,但我的連假都奉獻給資安了
今年沒吃烤肉,希望明年可以把今年烤肉的份吃回來 QQ


上一篇
第15天才寫目錄是不是搞錯了甚麼。還有 Anti-flooding mechanism 防止洪水機制
下一篇
OpenVAS 弱點掃描設定與檢測執行
系列文
一個人的藍隊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言