為何修復Shellshock漏洞像打地鼠
GNU Bourne Again Shell (bash)的 Shellshock 漏洞影響了廣泛使用 bash 的 Unix/Linux 服務器,由于它允許遠程執行代碼獲得與系統管理員相同的權限去控制系統而被認為破壞力超過 Heartbleed。而更糟糕的是,bash 官方補丁沒有完全修復問題。為何修復 Shellshock 漏洞就像打地鼠, 堵了一頭另一頭又冒出?Shellshock 漏洞的工作原理是:攻擊者可以向任何使用 bash 交互的系統如 Web 服務器、Git 版本控制系統和 DHCP 客戶端發送請求,請求包含了以環境變量儲存的數據。環境變量就像是操作系統的剪切板,儲存了幫助系統和軟件運行的信息。在本案例中,攻擊者發送的請求是精 心構造的,誘騙 bash 將其視為命令,bash 像平常執行良性腳本那樣執行命令。
這種欺騙 bash 的能力就是 Shellshock 漏洞。官方發布的補丁被發現仍然存在相似的漏洞。計算機科學家 David A. Wheeler 在郵件列表上指出,bash 的解析器存在許多漏洞,因為它在設計時就沒有考慮過安全性,除非它停止解析環境變量,否則修正就像是打地鼠。Wheeler 建議打上非官方的補丁修正 bash,這些補丁會破壞向后兼容性。其中一個補丁來自德國計算機安全專家 Florian Weimer,他的補丁為 bash 函數加入前綴,防止它們被指明為系統變量。另一個補丁來自 NetBSD 開發者 Christos Zoulas 博士,他的補丁只允許 bash 在收到明確請求時輸入環境變量,消除安全風險。FreeBSD 的 bash 實現則在最新的修正中默認關閉了輸入功能。Wheeler 等人相信,雖然破壞了向后兼容性,但不會影響太多的 bash 依賴系統。蘋果的 OS X 系統也存在 Shellshock 漏洞,蘋果表示大部分用戶不會面臨風險,只有配置了 advanced UNIX services 的用戶會受到影響。OS X 使用了 v3.2.51.(1) 的 GNU bash,新版本 bash 許可證換到了條款更嚴格的 GPLv3,所以蘋果仍然使用舊版本。
<span id="shareA4" class="fl">
</span></div>