本文將介紹一套在開源碼社群中頗富盛名的弱點掃描工具OpenVAS,可用來掃描主機系統,找出系統潛在的漏洞,讓管理者能夠儘早修補系統漏洞,進而降低主機系統被攻擊的機率。
筆者習慣將以原始碼編譯的套件安裝在某個目錄中,便於日後要移除此套件時,僅需將該目錄刪除即可,因此如下指令若有CMAKE_INSTALL_PREFIX參數,即表示將編譯完成的檔案安裝至該目錄:
安裝openvas-libraries-8.0.5
安裝openvas-scanner-5.0.4
安裝openvas-manager-6.0.6
安裝openvas-cli-1.4.3
完成安裝作業後,可參考表2的說明,其中介紹了OpenVAS所提供的主要執行程式。
表2 OpenVAS主要執行程式說明
編譯好OpenVAS相關程式之後,接下來要產生OpenVAS所需要的伺服器憑證。
執行openvas-mkcert後,系統會詢問憑證的有效期限、所在國家別等相關資訊(使用預設即可),最後就會產生相關伺服器憑證,如圖2所示。
|
▲圖2 產生相關伺服器憑證。 |
產生OpenVAS伺服器憑證後,再來就是要產生OpenVAS所需的使用者憑證。執行openvas-mkcert-client,就如同openvas-mkcert一樣,也會詢問憑
證的有效期限、所在國家別等資訊(使用預設即可)。
執行後,在「/tmp」目錄下就會多一個目錄名稱類似「openvas-mkcert-client.XXXX」的目錄,該目錄內就會有使用者憑證,檔名為「key_om.pem」和「cert_om.pem」,然後複製此兩檔案至以下的相對位置:
最後,將NVTS(弱點資料庫)更新到最新的狀態,執行如下指令:
更新完成後,即可啟動O.S伺服器,執行以下指令:
成功啟動後,如果第一次使用OpenVAS,必須使用openvasmd管理程式重新建立一個新的資料庫(使用SQLite資料庫,用來儲存弱點資料庫或掃描結果等資訊),因此接著使用如下的指令:
如果順利執行成功,就會產生一個檔案型的資料庫,此檔案會位於「/usr/local/openvas/var/lib/openvas/mgr/tasks.db」。在tasks.db內就會以資料庫的方式儲存OpenVAS相關資料,例如NVTS(弱點資料庫)存放在名稱為「nvts」的資料庫表格(Table)。如果想要查詢NVTS的資訊,可用如下指令查詢(本例為查詢NVTS的個數,如圖3所示個數為43955):
|
▲圖3 查詢NVTS的個數。 |
最後,利用openvasmd產生一組連接掃描伺服器所要使用的帳號及密碼,如圖4所示,這裡產生一組名稱為「test」的帳號,執行成功後會預設一組密碼:
|
▲ 圖4 利用openvasmd產生一組連接掃描伺服器所要使用的帳號及密碼。 |
到這裡已成功建立OpenVAS的執行環境,接著說明如何使用OpenVAS來執行掃描作業。
使用OpenVAS
為了讓大家能夠更了解OpenVAS的運作方式,在本文中,筆者將使用文字介面的操作程式omp來實際說明如何執行一個掃描作業。
首先,說明在OpenVAS架構中所定義的名詞:
·targetid:OpenVAS針對每個主機都會給予一個獨一無二的編號,而不是以IP或主機名稱來識別。一個targetid未必只能對應一台主機,可設定對應多台主機。
·taskid:OpenVAS將每個掃描工作均視為一個工作(Task)並給予獨一無二的編號。
·reportid:在掃描完成後,OpenVAS會產生相關的報表,並給予唯一的編號。
·formatid:OpenVAS提供了多種的報表格式(例如HTML、XML、PDF等),並針對每種報表格式給予一個唯一的編號。