電腦安全-L7
Denial of Service (DoS) Attack 定義:
- by NIST [CICH12]
DoS是一種會阻止或削弱對網路、系統或應用程式的授權使用的行為,其方式是耗盡資源 (exhausting resources),例如中央處理器 (CPU)、記憶體、頻寬以及磁碟空間。
Uncovering Insecure Designs of Cellular Emergency Services (911)
Cellular Emergency Services (911)
Emergency services是處於緊急狀況的人們的重要生命線- 全球部署的
cellular networks成為緊急使用者最容易接取的通道 - 為了確保行動緊急服務的
availability- 聯邦通訊委員會 (FCC) 規定,行動電信業者必須將所有無線 911 通話,
不論其通話驗證流程為何,一律轉送至公共安全應答中心 (PSAP) - GSMA 的標準要求,所有行動電話即使
沒有 SIM 卡也必須支援緊急服務,且對行動用戶免費 - 3GPP 標準要求,緊急服務的優先權必須高於其他行動通訊服務
- 聯邦通訊委員會 (FCC) 規定,行動電信業者必須將所有無線 911 通話,
Our Findings
- 行動通訊緊急服務是可以被
阻斷 (deniable)且可以被濫用 (abusable)的 - IMS Emergency Service Flow:
Emergency IP-CAN Session Establishment: 讓 UE 取得緊急用的 IP 連線,以便與 IMS 伺服器通訊IMS Emergency Registration: 透過 IPSec 在 UE 與 IMS 伺服器之間建立安全通訊IMS Emergency Session Establishment: 使緊急 UE 能透過 IMS 伺服器,與 PSAP 建立緊急通話/簡訊會話
Denial of Cellular Emergency Service
- V1: Unverifiable emergency IP-CAN session requests
- 無法區分第二個 IP-CAN 會話建立請求是由正常使用者還是攻擊者發送的
- 當收到重複的 IP-CAN 會話建立請求時,根據標準,4G/5G 基礎設施有兩種處理方式
- 拒絕該重複請求,或接受該重複請求但保留現有的緊急 IP-CAN 會話 (4G)
- 一律拒絕重複請求 (5G)
- 表面上看起來,拒絕重複請求是正確的?
- 實際情況更複雜,這些重複請求可能來自正常的使用者
- 驗證: 某些電信商在收到重複請求時會中斷現有的連線,導致合法的通話被切斷
- V2: Improper Cross-layer Security Binding
- UE 與 IMS 伺服器之間的安全通訊依賴
IPSec - 然而,IPSec 的加密與完整性金鑰是從
IMS emergency registration (SIP registration)中衍生出來的- 網路層安全 (IPSec) 被不必要地綁定到應用層安全 (SIP)
- 驗證此漏洞得到兩個觀察結果
- UE 並未執行 IMS emergency registration
- SIP INVITE 訊息全部以明文傳送,沒有
confidentiality/integrity保護
- UE 與 IMS 伺服器之間的安全通訊依賴
- Denial of Cellular Emergency Service (DoCES) Attacks
- Phase I: 已取得 IP 連線,但尚未撥打電話
- UE detaching: 發送
重複的 attach (V1)
- UE detaching: 發送
- Phase II: 電話已撥出,但尚未被 PSAP 接聽
- Call cancel: 發送
偽造的 SIP CANCEL 訊息 (V2)
- Call cancel: 發送
- Phase III: 電話已撥出且已被接聽
- Call drop: 發送
偽造的 SIP BYE 訊息 (V2)
- Call drop: 發送
- Phase I: 已取得 IP 連線,但尚未撥打電話
Denial-of-Service Attacks
- 透過妨礙或完全阻斷某些服務的提供來破壞 availability
- ex: 大量虛假請求淹沒網站伺服器
- Nowadays: distributed denial-of-service (
DDoS) attacks- 由於網際網路頻寬的成長
Categories of Resources
Network bandwidth- 與伺服器連接到網際網路的網路鏈路容量有關
- 對大多數組織而言,這指的是他們連接到網際網路服務提供商 (ISP) 的連線
System resources- 目標是讓網路處理軟體過載或當機
Application resources- 通常涉及大量請求,每一個請求都消耗大量資源
- 限制伺服器回應其他使用者請求的能力
Classic DoS Attack I
Ping flooding attack- 流量:ICMP 回聲請求與回應封包
- 目標:超過目標組織網路連線的承載能力
- 流量可能在路徑上較高容量的鏈路被處理,但隨著容量下降,封包會被丟棄
- 從攻擊者角度的兩個缺點:
- 攻擊來源很容易被識別
- 攻擊會反映在 source system
- 網路效能會明顯受到影響 (會被發現)
Source Address Spoofing
-
偽造來源 IP 位址
- 透過作業系統的 raw socket 介面實現
-
讓
Ping flooding attack的 ICMP 回應封包不再回傳到攻擊來源 -
隨機偽造來源位址:
backscatter traffic -
為什麼偽造來源位址這麼容易?
- TCP/IP 的設計背景: 在合作、信任的環境中發展
- 沒有內建機制來驗證來源位址是否有效
- 解決方法:
- 在 routers 上進行過濾以確保來源正確性
- 然而許多 ISP 仍未實作此類過濾
- TCP/IP 的設計背景: 在合作、信任的環境中發展
Classic DoS Attack II
TCP SYN spoofing- 目標:攻擊網路伺服器回應 TCP 連線請求的能力
- 讓用來管理這些連線的表格溢出 (被填滿)
- 產生大量偽造的連線請求送到伺服器
- 合法使用者被拒絕存取
- Different from the basic flooding attack
- 實際 SYN 流量可能相對較低
- 但足以讓 TCP 已知連線表持續被填滿
Flooding Attacks
-
Classified based on
network protocols -
目的:讓連到伺服器的某條網路鏈路容量超載
-
攻擊受限於
single system -
ICMP flood
- 使用 ICMP echo request 封包的 ping 洪水攻擊
- 傳統上網路管理員會允許這類封包進入網路
-
UDP flood
- 使用 UDP 封包發送到目標系統的特定埠號,例如 DNS UDP flood
-
TCP SYN flood
- 向目標系統發送 TCP 封包
- 攻擊目標是
total volume of packets,而不是 system code
Distributed Denial of Service (DDoS) Attacks
- 使用
multiple systems發動攻擊 - 利用惡意軟體入侵系統,並安裝 attack agent (被控制的系統為
zombie) - 被單一攻擊者控制的大量系統集合:
殭屍網路 (botnet)
- 最早且最知名的 DDoS 工具: Tribe Flood Network (TFN) - Mixter
- 功能: ICMP flood, SYN flood, UDP flood, and ICMP amplification
- 隱蔽方式:
- 大量被入侵的系統
- 加密通訊
- 現代 DDoS 工具
- 隱蔽方式:
- 使用 IRC 或 HTTP servers 與 agents 溝通,而不是傳統的 handler
- Agents authentication
- 隱蔽方式:
- 最好的防禦:防止你的系統被入侵
Application-Based Bandwidth Attacks
強迫目標執行消耗資源的操作
SIP (Session Initiation Protocol) Flood
SIP: 用於 VoIP (網路語音) 中的通話建立協定- 單一 INVITE 請求會觸發相當可觀的資源消耗
- 攻擊:
- 用於處理 INVITE 請求的伺服器資源
- 網路容量被消耗
- 影響: 合法的來電無法被允許
HTTP-based Attacks: HTTP Flood
- 用大量 HTTP 請求轟炸 Web servers,消耗大量資源
- Example I: an HTTP request to
download a large file- 消耗記憶體、處理能力與傳輸資源
- Example II:
Spidering(爬蟲)- 機器人從一個指定的 HTTP 連結開始,並以遞迴方式追蹤網站中的所有連結
HTTP-based Attacks: Slowloris
- 佔用 Web server 所有可用的
request-handling threads - 發送永遠不會完成的 HTTP 請求
HTTP protocol規定: 必須使用空白行來表示 request header 結束、payload 開始- Step 1: 送出一個沒有空白行的不完整請求
- Step 2: 定期送出額外的 header 行以維持連線存活
- 無法被基於特徵碼 (signature-based) 的防護系統偵測: 看起來是合法 HTTP 流量
Reflector and Amplifier Attacks
- 正常的 server systems 被作為攻擊的中介者
- 更容易部署: 因為它們對封包的處理完全是正常的
- 更難追溯到真正的攻擊者
Reflection Attacks
- 向中介系統上的某個已知服務發送封包,並
偽造來源位址為受害者的 IP - 中介系統會將回應封包發送給受害者
Intermediary systems(中介系統): 高容量的網路伺服器或路由器- Fundamental issue:
spoofed-source packets
Amplification Attacks
- 將請求導向某個網路的廣播位址 (broadcast address)
- 利用中間網路中大量主機都會處理的服務
- ex: ping, suitable UDP services (echo)
- TCP 服務不能用於這種攻擊
- TCP 為一對一連線,無法 broadcast
- 防禦方式: 不允許外部封包被路由到網路內的定向廣播 (directed broadcast)
- 其他防禦方式:
- 阻擋偽造來源 IP 位址
- 限制網路服務 (echo/ping) 不能從外部存取
DNS Amplification Attack
- 使用發送到合法 DNS 伺服器的封包作為中介
- Amplification: converting a small request to a much larger response
- 60-byte UDP 請求 -> 512-byte UDP 回應
Defenses
- DoS Attack 無法被完全防止
- 高流量可能是合法的
- 熱門網站
- Described as
slashdottedorflash crowd
- 常見應對方式: 提供大量額外網路頻寬與複製的分散式伺服器
- 高成本
Flooding Attacks
- 阻擋偽造的來源位址
- 在盡可能接近來源端的路由器上進行
- 使用過濾機制來確保封包能夠回到其宣稱的來源位址
- 對某些特定類型的封包施加傳送速率限制
SYN Spoofing Attacks
- 修改 TCP 連線處理機制的實作方式
- 將關鍵資訊以加密方式編碼在一個
cookie中,並作為伺服器的初始序列號 (Initial Sequence Number) 傳送
- 將關鍵資訊以加密方式編碼在一個
- Selective drop: 當 TCP connections table 溢出時,丟棄未完成連線的項目
- 調整參數: 連線表大小與逾時時間
Others
- 阻擋 IP 定向廣播 (directed broadcast)
- 阻擋可疑的服務與其組合
- 使用圖形驗證機制 (captcha) 來避免
application attacks,以區分合法的人類請求 - 良好的整體系統安全實務
- 在需要高效能與高可靠性的情況下,使用鏡像與複製的伺服器





