入侵檢測技術及IDS平台的搭建
由畢業論文引發的一波安全設備的學習。
入侵檢測技術
現如今,一台普通的計算機是以安裝防火牆的方式來進行訪問規則的設置達到防御目的,而對於企業網絡來說,這是遠遠不夠的。當入侵者成功地越過防火牆之后,就等於突破了網絡安全的第一道防線,這時候如果沒有相應的入侵檢測系統,將任由入侵者攻擊網絡。因此,如何通過設計檢測系統來提高網絡安全就是當今一個研究熱點。
那么什么是入侵檢測呢?接下來介紹幾個基本概念。
IDS(旁路部署)
IDS是英文“Intrusion Detection Systems”的縮寫,即“入侵檢測系統”。它依照一定的安全策略,通過軟、硬件,對網絡、系統的運行狀況進行監視,盡可能發現各種攻擊企圖、攻擊行為或者攻擊結果,以保證網絡系統資源的機密性、完整性和可用性。做一個形象的比喻:假如防火牆是一幢大樓的門鎖,那么IDS就是這幢大樓里的監視系統。一旦小偷爬窗進入大樓,或內部人員有越界行為,只有實時監視系統才能發現情況並發出警告。
與防火牆不同的是,IDS入侵檢測系統是一個旁路監聽設備,沒有也不需要跨接在任何鏈路上,無須網絡流量流經它便可以工作。因此,對IDS的部署的唯一要求是:IDS應當掛接在所有所關注的流量都必須流經的鏈路上。在這里,“所關注流量”指的是來自高危網絡區域的訪問流量和需要進行統計、監視的網絡報文。
IDS在交換式網絡中的位置一般選擇為:盡可能靠近攻擊源、盡可能靠近受保護資源。如:
-
服務器區域的交換機上;
-
Internet接入路由器之后的第一台交換機上;
-
重點保護網段的局域網交換機上
IPS(串行部署)
IPS系統是電腦網絡安全設施,是對防病毒軟件和防火牆的補充。它是一部能夠監視網絡或網絡設備的網絡資料傳輸行為的計算機網絡安全設備,能夠即時的中斷、調整或隔離一些不正常或是具有傷害性的網絡資料傳輸行為。
對於部署在數據轉發路徑上的IPS,可以根據預先設定的安全策略,對流經的每個報文進行深度檢測(協議分析跟蹤、特征匹配、流量統計分析、事件關聯分析等),如果一旦發現隱藏於其中網絡攻擊,可以根據該攻擊的威脅級別立即采取抵御措施,這些措施包括(按照處理力度):向管理中心告警;丟棄該報文;切斷此次應用會話;切斷此次TCP連接。
辦公網中,需要在以下區域部署IPS:
-
辦公網與外部網絡的連接部位(入口/出口);
-
重要服務器集群前端;
-
辦公網內部接入層。
-
至於其它區域,可以根據實際情況與重要程度,酌情部署。
二者有什么區別呢?
A、IPS對於初始者來說,是位於防火牆和網絡設備之間的設備。這樣,如果檢測到攻擊,IPS會在這種攻擊擴散到網絡的其它地方之前阻止這個惡意的通信。而IDS只是存在於你的網絡之外起到報警的作用,而不是在你的網絡前面起到防御的作用。
B、IPS具有檢測已知和未知攻擊並具有成功防止攻擊的能力而IDS沒有
C、IDS的局限性是不能反擊網絡攻擊,因為IDS傳感器基於數據包嗅探技術,只能眼睜睜地看着網絡信息流過。IPS可執行IDS相同的分析,因為他們可以插入網內,裝在網絡組件之間,而且他們可以阻止惡意活動
IDS的分類
按入侵檢測的手段,IDS的入侵檢測模型可分為基於網絡和基於主機兩種。
1、基於主機的 IDS 基於主機的入侵檢測,不能夠在攻擊發生的時候及時捕捉到攻擊信息,因為這類模型檢測的對象是系統的日志以及審計記錄等,這種數據並不具備實時性,這些信息的生成發生在入侵之后,所以不能夠主動獲取到攻擊前或者攻擊時的信息,本質上這類IDS管理系統更像防護軟件。
2、基於網絡的 IDS NIDS一般部署在系統防火牆之后,作為防火牆被突破后下一道安全防護措施。它的原理是對數據包的分析,通過分析結果判斷是否存在網絡攻擊等行為。
本文主要分析NIDS。
入侵檢測平台的搭建
· 操作系統:ubuntu18.04
· 安裝 LAMP:
1、安裝 Apache2 apt install apache2 -y
2、安裝 MySQL apt install mysql-server libmysqlclient-dev mysql-client autoconf libtool -y
3、安裝 PHP5 及插件
4、測試 php :
在網站根目錄下新建一個info.php
,寫入如下內容;保存並退出。
瀏覽 http://IP/info.php ,顯示 phpinfo 頁面,說明 PHP 正常工作。
· 安裝 snort
1、安裝 DAQ-2.0.6 (數據采集)
2、安裝 snort-2.9.12 ,解壓編譯
3、測試 snort 是否安裝成功 snort -V
4、配置用戶和目錄
5、修改配置文件
6、添加規則
檢查規則
在規則中添加一條對 ICMP包 檢測的規則,以便測試
設置 sid 對應信息,添加 sid-msg 文件
· 安裝 Barnyard2 (作為外部代理將 snort 報警輸出到 Barnyard2)
1、安裝 Barnyard2,解壓編譯
2、測試 barnyard2 -V
3、設置配置文件
4、配置數據庫
5、添加數據庫配置
在末尾處添加
修改 barnyard2.conf 的權限,防止被修改
· 安裝 Base (數據庫信息可視化)
1、安裝 ADOdb
2、安裝 Base
3、配置
修改 /etc/php/5.6/apache2/php.ini
重啟 apache2 使配置生效
設置目錄權限
4、打開 http://IP/base/setup/index.php 安裝 Base
設置頁面中,最好每一項都為綠色,表示通過。這里顯示 Web 服務器對 BASE 的安裝目錄不可寫。按照提示,可以在設置完成后創建 base_conf.php。
點擊 Continue,跟着導引一步步完成設置。
第 1 步:選擇語言 simplified_chinese ,填寫 ADOdb 所在目錄 /var/www/html/adodb 。
第 2 步:填入數據庫的信息,按之前配置的信息填即可(Archive 數據庫的信息可以不填)。
第 3 步:填入管理賬號:snort,密碼:123456。
第 4 步:創建數據表。
第 5 步:提示將顯示的信息復制到 /var/www/html/base/base_conf.php 中。
完成設置后,顯示如下頁面,代表 BASE 安裝成功,可以看到 MySQL 中的數據。
平台演示
關閉防火牆並查看防火牆狀態
運行snort對於主機網卡進行監聽
開啟barnyard2外部代理將snort中的報警輸出到Barnyard2,並設置 barnyard2.waldo為書簽
用攻擊機ping IDS所在的主機IP
可以看到終端中已經顯示出ping命令的告警信息
這時訪問入侵檢測平台IDS,它已經將我們的ping命令的alert信息顯示在平台的可視化窗口