https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

Nessus 3.0簡介

2009 / 09 / 07
李常友
Nessus 3.0簡介
讓我們能快速地反應與避免弱點所帶來的風險,這就是所謂弱點檢測。

  隨著電子化時代來臨,不管是在日常生活或工作上,電腦與網路都已變成人們及企業賴以為生的工具,各式各樣的軟體應用程式、硬體設備、網路頻寬都因需求而蓬勃發展,不過為求便利而大量使用電腦及網路的情況下,相對的許多弱點(Vulnerability)也相依而生。

  弱點指的是在軟體程式開發時一些有意或無意的程式誤,或系統管理者的一些不當安裝設定軟體的方式,使得攻擊者可以在有安裝這些軟體的機器上,利用這些尚未修補的錯誤來入侵,獲取到系統內的機密資訊或系統的操作權限。

何謂弱點檢測

  隨著電子化時代來臨,不管是在日常生活或工作上,電腦與網路都已變成人們及企業賴以為生的工具,各式各樣的軟體應用程式、硬體設備、網路頻寬都因需求而蓬勃發展,不過為求便利而大量使用電腦及網路的情況下,相對的許多弱點(Vulnerability)也相依而生。弱點指的是在軟體程式開發時一些有意或無意的程式設計錯誤,或系統管理者的一些不當安裝設定軟體的方式,使得攻擊者可以在有安裝這些軟體的機器上,利用這些尚未修補的錯誤來入侵,獲取到系統內的機密資訊或系統的操作權限。每套軟體或多或少都有弱點存在以及這些弱點被攻擊者拿來利用入侵的可能,尤其是當軟體越裝越多,系統服務開啟的越多,那麼被攻擊的可能性就越大,而系統管理者要發現及避免那麼多軟體及服務所帶來有形及無形的弱點實在不是那麼容易的事,所以若能透過一些自動化的檢測方式來檢測我們的系統,再來針對這些檢測報告提供相關的因應措施來修補系統上所發現的弱點,是比較正確與方便的管理方法,且讓我們快速地反應與避免弱點所帶來的風險。這就是所謂的弱點檢測(Vulnerability Assess)的概念。

有名的弱點檢測工具-Nessus

  而弱點檢測工具大致上可以依掃描的對象與方式分為主機型與網路型,主機型的檢測工具可以找出系統上不安全的檔案權限設定、尚未更新的安全弱點,以及偵測系統有無被安裝後門與木馬程式等等。網路型的檢測工具則能與連上網路的主機及設備連線,找出這些機器上所開放的服務及其服務的相關弱點,也可進行大範圍網段的檢測。而今天要介紹的Nessus是屬於網路型的弱點檢測工具。它是一套非常簡單易用且功能強大的檢測工具,目前是由TENABLE公司來維護及發展,在Nessus 2.x版及其以前的版本都是開放原始碼,第3版以後的版本則已經不再開放原始碼。我們可以先列舉Nessus的幾個主要特色來概述:

?Client-Server架構:Nessus採用Client-Server的架構來進行掃描檢測,也就是必須先架設好Nessus的掃描Server,再使用Client端的連線程式與Server做連線,再設定一些掃描的設定,如欲檢測的主機IP及欲檢測的項目等,待Server掃描完畢後會將掃描檢測的報表結果傳回給Client觀看。

?採用plug-in新增弱點測試項目:這些一隻隻所謂的plugins就是Nessus的掃描script,每隻plugin都有要檢測的目標弱點,它會告訴Nessus去檢測主機上的某個服務,去測試這個服務下plugin所要測試的弱點是否存在,可以說測試一隻plugin就代表測試一項弱點。而Nessus的plugins常常都在更新,官方每天都有新的plugins弱點檢測項目公布,Nessus Server可以直接使用網路來線上更新這些新的plugins,使得Nessus可以及時檢測出更新、更多的弱點,這也是Nessus功能強大的地方。

?呼叫外部程式以增強測試的能力:Nessus掃描時也會呼叫一些程式來額外增強檢測的能力,如呼叫Nmap來掃描、Hydra來測試系統上的脆弱密碼、Nikto來測試web程式的弱點等等。

弱點測試項目-Plugins:

  就像上述提到的,plugins是Nessus最重要的部分也是功能強大的原因,所以必要對plugins有進一步的認識。這種Nessus所用的弱點檢測項目主要是用NASL(Nessus Attack Scripting Language)語言所撰寫的,只有一小部分是以C來撰寫,所以我們可以在完成Nessus安裝的資料夾底下發現,很多副檔名是「.nasl」的plugins檔案。

Nessus 2版與3版的差異:

  本文雖然是以Nessus的第3版為主題,但其實就使用面來看,2版與3版的使用方式並無明顯不同,基本架構也一樣,不過plugins日益繁多的情況下,Nessus 2版解析nasl的引擎效能較為不好,導致掃描檢測的過程緩慢,而根據Nessus 官方宣稱在3版最大的改變,就是開發了新的處理nasl的引擎,不論在nasl的執行時間、掃描時間、同一時間下可掃描的主機數量、記憶體的耗用情形、系統的負載量都有很大的改善與進步,新版的nasl有更大的延伸性可以針對更多各種不同的安全漏洞做檢測,雖然3版以後已經不再開放原始碼,不過以往為人詬病的掃描速度已經增快很多,能夠更快速地獲得掃描結果報表是最大的優點。

掃描結果與報表

  等待掃描檢測完成後,NessusWX會列出所有曾經掃描過的紀錄,我們點選剛剛掃描的那一筆紀錄,按下右邊的「Report」鍵可以將這筆掃描紀錄整理存成報表供我們觀看,我們可以選擇要存成.txt、.html、或.pdf的檔案格式,在此我們選擇存成html格式再用瀏灠器開啟這份報表觀察。

  從報表中我們可以很清楚地看出這些掃描的資訊與結果,包括了所檢測的主機IP與主機上所開啟的通訊埠、掃描時間等,在此總共發現了5個高度風險與2個中度風險的弱點,和這些安全風險的描述與相對應的解決方法。所以藉由Nessus的檢測,我們可以很方便地檢測與管理我們的系統,從掃描的結果報表可以得知目前系統上存有什麼樣的弱點,我們及早修補這些安全漏洞,以降低被攻擊的可能。

定期更新Nessus Server的plugins:

  上述Nessus之所以強大的地方在於plugins幾乎是每天有新的公布出來,可以提供我們更快速地檢測與反應新的安全弱點。而安裝好的Nessus Server直接就能向Nessus網站做線上的更新,非常的方便。在更新之前我們必須先取得Nessus plugins的啟動碼,我們可以上http://www.nessus.org/plugins/index.php 註冊填入我們的E-mail信箱就會得到一組註冊的啟動碼,而依照信件裡的啟動碼與指令輸入後,就可以獲得我們plugins的更新權,而以後只要定期在安裝Nessus的主機上執行指令「Nessus安裝目錄/sbin/nessus-update-plugins」就能更新我們的plugins了。不過此註冊免費的更新版本是在最新plugins公布後七天才能提供我們更新使用,若真的要取得最新的plugins則需要花錢購買。

結論

  雖然使用Nessus的弱點檢測相當地方便,但在使用時有幾點必須好好注意,列出要點作為本文的結論:

?在未經由別人同意授權前而任意地掃描主機是違法的行為,所以在掃描前請先考量清楚掃描的對象。

?掃描檢測並非萬能,Nessus本身也會有誤判的情況發生,且在掃描後沒有發現弱點不代表系統就一定處在安全無慮的狀態下,或許可能是新的弱點尚未被發現。

?掃描本身就具有一定程度的危險性,不當的使用方式可能造成系統設備或服務的損毀與當機,所以在掃描之前重要的系統應先做好備份。

? 適當地選擇弱點檢測項目,不是使用所有的plugins掃描就好,因為使用不相關的plugins掃描只是白白浪費時間與系統資源,所以在掃描前要對本身的系統與plugins及相關的安全通報有一定程度的認知與了解,才是真正使用Nessus的正確方法。

本文由陳嘉玫、陳年興、鄭進興、 林宜隆老師共同審稿