Linux Bash Shell 資安大漏洞以及解決辦法

繼上次 SSL Heart Bleed 心臟淌血事件,這次換我們常用的Bash Shell 也中招了,駭客可以利用特殊代碼執行不知名的變數侵入系統,包含 Mac OS, Linux等等。危害的程度不比上次心臟淌血來的小,因為系統內很多的 script 就是用 bash 寫的,首先我們先來看看如何驗證是否自己的系統的 bash shell 中招了(不能用版號區分),在終端機下輸入

# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

如果終端機出現

vulnerable
this is a test

恭喜你,你的系統  Bash Shell 中招了,駭客可能會利用此漏洞取得非法資料,此次的漏洞代碼稱之為 CVE-2014-6271,各位可以參訪  美國國土安全部旗下的電腦警備小組網站 去下載自己作業系統的更新檔案,趕快更新以免駭客有機可乘。

us-cert

因為筆者的作業系統是 Ubuntu 14.04,所以 Ubuntu 修補相關連結

Ubuntu Security Notice USN-2362-1
Ubuntu 14.04

因為這台機器是CubieTruck,所以請選擇右邊 armhf 的網站,不同機器請選擇不同平台,

armhf

然後下載下方 bash-static_4.3-7ubuntu1.1_armhf.deb 和 bash_4.3-7ubuntu1.1_armhf.deb 這兩個檔案回來 CubieTruck,在終端機內使用 dpkg 來安裝

# dpkg -i bash-static_4.3-7ubuntu1.1_armhf.deb
# dpkg -i bash_4.3-7ubuntu1.1_armhf.deb
# apt-get update
# apt-get upgrade

安裝完之後再測試一次剛剛在終端機的命令

# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

如果這次出現,

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

那再次恭喜你,你已經把這個 CVE-2014-6271 漏洞給補起來了。這次升級會把 bash shell 從 4.3.8版升級為 4.3.11,但光看版號不準,要打命令測試才能確認。