20199311 2019-2020-2《網絡攻防實踐》第6周做業

問題 回答
這個做業屬於哪一個課程 https://edu.cnblogs.com/campus/besti/19attackdefense
這個做業的要求在哪裏 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
我在這個課程的目標是 學習教材第六章,瞭解相關的網絡防護技術
這個做業在哪一個具體方面幫助我實現目標 相關知識點和實踐任務

1. 實踐內容

1.1 安全模型

  • 信息安全金三角:機密性、完整性和可用性
  • 動態可適應網絡安全模型:包括PDR (Protection、 Detection、Response) 模型以及在其基礎上提出的P2DR(Policy、 Protection、 Detection 、 Response) 模型等。
    圖片描述
  • 防禦機制:採用一切手段保護信息系統的機密性、完整性、可用性、真實性和不可抵賴性
  • 檢測機制:動態響應和增強防禦的依據, 是強制落實安全策略的工具。
  • 響應措施:包括應急處理、備份恢復、災難恢復等

1.2 網絡安全防範技術與系統

網絡安全防範技術對應 P2DR 中的 「 防禦「 環節,設立在被保護主機與外部網絡中間。它是被保護主機的屏障, 爲主機的安全提供最基礎的保護。html

1.2.1 防火牆技術

  • 防火牆的定義:防火牆屬於一種網絡上的訪問控制機制,經過在不一樣的網絡安全域之間創建起安全控制點,對經過的網絡傳輸數據進行檢查,根據具體的安全需求和策略設置決定是否容許網絡訪問經過防火牆,達到保護特定網絡安全域免受非法訪問和破壞的安全目標。linux

  • 防火牆的功能:shell

    1. 檢查控制進出網絡的網絡流量
    2. 防止脆弱或不安全的協議和服務
    3. 防止內部網絡信息的外泄
    4. 對網絡存取和訪問進行監控審計
    5. 防火牆能夠強化網絡安全策略並集成其餘安全防護機制
  • 防火牆的不足:目前的防火牆技術並不能有效地應對某些類犁的安全威脅, 一方面是由於防火牆做爲網絡邊界訪問控制機制的先天不足, 另外一方面則是目前防火牆技術方面存在的瓶頸。編程

    • 做爲網絡邊界防禦機制而先天沒法防範的安全威脅包括以下
      1. 來自網絡內部的安全威脅
      2. 經過非法外聯的網絡攻擊
      3. 計算機病毒傳播
    • 因爲技術瓶頸問題目前還沒法有效防範的安全威脅包括以下
      1. 針對開放服務安全漏洞的滲透攻擊
      2. 針對網絡客戶端程序的滲透攻擊
      3. 基於隱蔽通道進行通訊的特洛伊木馬或僵屍網絡

1.2.2 防火牆技術和產品

主要有包過濾技術、基於狀態檢測的包過濾(或稱動態包過濾)技術、代理技術等。ubuntu

  • 包過濾技術:包過濾技術在路由功能基礎上進行擴展,經過對網絡層和傳輸層包頭信息的檢查,根據用戶定義的安全策略規則集,肯定是否應該轉發該數據包,將一些不符合安全策略的數據包阻擋在網絡的邊界處。
    圖片描述vim

  • 基於狀態檢測的包過濾技術:除了使用靜態規則進行安全進行安全策略匹配,還進行數據包的網絡鏈接的上下文關係探測,來肯定是否容許通訊。這種技術相比較傳統的包過濾技術安全性更高,數據合法性獲得了更有效的保障(對網絡性能有必定的影響)。
    圖片描述緩存

  • 代理技術:代理(Proxy)技術是一種重要的計算機安全防禦功能,容許客戶端經過它與另外一個網絡服務進行非直接的鏈接,也稱 「網絡代理」。代理技術具體過程爲: 客戶瑞首先與代理服務器建立鏈接,接着發出一個對另外的目標服務器的文件或其餘資源的鏈接請求,代理服務器經過與目標服務器鏈接或從緩存中取得請求的資源,並返回給客戶端。根據工做的網絡協議棧層次的不一樣,代理技術包括應用層代理、電路級代理和NAT代理等。安全

  • 防火牆產品:服務器

    1. 集成包過濾功能的路由器
    2. 基於通用操做系統的防火牆軟件產品
    3. 基於安全操做系統的防火牆
  • 防火牆部署方法:網絡

  1. 包過濾路由器:將帶有包過濾防火牆功能的路由器做爲內部網絡和外部網絡之間惟一的鏈接點,路由器在完成其數據包路由轉發基本功能的同時,將依據網絡管理員配置的訪問控制列表,對數據包進行過濾。
    圖片描述
  2. 雙宿主堡壘主機:它與包過濾路由器的部署方式北常相似,所不一樣的是使用應用代理網關做爲雙宿主堡壘主機,代替了包過濾路由器。雙宿主堡壘主機具備兩個網絡接口,一個使用公網 IP 地址鏈接外部網絡, 另—個使用私有 IP 地址鏈接內部網絡,兩個網絡接口之間並不具有路由轉發功能,而僅僅由應用代理服務然程序爲特定的網絡應用提供代理。
    圖片描述
  3. 屏蔽主機:其實是包過濾防火牆和應用代理技術的集成部署,包過濾防火牆和應用代理技術的集成部署,採用了屏蔽路由和堡壘主機雙重安全設施,全部進出內部網絡的數據都要通過包過濾防火牆和堡壘主機,由包過濾防火牆進行網絡層的訪問控制,由堡壘主機進行應用安全控制,保證了網絡層和應用層的雙重安全。
    圖片描述
  4. 屏蔽子網:是在屏蔽主機模式的基礎上進行改進的防火牆部署模式。它與屏蔽主機模式的區別在於在應用代理及對外服務器所構成網段和內部主.機之間安裝了第二個包過濾防火牆,應用代理及對外服務器所處的網段也被稱爲DMZ(非軍事區)。在這種部署模式中,內部的包過濾防火牆可以在應用代理和對外服務器被攻破以後提供對內部網絡的進一步安全防禦能力。
    圖片描述

1.2.3 Linux 開源防火牆: netfilter/iptables

netfilter/iptables 組合是目前 Linux 開源操做系統中廣泛使用的防火牆技術解決方案,其中 netfilter 是 Linux 內核中實現的防火牆功能模塊, iptables 則是應用態的防火牆管理工具。

  • netfilter/iptables 開源防火牆工做原理:netfilter/iptables 中包含三個最基本的規則表,分別爲用於包過濾處理的 filter 表 、用於網絡地址轉換處理的 nat 表, 以及用於特殊目的數據包修改的 mangle 表。在每張規則表中包含一些已缺省定義的規則鏈,以及可由用戶自定義的規則鏈。下表中所列出的 INPUT 、 OUTPUT 、FORWARD 、 PREROUTING 和 POSTROUTING 五條在各個表中缺省內建的各種規則鏈實際上對應着 netfilter 在 TCP/IP 協議棧實現中的五個 Hook 檢查點。不一樣來源和目的網絡數據包在協議棧處理時會經過不一樣的 netfilter 檢查鏈, 並依據 iptables 在這些規則鏈上配置的檢查、 過濾和處理規則,進行相關的數據包修改與操做。經過 netfilter 配置防火牆轉發的網絡流量將經由 PREROUTING 、 FORWARD 和 POSTROUTING,傳入防火牆本機的網絡流量經過 PREROUTING 進入 INPUT 鏈, 而防火牆本機對外傳出的網絡流量則由 OUTPUT 鏈開始, 經過 POSTROUTING 鏈發出。在每條規則鏈上會設置一個缺省的處理操做,一般狀況下爲接受(ACCEPT),並由用戶經過 iptables 添加一些實現安全過濾、NAT 及其餘目的的配置規則,在 netfilter 對數據包進行處理時,將在各個 Hook 檢查點上對流經的數據包進行檢查,並逐次查看數據包是否匹配了配置規則的條件,若是符合,則執行規則所規定的操做,如過濾 (DROP) 數據包 等,最後不符合該鏈表上全部配置規則的數據包將執行缺省處理操做。
    圖片描述

圖片描述

圖片描述

  • iptables 的命令:參照課本和參考資料

1.3 網絡檢測技術與系統

在 PDR 模型中, 檢測技術 (Detection) 在整個模型中扮演了重要的角色。單純的安全保護措施 (Protection) 並不意味着系統的絕對安全。在入侵者攻陷保護措施以前, 一個安全的系統須要檢測出入侵的行爲並採起相應的安全響應 (Response) 措施, 因此檢測是響應的前提。檢測技術主要包括漏洞評估、入侵檢測等。

1.3.1 入侵檢測技術概述

  • 入侵檢測技術基本概念:入侵檢測, 顧名思義, 就是對入侵行爲的檢測與發現。在網絡攻防技術領域,一次入侵可被定義爲任未嘗試破壞信息資源的保密性、完整性或可用性的行爲。入侵檢測即爲經過對計算機網絡或計算機系統中若干關鍵點信息的收集和分析, 從中發現入侵行爲的一種安全技術。 入侵檢測系統 (Intrusion Detection System, IDS) 則是實現入侵檢測技術,專門用於入侵行爲發現和處理的軟件系統或硬件設備。

  • 入侵檢測技術評估指標:評估入侵檢測技術和系統的兩個重要參數是檢測率 (True Positive) 和誤報率 (False Positve)。其中,檢測率是指入侵檢測系統捕獲到的攻擊行爲數目和所有攻擊數目之比;誤報率是指入侵檢測系統對正常行爲的誤報數目與入侵檢測系統所輸出的所有報警數目之比。理想的入侵檢測系統應該同時具備較高的正確檢出率和較低的誤報率。然而因爲存在 「基調悖論 (Base-rate Fallacy)" 現象,故提升檢測率和下降誤報率是互爲矛盾的。

  • 入侵檢測技術:信息收集是入侵檢測技術的基礎,入侵檢測系統的可靠性和準確性在很人程度上依賴於所收集信息的可靠性和完備性。在可靠完備地收集到關鍵信息以後,入侵檢測技術最核心的任務是信息分析,從中識別出攻擊行爲,入侵檢測技術從早期發展至今,都是圍繞着兩種基本的估息分析技術類型,即誤用檢測和異常檢測來進行的。

  1. 誤用檢測:誤用檢測基於以下假設:全部的入侵行爲都有可被檢測到的特徵。誤用檢測經過收集已知入侵行爲的特徵並進行描述,構成攻擊特徵庫,而後對收集信息進行特徵模式匹配,全部符合特徵描述的行爲均被視爲入侵。
  2. 異常檢測:異常檢測則基於這樣的假設:入侵者的行爲與正經常使用戶的行爲具備差別性,利用這些差別能夠檢測出入侵行爲。異常檢測方法是創建起系統的正常模式輪廓,若實時得到的系統或用戶的輪廓伯與正常值的差別超出指定的闕值,就進行入侵報警。
  • 入侵檢測系統的分類與部署:從入侵檢測系統的檢測數據來源,能夠將入侵檢測系統分爲基於主機的入侵檢測系統(Host-based IDS, HIDS)和基於網絡的入侵檢測系統(Network-based IDS, NIDS)兩大類。HIDS 通常用來監視主機信息,其數據源一般包括操做系統審計記錄、系統調用序列、應用程序審計信息等;NIDS以其監聽到的網絡數據包做爲分析數據源。HIDS和NlDS右監測視圖上都具備缺陷,但二者能夠相互補充。
    圖片描述

  • 入侵防護系統IPS:入侵防護系統 (Intrusion Prevention System, IPS) 是在入侵檢測系統基礎之上發展出來的一種網絡安全技術和產品形態,有時也被稱爲內嵌 IDS。與入侵檢測系統廣泛採用旁路監聽方式只對入侵行爲進行檢測與報警不一樣,入侵防護系統採用直接在網絡邊界位置內聯鏈接的方式,並在檢測到入侵行 爲後,直接對所關聯的攻擊網絡鏈接進行阻斷處理。
    圖片描述

1.3.2 開源網絡入侵檢測系統: Snort

  • Snort 的特性與基本架構:Snort 被設計成一個跨平臺、輕量級的網絡入侵檢測系統,用 C 語言編寫,並採用了標準的捕獲數據包函數庫 libpcap,,具備很是好的可移植性。Snort 軟件的基本架構以下圖所示, 主要由四個基本部分組成:

    1. 數據包嗅探/解碼器 (sniffer);
    2. 預處理器/插件 (preprocessor):
    3. 檢測引擎/插件 (detection engine);
    4. 輸出模塊/插件 (output modules) 。
      圖片描述
  • Snort的實現機理:Snort 中四個主要部件以及處理過程描述以下

    1. 數據包嗅探/解碼器。首先, 利用 libpcap 從網卡或離線記錄中捕獲數據包,而後數據包通過解碼器埴入到鏈路層協議的包結構體中,以便對高層次的協議進行解碼,如TCP/UDP 層。
    2. 預處理器/插件。接着數據包被送到各類各樣的預處理插件中,在檢測引擎以前對數據包進行檢查和橾做。每一個預處理插件檢查數據包是否應該注意、報警或者修改某些東西。
    3. 檢測引擎/插件。隨後,包被送至檢測引擎,檢測引擎首先經過各類規則文件中定義的匹配字符串特徵來對每一個包的信息進行快速的模式匹配檢測,而後由各類檢測插件對包提供額外的檢測功能。規則中每一個關鍵字選項對應於檢測引擎插件,可以提供不一樣的檢測功能。
    4. 輸出模塊/插件。對以前各個部件產生的報警/日誌信息,根據用戶配置,調用相應的輸出插件進行發送和記錄。
      在 Snort 啓動初始化時,會經過 parser.c 中的 ParseRulesFile() 函數對用戶配置的規則文件進行讀取,並創建起—個三維的規則鏈表。
      圖片描述

1.4 網絡安全事件響應技術

網絡安全事件響應是P2DR模型中響應環節的關鍵技術手段。事件響應是指針對網絡安全事件發生後,所採起的措施和行動,旨在阻止和減少事件所帶來的影響。隨着安全事件本質變得愈加的多樣化,事件響應已經成爲成功的網絡與信息安全模型和生命週期中的必要組成部分,成功的事件響應須要有豐宮知識和經驗的人員基礎,充分的組織與計劃,以及成熟的方法論指導與技術支撐。

2. 實踐過程

2.1 動手實踐:防火牆配置

實踐任務:配置 Linux 操做系統平臺上的 iptables, 或者 Windows 操做系統平臺上的我的防火牆,完成以下功能,並進行測試:

  1. 過濾 ICMP 數據包, 使得主機不接收 Ping 包
  2. 只容許特定 IP 地址 (如局域網中的 Linux 攻擊機 192.168.200.3), 訪問主機的某一網絡服務(如 FTP、HTTP 、SMB), 而其餘的 IP 地址(如 Windows 攻擊機 192.168.200.4)沒法訪間。

本次實驗所使用的虛擬機爲 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刪除自定義規則,第二個問題完成

2.2 動手實踐: Snort

任務: 使用 Snort 對給定 pcap 文件(第 4 章中的解
碼網絡掃描任一個 pcap 文件)進行入侵檢測, 並對檢測出的攻擊進行說明。
在BT4Linux攻擊機或WindowsAttacker攻擊機上使用 Snort,對給定的 pcap 文件進行入侵檢測,得到報警日誌。
Snort運行命令提示以下:

  • 從離線的 pcap 文件讀取網絡日誌數據源。
  • 在snort.conf中配置明文輸出報警日誌文件。
  • 指定報警日誌 log 目錄(或缺省 log 目錄=/var/log/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 攻擊
圖片描述

圖片描述
實驗完成

2.3 實踐做業

分析虛擬網絡攻防環境中蜜網網關的防火牆和 IDS/IPS 配置規則,並撰寫分析報告,說明蜜網網頭是如何利用防火牆和入侵檢測技術完成其攻擊數據捕獲和控制需求的。
具體分析配置規則與啓動項文件包括:

  • 防火牆 (netfilter+IPTables) : /etc/init.d/rc.firewall;
  • 入侵檢測系統 (Snort) : /etc/init.cl/hflow-snort 與/etc/snort/snort.conf;
  • 入侵防護系統 (Snort_inline) : /etc/init.d/hflow-snort_inline 與/etc/snort_inline/snort_ inline.conf。

分析內容以下。

  • 上述腳本是如何實現蜜網網關的數據捕獲和數據控制機制?
  • 獲取 IPTables 的實際規則列表、 Snort 和 Snort_inline 的實際執行參數。
  • 蜜網網關開機以後,防火牆、 NIDS、 NIPS 是如何啓動的?
  • Bonus: 蜜網網關中的 Snort 規則是如何自動升級的?

上述腳本是如何實現蜜網網關的數據捕獲和數據控制機制
在蜜網網關中,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文件

3. 學習中遇到的問題及解決

  • 問題1:對蜜網網關的防火牆與 IDS/IPS 分析過程不瞭解
  • 問題1解決方案:上網蒐集資料,同時參考其它同窗博客,最終完成

4. 實踐總結

經過對防火牆以及入侵檢測系統的結構和運行機理的學習,以及實踐防火牆的配置和 snort 入侵檢測工具的使用,初步瞭解了網絡防護技術的相關知識。實踐過程當中發現了本身動手能力差的問題,之後還要多多實踐。

參考資料

iptables詳解
Snort與防火牆Iptables聯動
iptables命令詳解和舉例
Snort 命令參數詳解 網絡攻防技術與實踐

相關文章
相關標籤/搜索