2012年9月1日 星期六

入侵偵測 - SNORT

入侵偵測 - SNORT

△注意:本文是配合 Ubuntu Server 12.04 LTS 安裝

在善良的網路環境之中,所有網路的通訊都是按照規矩來的,所以大家上網的上網( http or https ),下載的載( http or ftp ),打 bbs 的打 bbs ( telnet or ssh )等,這些都是正常的網路行為,讓使用者經過網路完成工作或得到需要的資訊。可惜的是,網路的行為不只是這樣單純,除了人為惡意的攻擊,還可能是病毒、蠕蟲等惡意程式侵擾,他們會利用系統的弱點進行擴張版圖的大業,這些潛藏於網路中的惡意行為,透過入侵偵測(Intrusion Detection System, IDS )的架設,可以協助我們在環境中發現可能的問題點(也可能是誤報),進而先行處理,以免損害擴大。

我們這次要介紹的入侵偵測,是免費的 snort,架設 snort 伺服器之前要先規劃網路的架構,一般我們會把 NIDS ( Network IDS )伺服器放在外網( WAN )連到內網( LAN )的這一段中間,如此一來,所以外對內的流量都會經過 IDS 檢視,並依 rules 提報出可能的問題點。


▲  圖一、常見使用snort (IDS)網路拓樸圖。

網路規劃好了,也把伺服器安裝到位,再來就是安裝snort,安裝的動作很簡單,只要下指令:

●  sudo apt-get install snort -y

雖然安裝的過程中會提示需要監控的網段,但是這個版本存入設定有時會怪怪的,我們再檢查一下設定檔,檢示修改 HOME_NET 由 any (使用 HOME_NET=any 在某些 snort 的 rules 中會造成錯誤),改為內網網段或是我們需要監看的網段,編修snort設定檔的指令如下所示:

●  sudo vi /etc/snort/snort.conf


▲  圖二、修改snort設定中的HOME_NET。

有人說 snort 的精華就在於它的 rules,有了 rules 後,snort 在檢視網路的封包時,才知道那些是可能有問題的封包,snort 官網提供付費者/與註冊使用者兩種身份,可以由網站中下載 rules,兩者的差別在於,新的 rules 出來付費者可以馬上使用,而註冊使用者則要等一個月後才可以使用。Ubuntu 安裝 snort 後已有 2012/2 月的 rules,為了未來的更新,我們可以自行申請 snort 使用者(會員),並取得 oinkcode,再透過由網站上得知目前的版本,以手動方式進行 rules 更新。


▲  圖三、snort 官網中,下載 rules 部份,有 Get an Oinkcode 與目前 rules 版本的資訊。


▲  圖四、Get an oinkcode 後,可由郵件得到 oinkcode 資訊與下載路徑

設定 oinkmaster.conf,輸入自己的code與目前的版本(由圖三看到現最新是2922),以進行更新,官網建議使用PulledPork工具,但在它預設的檔案路徑和 Red Hat 類的 Linux 比較合,在 Ubuntu 下要改比較的多路徑設定,我們暫時先勤能補拙的手動修改,修改指令如下:

●sudo vi /etc/oinkmaster.conf,修改設定檔,主要就是加入url = http://www.snort.org/pub-bin/oinkmaster.cgi/*您的oinkcode*/snortrules-snapshot-目前可用最新版本.tar.gz

●sudo oinkmaster -o /etc/snort/rules/,設定好更新參數後,透過 oinkmaster 指令進行 rules 的更新。


▲  圖五、設定 oinkmaser.conf。


▲  圖六、oinkmaster 更新後新增修改 rules 資料的示意圖。

看來更新一切就緒,使用 snort 來測試新的rules有沒有問題,指令如下:

●sudo snort -T -c /etc/snort/snort.conf


▲  圖七、新的rules在運行時出現問題。

測試中出現有 rules 要使用 FILE_DATA_PORTS 參數,但是找不到,所以我們拜請google大神,於snort.conf中補入要的參數,要留意的是 google 出來的設定”portvar FILE_DATA_PORTS [$HTTP_PORTS,110,143]”,其中的$HTTP_PORTS也是變數,所以我們新增的參數要放在他的後面。


▲  圖八、於 snort 設定檔加入新參數。

一切設定妥當,我們啟用snort,指令如下:

●snort -D -c /etc/snort/snort.conf

snort 的報表在 /var/log/snort/alert,我們可以由這裡可以看到警示,也可以試用 openvas 對此台機器進行弱點掃描,在弱點偵測過程中會有類似攻擊的行為,也會被偵測出來。


▲  圖九、alert 的示意圖。

軟體下載:
Ubuntu Server 12.04 LTS

轉載自《iThome Download》