【正文】
統(tǒng) ( NIDS) 。 Snort具有很多優(yōu)勢: ?代碼短小 、 易于安裝 、 便于配置 。 ?功能十分強大和豐富 ?集成了多種告警機制支持實時告警功能 ?具有非常好擴展能力 ?遵循 GPL, 可以免費使用 返回本章首頁 第五章 入侵檢測技術(shù) Snort的體系結(jié)構(gòu) Snort在結(jié)構(gòu)上可分為數(shù)據(jù)包捕獲和解碼子系統(tǒng) 、 檢測引擎 , 以及日志及報警子系統(tǒng)三個部分 。 1. 數(shù)據(jù)包捕獲和解碼子系統(tǒng) 該子系統(tǒng)的功能是捕獲共享網(wǎng)絡(luò)的傳輸數(shù)據(jù) ,并按照 TCP/ IP協(xié)議的不同層次將數(shù)據(jù)包解 析 。 2. 檢測引擎 檢測引擎是 NIDS實現(xiàn)的核心 , 準確性和快速性是衡量其性能的重要指 標 。 返回本章首頁 第五章 入侵檢測技術(shù) 為了能夠快速準確地進行檢測和處理 , Snort在檢測規(guī)則方面做了較為成熟的設(shè)計 。 Snort 將所有已知的攻擊方法以規(guī)則的形式存放在規(guī)則庫中 , 每一條規(guī)則由規(guī)則頭和規(guī)則選項兩部分組成 。 規(guī)則頭對應(yīng)于規(guī)則樹結(jié)點 RTN( Rule Tree Node) , 包含動作 、 協(xié)議 、 源 ( 目的 ) 地址和端口以及數(shù)據(jù)流向 , 這是所有規(guī)則共有的部分 。 規(guī)則選項對應(yīng)于規(guī)則選項結(jié)點 OTN( Optional Tree Node) , 包 含 報 警 信 息 ( msg) 、 匹 配 內(nèi) 容( content) 等選項 , 這些內(nèi)容需要根據(jù)具體規(guī)則的性質(zhì)確定 。 返回本章首頁 第五章 入侵檢測技術(shù) 檢測規(guī)則除了包括上述的關(guān)于 “ 要檢測什么 ” , 還應(yīng)該定義 “ 檢測到了該做什么 ” 。Snort 定義了三種處理方式: alert ( 發(fā)送報警信息 ) 、 log( 記錄該數(shù)據(jù)包 ) 和 pass( 忽略該數(shù)據(jù)包 ) , 并定義為規(guī)則的第一個匹配關(guān)鍵字 。 這樣設(shè)計的目的是為了在程序中可以組織整個規(guī)則庫 , 即將所有的規(guī)則按照處理方式組織成三個鏈表 , 以用于更快速準確地進行匹配 。 如圖 517所示 。 返回本章首頁 第五章 入侵檢測技術(shù) 學 學 學 學 學S r c / D e s I PS r c / D e s P o r t學 學 學 學 學S r c / D e s I PS r c / D e s P o r t學 學 學 學 學… ...R T N R T N R T N學 學 學 學 學 學C o n t e n tT C P F l a g sI C M P C o d e s / T y p eP a y l o a d S i z ee t cO T N學 學 學 學 學 學C o n t e n tT C P F l a g sI C M P C o d e s / T y p eP a y l o a d S i z ee t cO T N學 學 學 學 學 學C o n t e n t… ...O T N學 5 1 7 S n o r t 學 學 學 學 學 學 學 學返回本章首頁 第五章 入侵檢測技術(shù) 當 Snort 捕獲一個數(shù)據(jù)包時 , 首先分析該數(shù)據(jù)包使用哪個 IP協(xié)議以決定將與某個規(guī)則樹進行匹配 。 然后與 RTN 結(jié)點依次進行匹配 , 當與一個頭結(jié)點相匹配時 , 向下與 OTN 結(jié)點進行匹配 。每個 OTN 結(jié)點包含一條規(guī)則所對應(yīng)的全部選項 ,同時包含一組函數(shù)指針 , 用來實現(xiàn)對這些選項的匹配操作 。 當數(shù)據(jù)包與某個 OTN 結(jié)點相匹配時 ,即判斷此數(shù)據(jù)包為攻擊數(shù)據(jù)包 。 具體流程見圖 518所示 。 返回本章首頁 第五章 入侵檢測技術(shù) NY學 5 1 8 S n o r t 學 學 學 學 學 學 學學 學學 學 R u l e L i s t N o d e 下一 個 節(jié) 點學 學 R u l e L i s t s 學NY學 學 學 學學 學學 學 學 學 學 學 學學 學 學 學 學 學學 學 學 學 學 學 學 學 學學 學 學 學 學 學 學 學學 學 學 學 學學 學 學 學 學 學 學 學 學學 學 學 學 學 學 學 學學 學 學 學 學Y學 學 學 學 學 學 學 學學 學 T a g 學 學 學 學 學 學學 學N學 學 學 學學 學 學返回本章首頁 第五章 入侵檢測技術(shù) 3. 日志及報警子系統(tǒng) 一個好的 NIDS, 更應(yīng)該提供友好的輸出界面或發(fā)聲報警等 。 Snort是一個輕量級的 NIDS,它的另外一個重要功能就是數(shù)據(jù)包記錄器 , 它主要采取用 TCPDUMP的格式記錄信息 、 向 syslog 發(fā)送報警信息和以明文形式記錄報警信息三種方式 。 值得提出的是 , Snort 在網(wǎng)絡(luò)數(shù)據(jù)流量非常大時 , 可以將數(shù)據(jù)包信息壓縮從而實現(xiàn)快速報警 。 返回本章首頁 第五章 入侵檢測技術(shù) Snort的 安裝與使用 Snort可簡單安裝為守護進程模式,也可安裝為包括很多其他工具的完整的入侵檢測系統(tǒng)。 ?簡單方式安裝時,可以得到入侵數(shù)據(jù)的文本文件或二進制文件,然后用文本編輯器等工具進行查看。 ?Snort若與其它工具一起安裝,則可以支持更為復雜的操作。例如,將 Snort數(shù)據(jù)發(fā)送給數(shù)據(jù)庫系統(tǒng),從而支持通過 Web界面進行數(shù)據(jù)分析,以增強對Snort捕獲數(shù)據(jù)的直觀認識,避免耗費大量時間查閱晦澀的日志文件。 返回本章首頁 第五章 入侵檢測技術(shù) 2. Snort的簡單安裝 Snort 的 安 裝 程 序 可 以 在 Snort 官 方 網(wǎng) 站 。 ( 1) 安裝 Snort Snort必須要有 libpcap庫的支持 , 在安裝前需確認系統(tǒng)已經(jīng)安裝了 libpcap庫 。 [root@mail ] ./configure enabledynamicplugin [root@mail ] make [root@mail ] make install 返回本章首頁 第五章 入侵檢測技術(shù) ( 2) 更新 Snort規(guī)則 下載最新的規(guī)則文件 。其中 , CURRENT表示最新的版本號 。 [root@mail snort] mkdir /etc/snort [root@mail snort] cd /etc/snort [root@mail snort] tar zxvf /path/to/snortrulessnapshot 返回本章首頁 第五章 入侵檢測技術(shù) ( 3) 配置 Snort 建立 config文件目錄: [root@mail ] mkdir /etc/snort 復制 Snort配置文件 Snort配置目錄: [root@mail ] cp ./etc/ /etc/snort/ 編輯 : [root@mail ] vi /etc/snort/ 修改后 , 一些關(guān)鍵設(shè)置如下: var HOME_NET yourwork var RULE_PATH /etc/snort/rules preprocessor _inspect: global \ iis_unicode_map /etc/snort/rules/ 1252 include /etc/snort/rules/ include /etc/snort/rules/ 返回本章首頁 第五章 入侵檢測技術(shù) ( 4) 測試 Snort /usr/local/bin/snort A fast b d D l /var/log/snort c /etc/snort/ 查看文件 /var/log/messages, 若沒有錯誤信息 ,則表示安裝成功 。 返回本章首頁 第五章 入侵檢測技術(shù) 3. Snort的工作模式 Snort有三種工作模式 , 即嗅探器 、 數(shù)據(jù)包記錄器 、 網(wǎng)絡(luò)入侵檢測系統(tǒng) 。 ( 1) 嗅探器 所謂的嗅探器模式就是 Snort從網(wǎng)絡(luò)上獲取數(shù)據(jù)包然之后顯示在控制臺上 。 若只把 TCP/IP包頭信息打印在屏幕上 ,則只需要執(zhí)行下列命令: ./snort v 若顯示應(yīng)用層數(shù)據(jù) , 則執(zhí)行: ./snort vd 若同時顯示數(shù)據(jù)鏈路層信息 , 則執(zhí)行: ./snort vde 返回本章首頁 第五章 入侵檢測技術(shù) ( 2) 數(shù)據(jù)包記錄器 如果要把所有的數(shù)據(jù)包記錄到硬盤上 , 則需要指定一個日志目錄 , Snort將會自動記錄數(shù)據(jù)包: ./snort dev l ./log 如果網(wǎng)絡(luò)速度很快 , 或者希望日志更加緊湊以便事后分析 , 則應(yīng)該使用二進制日志文件格式 。 使用下面的命令可以把所有的數(shù)據(jù)包記錄到一個單一的二進制文件中: ./snort l ./log b 返回本章首頁 第五章 入侵檢測技術(shù) ( 3) 網(wǎng)絡(luò)入侵檢測系統(tǒng) 通過下面命令行 , 可以將 Snort啟動為網(wǎng)絡(luò)入侵檢測系統(tǒng)模式: ./snort dev l ./log h 。 Snort會將每個包和規(guī)則集進行匹配 , 一旦匹配成功就會采取響應(yīng)措施 。 若不指定輸出目錄 , Snort就將日志輸出到/var/log/snort目錄 。 返回本章首頁 第五章 入侵檢測技術(shù) Snort的安全防護 為保護 Snort系統(tǒng)的運行安全 , 必須采取一些必要的安全防護措施 , 主要包括: ?加固運行 Snort系統(tǒng)的主機 ?在隱秘端口上運行 Snort ?在不配置 IP地址的接口上運行 Snort 返回本章首頁 第五章 入侵檢測技術(shù) 本章小結(jié) 入侵檢測 ( Intrusion Detection) 是保障網(wǎng)絡(luò)系統(tǒng)安全的關(guān)鍵部件 , 它通過監(jiān)視受保護系統(tǒng)的狀態(tài)和活動 , 采用誤用檢測 ( Misuse Detection) 或異常檢測 ( Anomaly Detection) 的方式 , 發(fā)現(xiàn)非授權(quán)的或惡意的系統(tǒng)及網(wǎng)絡(luò)行為 , 為防范入侵行為提供有效的手段 。 入侵檢測按照不同的標準有多種分類方法 。 分布式入侵檢測 ( Distributed Intrusion Detection) 對信息的處理方法分為兩種 , 即分布式信息收集 、 集中式處理和分布式信息收集 、 分布式處理 。 返回本章首頁 第五章 入侵檢測技術(shù) 為了提高 IDS產(chǎn)品 、 組件及與其他安全產(chǎn)品之間的互操作性 , DARPA和 IETF的入侵檢測工作組( IDWG) 發(fā)起制訂了一系列建議草案 , 從體系結(jié)構(gòu) 、 API、 通信機制 、 語言格式等方面來規(guī)范 IDS的標準 , 但草案或建議目前都處于逐步完善之中 , 尚無被廣泛接受的國際標準 。 在安全實踐中 , 部署入侵檢測是一項繁瑣的工作 , 需要從三個方面對入侵檢測進行改進 , 即突破檢測速度瓶頸制約 , 適應(yīng)網(wǎng)絡(luò)通信需求;降低漏報和誤報 , 提高其安全性和準確度;提高系統(tǒng)互動性能 , 增強全系統(tǒng)的安全性能 。 返回本章首頁 第五章 入侵檢測技術(shù) 本章到此結(jié)束,謝謝!