如何結(jié)合使用ntopng和NetFlow/IPFIX檢測Dos攻擊,在上一篇文章中,我們已經(jīng)做足了鋪墊,本期我將會為大家展示并分析實操步驟。話不多說,直接進入正題。
一、Ntopng在模擬中發(fā)出的警報
應根據(jù)監(jiān)控需求和可用資源對 Ntopng 進行配置和優(yōu)化。在本研究中,大多數(shù)警報和警告都是以默認值激活的。顯然,每個警報和警告都必須根據(jù) Ntopng 的工作環(huán)境和網(wǎng)絡拓撲結(jié)構(gòu)進行評估。 模擬過程中的 Ntopng 檢測列表:
1、SYN FLOOD(SYN 泛洪攻擊)
通過發(fā)送大量的SYN請求來耗盡目標系統(tǒng)的資源,使其無法處理正常的連接請求。在TCP協(xié)議中,當客戶端嘗試建立到服務器的連接時,會發(fā)送一個SYN(同步)請求,服務器在收到該請求后會回復一個SYN-ACK(同步-確認)以表示連接的建立,最后客戶端發(fā)送一個ACK(確認)以確認連接的建立。在SYN泛洪攻擊中,攻擊者發(fā)送大量的SYN請求但不發(fā)送最后的ACK,導致服務器在等待確認的狀態(tài)下消耗資源,從而耗盡系統(tǒng)的資源,使得合法用戶無法建立連接。
簡而言之,SYN 泛洪攻擊就是用虛假的連接請求使服務器飽和,從而阻止服務器處理真正的連接,造成服務中斷。實施這種攻擊有兩種技術:
1. 使用假IP,即用不同的 IP 地址偽裝自己的 IP 地址,這樣服務器就會向一個假 IP 發(fā)送 SYN-ACK 回復。
2. 客戶端故意不響應服務器,保持連接開放
當發(fā)送/接收的 SYN/秒數(shù)超過閾值 > 256 SYN/秒時,NTOPNG 就會觸發(fā)警報,閾值可以更改。
2、TCP SYN SCAN(SYN掃描)
SYN 掃描是一種掃描類型,包括發(fā)送 SYN 標志激活的 TCP 數(shù)據(jù)包。
如果要檢查的端口是開放的,攻擊者將收到一個激活 SYN 和 ACK 標志的 TCP 數(shù)據(jù)包作為回復,并通過一個激活 RST 標志的 TCP 數(shù)據(jù)包關閉連接。
如果要控制的端口已關閉,攻擊者將收到一個激活 RST 標志的 TCP 數(shù)據(jù)包,從而關閉連接。 在這兩種情況下,連接都不會完成,因此幾乎不會出現(xiàn)在日志文件中。
當 SYN 發(fā)送/接收/分鐘(未應答)數(shù)超過閾值 > 256 SYN/分鐘時,Ntopng 會觸發(fā)警報。閾值可以更改。
3、TCP FIN SCAN(FIN掃描)
FIN 掃描是一種掃描類型,包括向受害者端口發(fā)送僅激活 FIN 標志的 TCP 數(shù)據(jù)包。在 RFC793 技術規(guī)范中,如果端口是關閉的,主機接收到 FIN 標志激活的數(shù)據(jù)包后,必須回復一個 RST 標志激活的數(shù)據(jù)包;如果端口是開放的,則應忽略該數(shù)據(jù)包。這樣,攻擊者就能知道哪些端口是開放的。但并非所有系統(tǒng)都遵守這些規(guī)范,在任何情況下都會返回一個 RST 標志激活的 TCP 數(shù)據(jù)包,從而使掃描失去作用。
當發(fā)送/接收 FINs/分鐘(無響應)的數(shù)量超過閾值 > 256 FINs/分鐘時,Ntopng 會觸發(fā)警報。閾值可以更改。
4、SCAN DETECTED(掃描檢測)
當檢測到掃描(主機/端口)時,如果未完成的 TCP/UDP 流量超過指定限制,Ntopng 會觸發(fā)警報... > 32 流量(分鐘)。閾值可以更改。
5、FLOWS FLOOD
當新的客戶端/服務器/秒流量超過閾值 > 256 流量/秒(分鐘)時,Ntopng 會觸發(fā)警告。閾值可以更改。
6、異常分數(shù)行為
注意異常分數(shù)行為,以發(fā)現(xiàn)威脅或缺陷。
當界面出現(xiàn)意想不到的行為時,ntopng警報可能會被觸發(fā)。
7、異常流量行為
意外行為檢查。
警告不正常的流量行為,以發(fā)現(xiàn)威脅或缺陷。
當界面出現(xiàn)意想不到的行為時,ntopng警報可能會被觸發(fā)。
8、超過分數(shù)閾值
每臺主機都有一個非負數(shù)值,用于存儲分數(shù)值。該值的計算時間間隔為 1 分鐘。當主機的分數(shù)在一分鐘內(nèi)超過分數(shù)閾值 > 5000 時,ntopng警告就會激活。閾值可以更改。
補充信息:Ntopng 如何計算得分
分數(shù)是一個數(shù)字指標,如果不為零,則表示存在某種問題,分數(shù)越高,相關問題越嚴重。
分數(shù)主要有三個來源:
1. 數(shù)據(jù)流得分:表示數(shù)據(jù)流的糟糕程度,例如:有多次重傳的數(shù)據(jù)流得分不為零。
2. 流量的源主機得分:與源主機相關聯(lián)的數(shù)值,例如:在步驟 1 的流量中,如果只有目的地 -> 客戶端的重傳,則該流量的源主機得分為 0,但如果源端也有重傳,則該值為正。
3. 流量的目的主機得分:與之前相同,但針對的是流量的目的主機。由于流量可能存在多個問題,因此流量上遇到的每個問題(例如流量上檢測到的 TCP 重傳或過時的 TLS 版本)都會影響得分。因此,得分是在該流量上發(fā)現(xiàn)的單個流量/源/目的得分的總和。
二、警告:最近的活躍流
“Warning Recently live flows”消息顯示,Ntopng正在觀察到網(wǎng)絡中大量活躍的數(shù)據(jù)流,因此資源利用率很高,因此對安全的擔憂;因此,有必要對此進行調(diào)查。
為了應付這一警告,可能需要:
檢查當前網(wǎng)絡活動,查看流量模式是否符合預期或是否存在異常。
查找可能存在的安全威脅或異常網(wǎng)絡行為。
三、一個攻擊和檢測過程示例——使用slowhttptest進行HTTP慢速攻擊
HTTP慢速攻擊允許單個客戶端使用最小帶寬使服務器資源飽和。具體做法是盡可能保持與目標服務器的連接處于開放狀態(tài),惡意客戶端連接到目標服務器并向其發(fā)送部分請求,即未完成 http 頭的發(fā)送;具體來說,當客戶端發(fā)出 HTTP 請求時,網(wǎng)絡服務器只能在請求頭發(fā)送完成后才能關閉 TCP 連接。這種技術迫使服務器保持連接開放,從而達到服務器可用連接的最大數(shù)量,使其無法訪問其他客戶端的合法請求。
下面是" slowhttptest"命令的示例:
slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 3
-H: 啟用慢速HTTP攻擊中的Slow Headers攻擊模式。
-c 2000: 模擬的客戶端數(shù)量,這里設置為2000個客戶端。
-g: 啟用慢速HTTP攻擊中的Slow Read攻擊模式。
-o output: 指定輸出文件的名稱為output。
-i 10: 設置攻擊間隔為10秒。
-r 300: 設置攻擊持續(xù)時間為300秒(5分鐘)。
-t GET: 指定HTTP請求的類型為GET。
-u http://10.0.20.10: 指定目標服務器的URL為http://10.0.20.10。
-x 24: 設置攻擊時使用的線程數(shù)為24。
-p 3: 設置慢速攻擊的延遲參數(shù),這里設置為3秒。
解釋:
通過這個命令,slowhttptest將會模擬2000個客戶端對http://10.0.20.10的GET請求,其中會包含Slow Headers攻擊和Slow Read攻擊,并持續(xù)5分鐘。攻擊過程中每10秒執(zhí)行一次攻擊,攻擊的延遲設置為3秒,使用24個線程進行攻擊。最后,攻擊結(jié)果會輸出到名為output的文件中。
在上面第一張圖片中,您可以看到攻擊的開始,在第二張圖片中,您可以看到攻擊的結(jié)束,每 5 秒鐘就會更新一次狀態(tài),實時報告已建立的連接、打開的連接和關閉的連接。
如上圖片是ntopng的主屏幕。
大約 30 秒后,Ntopng 檢測到一次檢測到的掃描,特別是Slow Header攻擊沒有掃描到,但 Ntopng 報告主機 10.0.10.10 和服務器 10.0.20.10 之間發(fā)生了超過 32 個不完整的 HTTP 流。當數(shù)據(jù)流得分/源數(shù)據(jù)流/目標數(shù)據(jù)流之和大于設定值(本例中為默認值 5000)時,Ntopng 會報告警報 SCORE THRESHOLD EXCEED,即 "超過得分閾值(在上一主題中解釋過)"。
Ntopng 還會報告與 HTTP 數(shù)據(jù)流相關的警告,這種情況發(fā)生在網(wǎng)絡中存在大量活動數(shù)據(jù)流、資源利用率高、安全隱患大的時候。顯然,有必要了解流量模式是預期的還是異常的。在我們的案例中,顯然存在持續(xù)的 DoS 攻擊,因為有數(shù)以百計的數(shù)據(jù)流具有相同的源 IP。
F1 F2
這兩張圖是 -o -g 選項創(chuàng)建的 HTML 輸出圖,從圖 F1 中可以看出,在前 10 秒內(nèi)建立了 750 個連接,并打開了另外 750 個連接,這反映了命令中設置的選項,即以每秒 300 個連接的速度連接 2000 個連接。然而,在達到所需的 2000 個連接之前,服務器由于響應時間超過 3 秒而不可用,選項 -p 3
F1→ slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 3
第二張圖表示始終可用的服務(綠色區(qū)域),這是因為我出于測試目的將 -p(http 響應的等待時間間隔)設置為 225,在現(xiàn)實中,服務器響應的等待時間如此之長是不可想象的。
F2→slowhttptest -H -c 2000 -g -o output -i 10 -r 300 -t GET -u http://10.0.20.10 -x 24 -p 225
時間戳顯示幀與幀之間的間隔為 10 秒;該間隔與命令中的 -i 設置相對應。
一個小問題是,所有 HTTP 請求都會超時關閉,這意味著連接會被服務器強制關閉。
HTTP狀態(tài)代碼408 "請求超時 "表示服務器因請求超時而終止連接。當服務器在允許的最長時間內(nèi)沒有收到客戶端的完整請求時,就會返回該代碼。所有請求都以這種方式結(jié)束,因此我們可以說服務器在應用層受到了 DoS 攻擊。
通過觀察ntopng提供的流量數(shù)據(jù),可以發(fā)現(xiàn)可能的DoS攻擊跡象,比如異常的流量模式、異常的連接請求等。ntopng能夠提供關于網(wǎng)絡流量的實時和歷史信息,這使得管理員能夠觀察流量變化并可能識別出與DoS攻擊相關的異常模式。
要更好地檢測和應對DoS攻擊,通常需要結(jié)合使用多種安全工具和技術,包括入侵檢測系統(tǒng)(IDS)、入侵防御系統(tǒng)(IPS)、防火墻、負載均衡器等。這些工具可以幫助監(jiān)控和過濾網(wǎng)絡流量,并采取相應的措施來防御和減輕DoS攻擊的影響。
審核編輯 黃宇
-
流量監(jiān)控
+關注
關注
0文章
17瀏覽量
7373 -
DoS攻擊
+關注
關注
0文章
7瀏覽量
3347
發(fā)布評論請先 登錄
相關推薦
評論