惡意網路:IP 範圍如何評分與分級
惡意網路是指 IP 位址空間中的區塊(通常以 CIDR 範圍表示),獨立的威脅情資來源將其標記為託管垃圾郵件、惡意程式、殭屍網路或攻擊基礎設施,而 ipto 會依這些來源的一致程度對它們排序。ipto 不採用單一的封鎖清單,而是為每個範圍給予 1 到 10 的分數與風險等級,讓你自行決定處置的強度。
什麼算是惡意網路
單一行為不當的位址只是一起事件;整個範圍反覆出現在威脅情資來源中,則是一種模式。對防禦者而言,這種模式通常比任何單一位址更有價值,因為攻擊者輪替位址的速度比情資來源收錄的速度更快。惡意網路頁面正是因此追蹤範圍而非單一主機。像 /24 這樣的項目,代表該子網路中全部 256 個位址都受到牽連:整個區塊配發給敵意基礎設施,或正被其積極使用,而不只是原本乾淨的配置中有一台被標記的主機。
資料每六小時從公開來源重新建置一次,與其他威脅情資來源的更新頻率相同。目前的範圍來自三個輸入:IPsum 彙整威脅清單、Spamhaus DROP 與 Spamhaus EDROP。這些來源本身都是其他訊號的組合,因此 ipto 認為它們之間的一致性才是值得評分的對象。頁面可依子網路搜尋,也可依等級或來源篩選,每次分頁顯示 200 筆項目。相同的資料也可從 /v1/abuse 以 JSON 取得,支援 tier、source、q 與 page 查詢參數。
分數與等級如何決定
評分方式刻意保持簡單,便於稽核。IPsum 會為每個位址公布收錄它的獨立封鎖清單數量。ipto 只保留至少被 3 份清單列入的位址,分數即為該數量,上限為 10。Spamhaus DROP 的項目起始分數為 10,因為它們涵蓋遭劫持或由犯罪營運者經營的空間;EDROP 項目則從 9 開始。當同一個範圍出現在多個來源時,取最高分,因此對該範圍而言,Spamhaus 的收錄一律優先於 IPsum 的計數。
等級直接由分數推導而來:
- Critical(8 到 10):可信度最高的一組。這些通常是由犯罪基礎設施營運者經營的區塊,或正被積極濫用的遭劫持空間,預期會出現垃圾郵件、惡意程式散布或憑證竊取。
- High(5 到 7):在多個來源中被標記為敵意,但不一定是有組織的犯罪基礎設施。防彈主機(bulletproof hosting)客戶與縱容垃圾郵件的 ISP 屬於此類。
- Medium(3 到 4):被數個來源標記,但佐證程度較低。共用主機環境,以及曾有濫用紀錄但可能已易主的區塊,多半出現在這一級。
廣泛的政策可使用等級,需要為長清單排序時則使用原始分數。由於分數上限為 10,範圍不會因為又出現在另一份清單上而變得「更嚴重」,這讓量表能長期保持穩定。
範圍層級與單一 IP 的封鎖決策
單一位址檢查回答的是較窄的問題:這個特定 IP 目前是否被標記?IP 濫用檢查器以及 IP 查詢所回傳的 abuse_score 欄位就是做這件事,兩者使用相同的範圍,分數隨範圍一併提供,因此無須再發出第二次查詢。範圍層級的資料回答的則是另一個問題:來自網際網路這一帶的任何流量,是否還值得信任?
一套合理的政策階梯如下:
- Critical 範圍:在邊界直接丟棄,或在內容分析之前就拒絕 SMTP 連線,因為任何郵件層級的評分都無法讓來自敵意區塊的寄件者恢復信譽。
- High 範圍:對登入與 API 流量套用嚴格的速率限制或 CAPTCHA,這類流量正是撞庫攻擊(credential stuffing)與爬取工具常見的活動場所。
- Medium 範圍:記錄日誌並提高驗證強度,而非直接封鎖。
- 任何等級:當 SIEM 對 Critical 範圍內的位址發出警示時,自動升級處理,因為周邊脈絡會改變事件的優先順序。
請將範圍訊號與 ASN 查詢提供的網路脈絡結合。如果三個被標記的範圍都屬於同一個自治系統,決策可能應在 ASN 層級做出,而該查詢會顯示擁有者、國家與所宣告的範圍。
共用網路的注意事項
範圍封鎖有附帶成本。共用主機或雲端配置中可能有一個惡意租戶與數百個正常租戶,對整個前綴套用封鎖會連帶影響所有人。因此,在套用全面性政策之前,Medium 等級的項目值得先行檢視,尤其是面向消費者的服務,過度封鎖就意味著流失客戶。範圍也會易主:因過去濫用而被列入的區塊,現在可能屬於乾淨的擁有者,而六小時的更新週期最多只能跟上上游來源的更新速度。
另一項限制是涵蓋範圍。這些範圍是來自上述三個來源的 IPv4 CIDR 區塊與單一位址;它們並未涵蓋所有敵意網路,沒有命中結果也不代表可以信任。ipto 同樣無法偵測住宅代理,因此經由家用連線轉送的流量不會出現在這裡。請將等級視為與 VPN、Tor 及資料中心旗標並列的輸入之一,這些旗標可在威脅情資來源頁面瀏覽。關於為何來源之間的一致性很重要,請參閱黑名單佐證這篇文章。
在 ipto 上試用
開啟惡意網路頁面並篩選 Critical,即可看到最嚴重的範圍,也可以搜尋你已經懷疑的前綴。從程式碼中,請呼叫 GET /v1/abuse?tier=critical&page=0 並快取回應,該回應的快取存活時間為五分鐘。使用 abuse_score 與 is_abuser 的單一位址查詢免費且無須註冊,每天最多 1,000 次請求。