https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

無需過度恐慌,但別掉以輕心: Shellshock

2014 / 10 / 03
少林Shaolin (Security Researcher)
無需過度恐慌,但別掉以輕心:  Shellshock

自 9/24 以來,不少資訊圈朋友日以繼夜的忙碌,這都多虧了藏在 Bash 裡 22 年的安全漏洞-Shellshock (Bash CVE-2014-6271)。對於惡意攻擊者而言,這是今年來第二波淘金潮,相較於上次 Heartbleed 駭客們的刮刮樂遊戲需要拼運氣,這次的 Shellshock 只要一發現利用點,就能馬上擁有基本的系統操作權限,也難怪 NVD (National Vulnerability Database) 給予 Shellshock 最嚴重的 10.0 分影響等級。Shellshock 受影響的 Bash 版本如下:

  這次的問題出在 bash 對環境變數的解析上。若有辦法在環境變數中塞入惡意的程式碼,並且順利將這些環境變數傳入  bash,bash 就會因解析錯誤而執行惡意指令讓攻擊者能直接對系統進行基本的操作。Shellshock 之所以嚴重一來是因為攻擊語法相當簡單,只需要一行指令,就可以直接對系統進行操作;二來是因為 bash 使用範圍極廣,多款作業系統預設 shell 就是bash。常見的作業系統與其預設 shell 整理如下

   我們可以推想這次影響範圍有多廣,尤其是許多服務都架構在這之上,若遭受到攻擊,損失的可能是企業的機密資料或客戶資料。至於沒有預設使用 bash 的作業系統,也並不意味著完全沒有風險,例如 Ubuntu 在 DHCP 客戶端使用到 bash ,就仍然會有風險。

常見的 Shellshock 利用方式
Shellshock 漏洞被公布後,惡意攻擊者無不想要透過這個漏洞對伺服器進行遠端攻擊,一些遠端攻擊概念也陸續被證實。最早的公開大量掃描是由 Errata Security 在其部落格公布技術細節,他們在 HTTP 請求表頭中的 Cookie、Host、Referer 中放置惡意語法 () { :; }; ping -c 3 209.126.230.74,並且利用 masscan對全世界 HTTP 伺服器 (port 80) 進行掃描。因為一般伺服器會將 HTTP 表頭中之內容放入環境變數中,若伺服器首頁入口程式本身是 bash shell script 或者其子程序有呼叫到 bash,就會受到惡意語法的影響,執行 ping -c 3 209.126.230.74 指令。

攻擊使用CGI 的網頁伺服器
利用同樣的道理,惡意攻擊者開始在 HTTP 表頭中置入惡意的語法,大量去掃描網路上的 CGI 網頁,因為這種網頁常呼叫系統指令,所以成功機率都頗高。

建置惡意 DHCP 伺服器感染連線使用者
同時,有另一批人發現某些作業系統在進行 DHCP 連線時,會將 DHCP 伺服器傳入的一些資訊塞入到環境變數中。於是,若建置一個惡意 DHCP 伺服器,對其連線的使用者就有很高的機會遭受攻擊。這很可能被利用在滲透內部網路,而且效果非常好。

繞過 Git/Subversion 伺服器的 shell 限制
Shellshock 也常被利用來繞過伺服器的 shell 限制,最常見的就是 Git 和 Subversion 伺服器: 通常這些伺服器允許透過 SSH 連線,但登入後都對應著受限制的 shell。透過此漏洞,可以繞過 shell 的限制,執行指令。

無需過度恐慌,但別掉以輕心
不少朋友看到最近 Shellshock 的新聞報導,都十分緊張。儘管各位所使用的 bash 是含有漏洞的版本,但要成功執行攻擊手法需要許多條件,且被攻擊者從遠端攻擊的機率偏低,因此大家不需要太過恐慌。

無論是民眾或是企業,建議升級 bash 至最新版本,並持續關注後續更新訊息(目前持續有繞過檢查的新 CVE 弱點發佈),基本上就足以保護自己。另外,企業仍需特別注意是否有購入的設備使用 bash 例如:WebAccelerator、VPN 等,這些設備常被企業忽略,會被惡意攻擊者視為重點攻擊項目。確認做到以上事項,就無需畏懼這一次的 Shellshock 弱點。   <作者目前任職於DEVCORE 戴夫寇爾>