Board logo

主題: [轉貼]Nessus 3.0 簡介 [打印本頁]

發表人: yjmg    時間: 2007-5-10 11:05 PM     主題: [轉貼]Nessus 3.0 簡介

Nessus 3.0 簡介
http://www.cert.org.tw/document/column/show.php?key=103
--------------------------------------------------------------------------------

前言:弱點檢測概述

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

一、有名的弱點檢測工具:Nessus

  而弱點檢測工具大致上可以依掃描的對象與方式分為主機型與網路型,主機型的檢測
工具可以找出系統上不安全的檔案權限設定、尚未更新的安全弱點,以及偵測系統有無被
安裝後門與木馬程式等等。網路型的檢測工具則能與連上網路的主機與設備連線,找出這
些機器上所開放的服務及其服務的相關弱點,也可進行大範圍網段的檢測。而今天要介紹
的 Nessus 是屬於網路型的弱點檢測工具。

  Nessus是一套非常簡單易用且功能強大的檢測工具,在 Nessus 2.x 版及其以前的版
本都是開放原始碼,而目前 3 版之後的版本則已經是不再開放原始碼。我們可以先列舉
Nessus 的幾個主要特色來概述:

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

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

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

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

二、Nessus 2 版與 3 版的差異

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

三、Nessus 3 的安裝與使用

  安裝 Nessus 3 是非常容易的事情,大概只要幾行的指令就能安裝完成,現在 Nessus
3 可運行的作業系統有 Red Hat ES3 ES4、Fedora Core 1,3,4,5、SUSE 9.3,10、Debian
3.1、Freebsd 5.4,6.0、Solaris 9,10、Mac OS X,甚至 Windows 上也有測試版本了。
在安裝方面,首先從 http://www.nessus.org/download/ 選擇適合的作業系統版本的
Nessus 下載,這裡我們以 Freebsd 5.4 為例子,下載完檔案後,以 root 身分登入執行
下列指令「pkg_add Nessus-3.0.3-fbsd5.tbz」就能完成安裝:

  Freebsd 會將 Nessus 安裝至「/usr/local/nessus」下的目錄,注意若是安裝在其
他作業系統上可能會有不一樣的安裝路徑。此目錄下就包含了所有 Nessus Server 的檔
案如執行檔、設定檔、plugins等等。

  安裝完成後,我們必須先做一些 Nessus 的初始設定才能供 Client 連線,首先我們
要先初始新增一個 Nessus 的使用者,之後才能用這個使用者登入開始掃描。鍵入指令
「/usr/local/nessus/sbin/nessus-add-first-user」:

  其中要注意的是設定 User 的 rules,設置 rules 的意義是可以規範這個使用者的
權限,可允許或拒絕這個使用者所要求掃描的 IP 網段等等,設定方式例如輸入「accept
IP」表示可允許掃描的 IP,「deny IP」表示無法掃描的 IP,「default accept」及
「default deny」表示不在設定檔裡的 IP 分別是允許或拒絕。我們在此沒有設定任何
rules 表示此使用者沒有任何的限制。

  再來我們要設定 Nessus 的認證,因為 Nessus 掃描完後的弱點報表資訊是相當重要
的,如果被別人竊取反而變成攻擊者的入侵教科書。所以 Nessus Server 和 Client 的
傳輸是經過加密認證來傳送這些弱點資訊,所以我們必須在 Nessus 的 Server 上設定產
生認證,鍵入「/usr/local/nessus/sbin/nessus-mkcert」指令,一般來說都按照預設值
就可完成設定,設定完後可以看到其相關認證檔案所擺放的位址。接下來我們可以鍵入
「/usr/local/nessus/sbin/nessusd –D」的指令來啟動剛剛安裝好的 Nessus server,
等待所有的 plugins 都載入後就已經完成啟動了 Nessus。

  再來我們就可以用 Client 端軟體與 Nessus 連線來掃描了,同樣在到下面網址裡下
載到 Nessus for Client 的軟體 ( http://www.nessus.org/download/ ),在 Windows
下我們使用名稱為 NessusWX 的 Client 程式來當作我們 Client 端的連線工具,下載解
壓縮後執行「NessusWX.exe」,就會出現視窗化操作介面,我們點選「Communications」
標籤裡的「Connect…」選項,設定我們欲連線的 Nessus Server 的 IP 位址與剛剛建立
的使用者帳號與密碼。

  按下連線按鈕後,Server 就會傳送一個憑證要求 Client 接受,接受後我們可以看
到 Client 已經開始接受 Server 傳送的必要資訊。與 Server 連線完成後下方視窗則會
顯示目前載入了多少隻的 plugins 可供掃描檢測,而從 NessusWX 的「Communications」
標籤裡下的「Plugin list」選項我們可以看到剛剛 Server 所送來的一些 plugins 的靜
態資訊。

  接下來我們可以來做一些掃描的相關設定,從 NessusWX 的「Session」標籤裡的
「New…」選項開啟一個新的 Session,接著點選 Session 右鍵裡的「Properties」就可
以設定這次掃描的選項,例如可以設定欲掃描主機的 IP 或一整個網段、掃描使用那些的
通訊埠、以及可以自定選擇那些 plugins 來掃描等等,在此我們以所有載入的 plugins
來掃描 Windows XP 主機來做個試驗,掃描參數都設定好後點選 Session 右鍵裡的
「Execute…」就可以開始進行弱點掃描檢測了,可以看到掃描正在進行以及掃描進度。

  以上大概就是簡單的安裝與使用 Nessus 的流程,更詳細的使用文件請參考 Nessus
的網址:http://www.nessus.org/documentation

四、掃描結果與報表

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

  從報表中我們可以很清楚地看出這些掃描的資訊與結果,包括了所檢測的主機 IP 與
主機上所開啟的通訊埠、掃描時間等,和這些安全風險的描述與相對應的解決方法。所以
藉由 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 的正確方法。




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0