iT邦幫忙

0

請問防止DDoS黑名單IP方式會做在硬體還是防火牆還是APP層?

  • 分享至 

  • xImage

請問防止DDoS黑名單IP方式會做在硬體還是防火牆還是APP層?

防 Chi-Hui Chou 先生提到的攻擊

[壓力測試]
最近想要玩c10k,所以想要請教有比較好的stress testing tools,我目前用的方法比較笨,用Apache Benchmark開4台server x 2500的concurrency。
還有這種工具可以當作類似DDoS的攻擊手法?剛剛不小心打掛一個網站XD

我的防止方式就是在 spring boot 或是 asp.net core mvc 的 controller 抓取IP
並建立一個 緩存 資料結構如 [{ ip="xxx.xxx.xxx.xxx",單日訪問次數=120 }]
一個黑名單緩存 [{IP="xxx.xxx.xxx.xxx",封鎖時間="2020-09-10 08:00:00.001"}]

會建立一個 filiter 每次請求都需要先經過此過濾器,假如單日訪問超過NNNN次將會列入黑單名單緩存
在黑名單名單的IP返回404給對方

請問大家會如何做呢?

黑名單就不用回給對方 404 了 XDD
不然照樣用流量攻擊打爆你
直接 drop 掉就可
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
16
Ray
iT邦大神 1 級 ‧ 2020-09-10 15:47:37
最佳解答

不管你用甚麼擋, 我來描述幾個情境:

情境A:

  1. 你設定每天來一萬次的 IP 就擋
  2. 某個 IP 一秒鐘打進 100 萬次, 然後
  3. 你的 Web 一秒就掛了, 但是沒擋到這個 IP (因為還沒一天)

情境B:

  1. 你設定每天來一萬次的 IP 就擋
  2. 黑客用 IP A 測試, 發現超過一萬次被擋
  3. 黑客改用 IP B+C+D+E, 每天各打一萬次
  4. 結果你收到四萬次攻擊

情境C:

  1. 你設定每天來一萬次的 IP 就擋
  2. 黑客用 IP A 測試, 發現超過一萬次被擋
  3. 黑客改用 IP B 只打 5000 次
  4. 你發現黑客降成 5000 次, 於是將門檻降到五千次就擋
  5. 黑客改用 IP C 只打 1000 次
  6. 你發現黑客降成 1000 次, 於是將門檻降到一千次就擋
  7. 黑客改用 IP D 只打 200 次
  8. 你發現黑客降成 1000 次, 於是將門檻降到兩百次就擋
  9. 黑客改用 IP E 只打 5 次
  10. 你發現黑客降成 5 次, 於是將門檻降到五次就擋
  11. 然後你的網站就沒人可以上得去了....

==== 我是分隔線

回到樓主的問題: DDoS 應該用 AP 擋? 還是設備擋?

我一直在宣導資安的幾個原則:

縱深防禦

決戰境外

你要讓黑客:

進不來/跑不動/拿不走/看不懂

縱深防禦講的是:
資安沒有 100% 的防禦方法, 每一種防禦措施都有些微的缺陷, 而且只要一漏就是全盤皆輸. 所以不要只依賴一種防禦措施, 能部署越多層, 越多不同維度, 越多不同功能, 甚至同功能有不同廠牌, 你被黑客挖到漏洞的風險就越低...這個概念在台灣宣導十年以上了, 目前金融界已經普遍採用...

決戰境外指的是:
不要把 DDoS 的交戰點放在自己家裡, 離你家越遠, 你的存活機率越高, 因為距離越遠, 你能部署不同防禦力的空間就越多, 能過濾掉的惡意活動也越多. 一層只能擋 10Gbps, 10 層就能擋 100Gbps...你把決戰點拉到自己 Web 裡面的 AP, 不但是在自己家裡打仗, 而且你只靠這一關來擋, 一但被攻破, 就整個毀了....

我的 L3 防火牆會有兩套以上不同廠牌, WAF 防火牆也會有兩套不同廠牌, 甚至可能在 AP/OS 內部署 RASP; IDS 會有 Host-based 和 Network-based 兩種不同維度, OS 底層雖有 SELinux 權限防護, 但 Rootkit hunter, Anti-virus 即時掃描也還是不可少的; 最外面除了 CDN 隱藏 IP, 還會有選擇性的 Captacha 圖靈緩解, 我的 SQL 前端還有 SQL 防火牆(不是L3或WAF喔, 是會看 SQL 指令的L7防火牆); 然後, 在穿越過這麼多種不同防禦之後, 我還能維持線上同時一萬人的網站服務....

AP 請用來防護商業邏輯的漏洞就好(因為這是外部設備辦不到的), 剩下的能量要留給正常用戶使用, 不要隨便浪費...網路層 L3~L7 的威脅請用 Web 以外的設備來處理...

強力阻擋, 不是防禦的唯一手段, 他甚至可能造成你的業務損失...
準確辨識之後, 再決定要不要阻擋, 才是讓業務順行的聰明作法...

還有, 找廠商也要找對, 有些廠商只會收你錢, 真的出事了就兩手一攤:
https://ithelp.ithome.com.tw/questions/10200153
你這個案子很多廠商可以解, 但應該找到對的, 它們卻只找便宜的..
(都已經在打仗了, 還在計較軍費談節省, 那就一定會輸的)

其實 DDoS 勒索者很聰明, 他知道要花多少錢才能擋住他發動的攻擊, 所以她的開價會比你去買(可以擋住他的) Anti-DDoS 費用少很多....大概是 1:5~1:10 左右...所以不要傻傻的, 以為只花比勒索金額低很多的錢, 就能擋得住它們....他就是咬定你一次花不下去那麼多錢買到足夠的 Anti-DDoS, 所以會乖乖付給它們...

看更多先前的回應...收起先前的回應...

只有他可以上得去
https://ithelp.ithome.com.tw/upload/images/20200910/20001787t936Rn927C.jpg

正一 iT邦新手 5 級 ‧ 2020-09-10 16:01:33 檢舉

請問前輩是否也是花錢請廠商

更新 : 看到新的內容了!

請問前輩是否也是花錢請廠商

這我知道
雷神大大不花錢請廠商,因為
他自己就是別人花錢請的廠商
/images/emoticon/emoticon32.gif

Ray iT邦大神 1 級 ‧ 2020-09-10 16:08:39 檢舉

我比較想問....

你們是怎麼把字放大的啊?..我怎麼都找不到....

MK iT邦新手 5 級 ‧ 2020-09-10 16:14:01 檢舉

我猜是用 Markdown 來試試

MK iT邦新手 5 級 ‧ 2020-09-10 16:15:01 檢舉

#空白內容內容內容

大概是這樣

前面加個 # 即可(要一個空白字元隔開)

# 這是H1標題
## 這是H2標題
### 這是H3標題
#### 這是H4標題
##### 這是H5標題
###### 這是H6標題 

雷神大最棒了

這個我來,我會。

# 這是H1標題
## 這是H2標題
### 這是H3標題
#### 這是H4標題
##### 這是H5標題
###### 這是H6標題

這是H1標題

這是H2標題

這是H3標題

這是H4標題

這是H5標題
這是H6標題

XD

Ray iT邦大神 1 級 ‧ 2020-09-10 16:35:46 檢舉

啊~~~奇怪的知識增加了....

MK iT邦新手 5 級 ‧ 2020-09-10 16:43:30 檢舉

哈哈哈哈哈哈哈

小魚 iT邦大師 1 級 ‧ 2020-09-10 17:27:50 檢舉

小小魚到此一遊

尼克 iT邦大師 1 級 ‧ 2020-09-10 17:44:57 檢舉

長知識了!

hsiang11 iT邦好手 1 級 ‧ 2020-09-11 00:05:56 檢舉

被大大小小的字形洗版了XDD

長知識了!

2
japhenchen
iT邦超人 1 級 ‧ 2020-09-10 16:13:59

沒人會想用 APP擋

就跟現在這場疫情一樣,你要用身體的免疫系統去擋?馬照跑,舞照跳.......
還是用口罩或是良好的生活習慣去擋?

用好的生活習慣擋,擋不到還有口罩擋,漏網之魚你還可以用免疫系統去擋,能進的來的少之又少

如果你完全不用身體外在的系統擋,而是直接誘敵深入打巷戰....

等你擋下了,CPU燒了,攻擊方的IP清單也把你的硬碟給塞爆了,當然,直接打進電腦的攻擊也都一定會吃掉可憐兮兮的連線數,想進來的進不來,你不歡迎的塞整條網路

正一 iT邦新手 5 級 ‧ 2020-09-10 16:33:39 檢舉

原來如此,感謝

0
advanced
iT邦見習生 ‧ 2020-09-11 23:41:10

真正的 DDoS 一般的防火牆是擋不下來的。
要能擋下 DDoS 目前多數使用多個邊緣路由器,先稀釋攻擊者攻擊單台路由器的壓力,或者針對該邊緣進行黑洞處理,之後針對承受第一擊的路由器進行初步過濾。

接著會接入第二層的路由器,或者防火牆,進行比較嚴格的清洗 (越嚴格其實相對來說就是會把更多正常服務給阻擋)

真正的 DDoS 需要考量的最主要是:

  1. 頻寬夠不夠大,不夠大攻擊一來就先垮了
  2. 交換機、路由器轉發效能好不好
  3. 防火牆處理效能
1
deva_deva
iT邦見習生 ‧ 2020-09-12 02:00:35

假如小量攻擊 (N台聯合攻擊..只能靠清洗中心)
1.使用 MikroTik RB4011 4核心 1.4GHz 以上等級的路由器
2.啟動 DDos 防禦

====(設定10秒內 只能連線50次 超過放進阻擋名單中10分鐘)===
方式一 (192.168.88.0/24不限制)
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=detect-ddos comment="DDoS-1"
add chain=detect-ddos dst-limit=50,50,src-and-dst-addresses/10s action=return comment="DDoS-2"
add chain=detect-ddos src-address=192.168.88.0/24 action=return comment="DDoS-3"
add chain=detect-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m comment="DDoS-4"
add chain=detect-ddos action=add-src-to-address-list address-list=ddoser address-list-timeout=10m comment="DDoS-5"
add chain=forward connection-state=new src-address-list=ddoser dst-address-list=ddosed action=drop comment="DDoS-6"

方式2: (192.168.88.1 不限制而已)
/ip firewall filter
add chain=forward connection-state=new action=jump jump-target=block-ddos comment="DDoS-1"
add chain=forward connection-state=new src-address-list=ddoser dst-address-list=ddosed action=drop comment="DDoS-2"
add chain=block-ddos dst-limit=50,50,src-and-dst-addresses/10s action=return comment="DDoS-3"
add chain=detect-ddos src-address=192.168.88.1 action=return comment="DDoS-4"
add chain=block-ddos action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m comment="DDoS-5"
add chain=block-ddos action=add-src-to-address-list address-list=ddoser address-list-timeout=10m comment="DDoS-6"

正一 iT邦新手 5 級 ‧ 2020-09-12 12:37:29 檢舉

您的回覆太厲害了!
感恩!!

我要發表回答

立即登入回答