天天看點

為何修複 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,是以蘋果仍然使用舊版本。