本文將介紹一套在開源碼社群中頗富盛名的弱點掃描工具OpenVAS,可用來掃描主機系統,找出系統潛在的漏洞,讓管理者能夠儘早修補系統漏洞,進而降低主機系統被攻擊的機率。
在一般的認知中,利用防火牆、IDS(入侵偵測系統)等資安設備來防禦有心人士的惡意攻擊,似乎是做好資訊安全的不二法門。
但從另外一個角度思索,如果能在主機系統上的漏洞未被利用之前,管理者就能即時地檢查出漏洞並加以修補,相信對於降低主機系統的資安威脅將有極大的助益。
什麼是OpenVAS
說起開源碼社群中的弱點掃描軟體,相信有經驗的讀者,腦海浮現的應該是Nessus軟體。過去Nessus挾其免費及優異的特性,而成為開源碼社群中弱點掃描工具的首選。但好景不常,後來Nessus軟體因故轉變成商業軟體。也因此,而有了OpenVAS軟體的誕生,它採用GPL版權宣告,可視為Nessus在開源碼社群中的衍生,可用來取代Nessus軟體。OpenVAS全名是Open Vulnerability Assessment System,官方網址為「http://www.openvas.org/」。以下開始介紹OpenVAS軟體,先來說明OpenVAS的架構圖,如圖1所示。
|
▲圖1 OpenVAS架構示意圖。 |
基本上,OpenVAS將架構分成Server端(伺服器端主要用來執行掃描工作及儲存掃描紀錄之用)以及Client端(使用者端,主要提供給使用者操作),其中Client端提供以下兩種介面操作:
·openvas cli:此為文字介面的操作模式,使
用時必須以指令的方式下達O.M.P指令(全名為OpenVAS Management Protocol,在此使用的版本為6.0,詳細的內容可參考網址「http://www.openvas.org/omp-6-0.html」)至OpenVAS Manager(以下簡稱為O.M)。通常都是利用O.M.P指令來設定進行掃描工作時所需要的重要參數,例如被掃描主機的IP採用何種掃描模式進行掃描,在掃描完成後取得掃描結果等相關資訊。
· GSA:網頁介面的操作模式,提供一個獨立的網站
伺服器(microhttpd,預設服務埠為9392)給使用者設定O.M.P指令之用。
Client端程式的功能主要是設定O.M.P指令給位於Server端的服務來進行掃描,在簡單說明完Client端的程式後,接著說明在Server端運作的程式,如下所述:
· OpenVAS Manager(O.M):主要是用來接收
由Client端程式所設定的O.M.P指令以及管理掃描工作或掃描結果等資訊,並負責與OpenVAS Scanner以O.T.P(openvas-transfer-protocol)溝通。簡單來說,O.M在整個OpenVAS架構內即為管理中心的角色。關於openvas-transfer-protocol詳細的通訊協定,可參考網址「http://www.openvas.org/compendium/openvas-transfer-protocol.html」,此通訊協定通常是用來設定啟動或停止掃描作業等重要事項。
· OpenVAS Scanner(以下簡稱為O.S):實際對
掃描對象進行掃描,在收到啟動掃描的指令後,O.S即會根據nvts(OpenVAS的弱點資料庫)的資訊對目標主機進行掃描,在掃描完成後,就會產生相關的掃描報表。nvts採用NASL語言撰寫而成,詳細弱點資訊可參考網址「http://www.openvas.org/openvas-nvt-feed.html」的說明。
說明過OpenVAS整體的架構後,接下來將以原始碼編譯的方式安裝OpenVAS(所安裝的版本為8)。在本文中所使用的作業系統環境為CentOS 7,可至OpenVAS官方網站下載原始碼,原始碼說明如表1所示。
表1 相關原始碼說明
在安裝OpenVAS前,必須先安裝OpenVAS所需的套件,以下為相關重要的套件,但因個別環境不同,可能還必須安裝其他套件,按照訊息的指示安裝即可。接著,執行下列指令進行安裝(#之後為註解說明):
在完成安裝前置套件之後,繼續安裝OpenVAS的主程式。