打上補丁,實施應用緩解措施,別再讓黑帽子用奇奇怪怪的 SACK 玩弄你的設備了。
聯網 Linux 服務器、PC、智能手機、平板電腦和各種小設備都有可能被惡意構造的網絡包搞崩潰,要不就是網速受到嚴重影響。同樣的攻擊甚至 FreeBSD 都有可能淪陷。
當今世界大量東西都是建立在 Linux 基礎上的,從網絡電視、路由器、恒溫器、電燈開關、閉路電視攝像頭和掃地機器人,到服務器、PC、安卓及 ChromeOS 設備、智能冰箱、透析機、車載資訊娛樂系統、牽引器、施工設備和鈾濃縮機等等,只要有漏洞,全都可能被黑客搞宕機。
換句話說,陌生人可以通過網絡向你的設備 ping 些數據,如果你防護不周,那就有可能宕機或斷網。既不高端,也不可怕;但如果腳本小子發起一波又一波的漏洞利用,對沒網絡不成活的網民來說就是極大的困擾了。
補丁和緩解措施都是現成的,如果需要的話可以手動應用,也可以等供應商推送安全補丁到風險設備上。或者采取變通方案:把 “/proc/sys/net/ipv4/tcp_sack” 設置成 “0”。
都是SACK惹的禍
ping 攻擊的核心是別稱 SACK Panic 的 CVE-2019-11477 編程漏洞:可遠程搞崩 Linux 內核 2.6.29 及更高版本系統的漏洞,2.6.29 版內核已發布 10 年之久。
還有其他 3 個相關漏洞:
1. CVE-2019-11478,別稱 SACK Slowness,影響 4.15 前的 Linux 內核版本,所有版本均受一定程度的影響;
2. CVE-2019-5599,也稱 SACK Slowness,使用 RACK TCP 堆棧影響 FreeBSD;
3. CVE-2019-11479,低 MSS 值觸發的過多資源消耗,影響所有 Linux 內核版本。
這些漏洞是 Netflix 信息安全人員喬納森·魯尼 (Jonathan Looney) 發現并報告的。6月18日發布于 GitHub 上的安全漏洞咨詢對此有所描述。
幾個漏洞基本上都利用了 Linux 默認開啟的 TCP SACK 功能。SACK (選擇性確認:Selective ACKnowledgement)功能旨在加速計算機間的數據傳輸,可以讓數據接收方更準確地告訴發送方自己收到了多少數據,還需要重發哪些數據。理想狀態下,該功能應能減少需要重發的數據,收發雙方都能更快速地傳輸文件和其他信息。有些管理員會因為各種各樣的原因禁用該功能,其中一個原因就是有些操作系統對此功能的實現實在不怎么好。
利用 CVE-2019-11477 漏洞,一連串 TCP SACK 響應可致 Linux 內核意外達到內部數據結構上限,觸發致命混亂。Red Hat 在6月18日發布的技術摘要中稱,其他幾個影響 Linux 的漏洞則會迫使系統消耗大量資源,拖慢運行速度。
另外,CVE-2019-5599 是 FreeBSD 在 SACK 響應處理方式上的漏洞:可破壞跟蹤 SACK 的內部數據結構,致使內核遍歷過長鏈表,拖慢系統運行速度。
截至目前,Red Hat、AWS、SUSE 和 Grsecurity 均發布了漏洞咨詢或不日推出漏洞補丁的聲明,其他供應商應該也會很快跟進。
不管怎樣,禁用 SACK 是目前比較明智的權變措施,但要注意禁用之后網絡吞吐率可能會受影響。
Netflix 安全漏洞咨詢:
https://github.com/Netflix/security-bulletins/blob/master/advisories/third-party/2019-001.md
Red Hat 技術摘要: