Linode 網頁伺服器遭受封包洪流 Ping Flood 攻擊紀錄

本篇紀錄我的伺服器關閉 Linux 的 ICMP 功能,避免封包洪流 Ping Flood 攻擊的過程。

最近發現我的 Linode VPS 伺服器有異常的流量,檢查後發現是有人蓄意以密集的 ICMP 封包攻擊伺服器,也就是用常見的 Ping 一直送封包過來的意思,因為最近真的很忙,所以也不想做太多處理,索性直接關掉 Linux 的 ICMP 功能,把這些浪費網路資源的流量擋掉,以下是處理過程與紀錄。


由於今天剛好在升級 Linode VPS,所以在處理升級的過程中,會特別觀察一下流量的狀況(下圖)。在處理 VPS 升級的過程中會將伺服器關機,所以中間會有一小段沒有流量,這是正常的,但是仔細看卻發現平常的流入的網路流量過高,又非常穩定,看起來就是有網路攻擊行為。

網路流量

再看一下整個月的流量圖,很明顯就可以看出這幾天的流量有異常增加。

網路流量

登入伺服器,用 iftop 看了一下,發現是一個台灣的 IP 一直有大量的網路流量。

iftop 畫面

tcpdump 看一下網路封包的狀況:

tcpdump -i eth0 host 112.104.32.195

tcpdump 輸出

tcpdump 的輸出可以看出,我們的伺服器與這台機器之間傳送的資料,全部都是 ICMP 的封包。接著使用 tcpdump 抓一個 ICMP 的網路封包下來看一下:

tcpdump -nnvXSs 0 -c1 icmp

ICMP 網路封包

封包的類型屬於 echo request,這個狀況看起來大概就是用 Ping 一直送大量的封包給伺服器,試圖癱瘓伺服器的網路,所以我乾脆直接把伺服器的 ICMP 功能關掉(反正平常也很少會用到它):

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

關掉之後,用 iftop 再看一下,流量瞬間下降很多,往外的 ICMP echo reply 完全沒有了,只剩下少量來自於這台主機的 ICMP echo request 流量:

iftop 畫面

而伺服器的流量也恢復到比較正常的狀態,不過雖然系統直接忽略 ICMP 的封包、不予回應,但是在 Linode 的流量上面依然看得到少量流入的封包流量(也就是攻擊者發出的 ICMP echo request 網路封包):

網路流量

過了幾個小時之後,攻擊者關閉了發送封包的程式,所以流量又往下降了一次,這次就真的恢復正常了:

網路流量

若要永久關閉 ICMP,則在 /etc/sysctl.conf 中加入:

# Disable ICMP
net.ipv4.icmp_echo_ignore_all=1

若要立即讓系統根據設定檔更新目前的設定,可以執行:

system -p

若要從防火牆擋掉 ICMP 的封包,可以參考以下指令:

# 新增過濾 ICMP 封包請求
firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

# 新增過濾 ICMP 封包回應
firewall-cmd --permanent --zone=public --add-icmp-block=echo-request

# 清除過濾 ICMP 封包請求
firewall-cmd --permanent --zone=public --remove-icmp-block=echo-reply

# 清除過濾 ICMP 封包回應
firewall-cmd --permanent --zone=public --remove-icmp-block=echo-request

# 重新載入防火牆規則
firewall-cmd --reload

# 查看 public 區域永久的防火牆設定
firewall-cmd --permanent --zone=public --list-all

法律問題

依據《刑法》第 360 條規定:「無故以『電腦程式』或其他電磁方式干擾他人電腦或其相關設備,致生損害於公眾或他人者,處三年以下有期徒刑、拘役或科或併科十萬元以下罰金。」。簡單來說,使用「分散式阻斷攻擊」(DDoS)或「封包洪流」(Ping Flood)等手法,攻擊網站伺服器,雖未入侵他人電腦,但靠程式發送大量封包,以達癱瘓特定網站之目的,也足以構成此項犯罪。

所以只要在自己的伺服器上面,用 tcpdump 把攻擊的封包直接儲存下來,就是最直接、且明確的犯罪證據:

tcpdump -i eth0 host 112.104.32.195 -w output.pcap

若要讀取儲存下來的 pcap 封包檔案,可以使用 tcpdump-r 指令:

tcpdump -r output.pcap

封包洪流(Ping Flood)攻擊封包

若要報案的話,直接去警察局做筆錄即可,這種案件警察受理之後應該會轉給偵九隊,接著就會去 ISP(例如中華電信或遠傳)依據 IP 位址調閱那個犯罪嫌疑人的資料。

另外我發現現在警察局還有網路報案的服務,可以直接上傳檔案,我想下次如果還遇到這樣的狀況,我就乾脆把封包都錄起來,直接去報案網頁上傳這些封包當作證物,跟大家分享警方偵辦案件的過程。

參考資料:RainssnDaniel Miessler巴哈姆特電玩資訊站

網頁空間

2 Comments

  1. 在想法律問題的時候,如果我防禦良好,使他不至於對我發生損害,那這樣的話是不是就告不成他了。

    • G. T. Wang

      就法律上來說,應該是這樣沒錯。不過攻擊流量大的話,都會產生額外的網路費用,也許就可以視為損害。

Leave a Reply