問題 | 回答 |
---|---|
這個做業屬於哪一個課程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
這個做業的要求在哪裏 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589 |
我在這個課程的目標是 | 學習教材第六章,瞭解相關的網絡防護技術 |
這個做業在哪一個具體方面幫助我實現目標 | 相關知識點和實踐任務 |
網絡安全防範技術對應 P2DR 中的 「 防禦「 環節,設立在被保護主機與外部網絡中間。它是被保護主機的屏障, 爲主機的安全提供最基礎的保護。html
防火牆的定義:防火牆屬於一種網絡上的訪問控制機制,經過在不一樣的網絡安全域之間創建起安全控制點,對經過的網絡傳輸數據進行檢查,根據具體的安全需求和策略設置決定是否容許網絡訪問經過防火牆,達到保護特定網絡安全域免受非法訪問和破壞的安全目標。linux
防火牆的功能:shell
防火牆的不足:目前的防火牆技術並不能有效地應對某些類犁的安全威脅, 一方面是由於防火牆做爲網絡邊界訪問控制機制的先天不足, 另外一方面則是目前防火牆技術方面存在的瓶頸。編程
主要有包過濾技術、基於狀態檢測的包過濾(或稱動態包過濾)技術、代理技術等。ubuntu
包過濾技術:包過濾技術在路由功能基礎上進行擴展,經過對網絡層和傳輸層包頭信息的檢查,根據用戶定義的安全策略規則集,肯定是否應該轉發該數據包,將一些不符合安全策略的數據包阻擋在網絡的邊界處。
vim
基於狀態檢測的包過濾技術:除了使用靜態規則進行安全進行安全策略匹配,還進行數據包的網絡鏈接的上下文關係探測,來肯定是否容許通訊。這種技術相比較傳統的包過濾技術安全性更高,數據合法性獲得了更有效的保障(對網絡性能有必定的影響)。
緩存
代理技術:代理(Proxy)技術是一種重要的計算機安全防禦功能,容許客戶端經過它與另外一個網絡服務進行非直接的鏈接,也稱 「網絡代理」。代理技術具體過程爲: 客戶瑞首先與代理服務器建立鏈接,接着發出一個對另外的目標服務器的文件或其餘資源的鏈接請求,代理服務器經過與目標服務器鏈接或從緩存中取得請求的資源,並返回給客戶端。根據工做的網絡協議棧層次的不一樣,代理技術包括應用層代理、電路級代理和NAT代理等。安全
防火牆產品:服務器
防火牆部署方法:網絡
netfilter/iptables 組合是目前 Linux 開源操做系統中廣泛使用的防火牆技術解決方案,其中 netfilter 是 Linux 內核中實現的防火牆功能模塊, iptables 則是應用態的防火牆管理工具。
在 PDR 模型中, 檢測技術 (Detection) 在整個模型中扮演了重要的角色。單純的安全保護措施 (Protection) 並不意味着系統的絕對安全。在入侵者攻陷保護措施以前, 一個安全的系統須要檢測出入侵的行爲並採起相應的安全響應 (Response) 措施, 因此檢測是響應的前提。檢測技術主要包括漏洞評估、入侵檢測等。
入侵檢測技術基本概念:入侵檢測, 顧名思義, 就是對入侵行爲的檢測與發現。在網絡攻防技術領域,一次入侵可被定義爲任未嘗試破壞信息資源的保密性、完整性或可用性的行爲。入侵檢測即爲經過對計算機網絡或計算機系統中若干關鍵點信息的收集和分析, 從中發現入侵行爲的一種安全技術。 入侵檢測系統 (Intrusion Detection System, IDS) 則是實現入侵檢測技術,專門用於入侵行爲發現和處理的軟件系統或硬件設備。
入侵檢測技術評估指標:評估入侵檢測技術和系統的兩個重要參數是檢測率 (True Positive) 和誤報率 (False Positve)。其中,檢測率是指入侵檢測系統捕獲到的攻擊行爲數目和所有攻擊數目之比;誤報率是指入侵檢測系統對正常行爲的誤報數目與入侵檢測系統所輸出的所有報警數目之比。理想的入侵檢測系統應該同時具備較高的正確檢出率和較低的誤報率。然而因爲存在 「基調悖論 (Base-rate Fallacy)" 現象,故提升檢測率和下降誤報率是互爲矛盾的。
入侵檢測技術:信息收集是入侵檢測技術的基礎,入侵檢測系統的可靠性和準確性在很人程度上依賴於所收集信息的可靠性和完備性。在可靠完備地收集到關鍵信息以後,入侵檢測技術最核心的任務是信息分析,從中識別出攻擊行爲,入侵檢測技術從早期發展至今,都是圍繞着兩種基本的估息分析技術類型,即誤用檢測和異常檢測來進行的。
入侵檢測系統的分類與部署:從入侵檢測系統的檢測數據來源,能夠將入侵檢測系統分爲基於主機的入侵檢測系統(Host-based IDS, HIDS)和基於網絡的入侵檢測系統(Network-based IDS, NIDS)兩大類。HIDS 通常用來監視主機信息,其數據源一般包括操做系統審計記錄、系統調用序列、應用程序審計信息等;NIDS以其監聽到的網絡數據包做爲分析數據源。HIDS和NlDS右監測視圖上都具備缺陷,但二者能夠相互補充。
入侵防護系統IPS:入侵防護系統 (Intrusion Prevention System, IPS) 是在入侵檢測系統基礎之上發展出來的一種網絡安全技術和產品形態,有時也被稱爲內嵌 IDS。與入侵檢測系統廣泛採用旁路監聽方式只對入侵行爲進行檢測與報警不一樣,入侵防護系統採用直接在網絡邊界位置內聯鏈接的方式,並在檢測到入侵行 爲後,直接對所關聯的攻擊網絡鏈接進行阻斷處理。
Snort 的特性與基本架構:Snort 被設計成一個跨平臺、輕量級的網絡入侵檢測系統,用 C 語言編寫,並採用了標準的捕獲數據包函數庫 libpcap,,具備很是好的可移植性。Snort 軟件的基本架構以下圖所示, 主要由四個基本部分組成:
Snort的實現機理:Snort 中四個主要部件以及處理過程描述以下
網絡安全事件響應是P2DR模型中響應環節的關鍵技術手段。事件響應是指針對網絡安全事件發生後,所採起的措施和行動,旨在阻止和減少事件所帶來的影響。隨着安全事件本質變得愈加的多樣化,事件響應已經成爲成功的網絡與信息安全模型和生命週期中的必要組成部分,成功的事件響應須要有豐宮知識和經驗的人員基礎,充分的組織與計劃,以及成熟的方法論指導與技術支撐。
實踐任務:配置 Linux 操做系統平臺上的 iptables, 或者 Windows 操做系統平臺上的我的防火牆,完成以下功能,並進行測試:
本次實驗所使用的虛擬機爲 kail、seed ubuntu 和 Win XP ,其中 kail 和 Win XP 爲測試機,seed 爲要配置的主機,ip 地址以下圖所示
主機名稱 | ip地址 |
---|---|
kail | 192.168.200.3 |
seed | 192.168.200.6 |
Win XP | 192.168.200.4 |
首先查看一下 kail 可否 ping 通 seed
能夠ping通
接下來在 seed 中使用命令行iptables -A INPUT -p icmp -j DROP
(ps:-A INPUT
是增長一條規則到 INPUT 鏈的末尾,-p icmp
是設置鏈的安全策略,-j DROP
是指定處理方式爲丟棄數據包且不通知發送源。)
再次使用 kail ping seed,發現沒法ping通(丟包率100%)
使用命令iptables -L
查看規則,發現多了一條 icmp 針對任何位置都不接收訪問的規則
最後使用iptables -F
刪除自定義規則
完成第一個問題
下面進行第二個實驗,只容許 kail 使用 seed 上的 telnet 服務
首先使用 win xp 和 kail 分別使用 telnet 服務鏈接 seed ,發現均可以鏈接成功
而後在 seed 上使用命令行iptables -P INPUT DROP
(拒絕一切輸入的數據包),這時全部輸入 seed 的數據包都被丟棄。
接着使用命令行iptables -A INPUT -p tcp -s 192.168.200.3 -j ACCEPT
(-s
源ip地址,命令行的做用爲對源ip地址爲192.168.200.3的輸入的 tcp 數據包接收),並查看規則表
再次使用 win xp 和 kail 鏈接 seed ,發現 kail 能夠鏈接成功,win xp 失敗
最後使用iptables -F
刪除自定義規則,第二個問題完成
任務: 使用 Snort 對給定 pcap 文件(第 4 章中的解
碼網絡掃描任一個 pcap 文件)進行入侵檢測, 並對檢測出的攻擊進行說明。
在BT4Linux攻擊機或WindowsAttacker攻擊機上使用 Snort,對給定的 pcap 文件進行入侵檢測,得到報警日誌。
Snort運行命令提示以下:
首先利用指令snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
對 listen.pacp (第四章所用)進行入侵檢測(-r listen.pcap
表示從 listen.pcap 中讀取數據,-c
表示使用指定配置文件,-K ascii
表示指定輸出 log 文件的編碼爲ascii)
查看輸出,能夠看到大部分數據包爲 tcp 協議的數據包
在/var/log/snort/目錄下能夠查找到alert文件,這個文件即輸出的日誌文件
打開文件,能夠查看到攻擊機和目的機的 ip 地址,以及能夠查看到攻擊機使用了nmap 掃描工具,而且進行了 DDOS 攻擊
實驗完成
分析虛擬網絡攻防環境中蜜網網關的防火牆和 IDS/IPS 配置規則,並撰寫分析報告,說明蜜網網頭是如何利用防火牆和入侵檢測技術完成其攻擊數據捕獲和控制需求的。
具體分析配置規則與啓動項文件包括:
分析內容以下。
上述腳本是如何實現蜜網網關的數據捕獲和數據控制機制
在蜜網網關中,Snort具備實時流量分析和日誌IP網絡數據包的能力,可以快速地檢測網絡攻擊,及時地發出報警,主要是對整個網絡起預警做用。而iptables防火牆主要負責對數據accept(接受),reject(拒絕),drop(丟棄)等規則的制定和執行。所以 snort 制定一系列複雜的監控規則,一旦發現有違反 snort 規則的網絡行爲就發出預警信息,並經過必定機制將預警信息傳送給iptanles,iptables使用這些預警信息生成安全策略並執行。
對於數據控制,下面來具體看一下腳本的代碼,首先查看防火牆的配置文件 rc.firewall (對 shell 編程不太瞭解,因此看不太懂),其中鏈的建立函數比較重要
其中-N
表示根據用戶指定的名字建立新鏈,該函數分別建立了黑名單、白名單和防禦名單(即入侵防護系統中不容許被外部訪問的蜜罐主機),以及一些協議數據包的處理規則鏈。三個名單的做用在後續代碼的註釋中給出
對於黑名單,對源地址或者目的地址屬於黑名單的主機,丟棄全部包且不記錄
對於白名單,對源地址或者目的地址屬於白名單的主機,接受全部包且不記錄
對於防禦名單,對源地址或者目的地址屬於白名單的主機,丟棄全部包且記錄
固然配置文件中還有許多默認規則函數,就不一一列舉了
對於數據捕獲,主要包括防火牆的日誌記錄:記錄的只是簡單的信息如目的地址/端口、源地址/端口、協議、長度等;Snort記錄的網絡流。
獲取 IPTables 的實際規則列表、 Snort 和 Snort_inline 的實際執行參數。
IPTables 的實際規則列表:首先經過命令行iptables -t filter -L
查看 IPTables 的規則表(-t
是指定規則表,-L
表示列表。經過shift鍵+Fn鍵+上下鍵
來翻頁),能夠看到一些默認的規則鏈都被關閉了
Snort的實際執行參數:經過命令行vim /etc/init.d/snortd
,snortd是snort啓動的腳本文件,snort.conf是具體預警的規則設定
能夠看出腳本中定義了許多默認參數,例如默認使用 snort.conf 規則,默認監聽網卡爲eth0,默認存儲日誌路徑爲 /var/log/snort 等等。
Snort_inline 的實際執行參數:經過命令行vim /etc/init.d/hw-snort_inline
查看Snort_inline腳本文件,能夠觀察到實際運行的參數,以及在最前面定義的參數。
其中-D
表示Daemon模式,-c
表示讀取config文件,-Q
表示使用QUEUE模式,-l
表示輸出log文件的目錄,-t
表示改變程序執行時所參考的根目錄位置
蜜網網關開機以後,防火牆、 NIDS、 NIPS 是如何啓動的?
經過命令行chkconfig --list | grep [服務]
能夠查詢到開啓服務的狀況,其中1表示單用戶模式,2表示無網絡鏈接的多用戶命令行模式,3表示有網絡鏈接的多用戶命令行模式,4表示不可用,5表示帶圖形界面的多用戶模式,6表示從新啓動。
能夠看到 iptables 和 snort_inline(NIPS)是隨系統開機而開啓的,而snort(NIDS)須要手動開啓
Bonus: 蜜網網關中的 Snort 規則是如何自動升級的?
能夠從vim /etc/honeywall.conf來看 snort 的 rule 是否自動更新
能夠看到默認爲不自動更新
若是想要開啓自動更新,須要按照Oinkmaster使用教程來修改/etc/oinkmaster.conf
文件
經過對防火牆以及入侵檢測系統的結構和運行機理的學習,以及實踐防火牆的配置和 snort 入侵檢測工具的使用,初步瞭解了網絡防護技術的相關知識。實踐過程當中發現了本身動手能力差的問題,之後還要多多實踐。
iptables詳解
Snort與防火牆Iptables聯動
iptables命令詳解和舉例
Snort 命令參數詳解 網絡攻防技術與實踐