Shellshock的破壞性有多大?有哪些潛在的攻擊方式?
Bash shell的漏洞,只要有Bash shell的機器都有潛在風險。危險性和範圍據說超過heartbleed。http://www.troyhunt.com/2014/09/everything-you-need-to-know-about.html
大體上就是在給環境變數賦值的時候,值里可以附上bash命令,然後命令會被執行。測試是否有這個漏洞可以在shell執行:
env X="() { :;} ; echo busted" /bin/sh -c "echo stuff"
如果顯示busted,就是有風險,需要更新到最新的bash
測試代碼包含兩部分。
env X="() { :;} ; echo busted"
這是攻擊代碼,設置了一個環境變數。
/bin/sh -c "echo stuff"
這是檢驗代碼,模擬了一個正常的操作。系統會在執行正常操作之前讀取前面設置的環境變數,受bug影響的系統會錯誤地執行其中定義的攻擊代碼(如顯示busted)。
理論上,任何以此方式執行的正常操作,都會受到攻擊代碼的干擾,不斷地觸發攻擊。由於攻擊代碼是依託於bash而存在,因此它只受限於bash的能力,或者說它能做的事跟bash一樣廣泛。目前已經有安全專家發現了基於Shellshock的蠕蟲攻擊(Shellshock漏洞威脅超心臟出血:已被黑客攻擊):
俄羅斯安全軟體開發商卡巴斯基報告稱,一種電腦蠕蟲已經開始感染存在Shellshock漏洞的電腦。
卡巴斯基研究員大衛·雅各比(David Jacoby)表示,惡意軟體可以控制被感染的設備,發起DoS(拒絕服務)攻擊,從而導致網站癱瘓。除此之外,還可以掃描路由器等其他存在漏洞的設備。但雅各比並不清楚攻擊發起人的身份,也無法確定具體的受害者。
網路安全公司AlienVault實驗室主任傑米·布拉斯考(Jaime Blasco)表示,他也發現了相同的惡意軟體,以及另外一個利用Shellshock漏洞發起DoS攻擊的蠕蟲。
當然攻擊者的另一個關注點在於,如何讓攻擊代碼在bash中執行起來。《Linux伺服器Bash曝嚴重漏洞,使用加速樂可防護》中提出了可行的方法包括:
1、OpenSSH sshd使用了ForceCommand特性
ForceCommand特性用來給遠程用戶提供受限的命令執行能力,因此使用了此特性的如git、subversion等都會受影響。
2、Apache HTTP Server使用了modcgi和mod_cgid模塊;
在Apache Server啟用了modcgi和mod_cgid模塊時,只要CGI腳本是由bash編寫,或者使用了派生的subshell都會受影響。能夠產生這樣的subshell的包括:
C語言的system/popen,Python的os.system/os.popen,PHP的system/exec,Perl的open/system。
雖然我沒有看過bash的代碼也沒有看過補丁的代碼,但是我猜,env這個傻逼程序肯定是這麼做的:
把a="b"轉成export a=b,把其他命令原封不動的輸出來,然後把所有的串連起來,交給shell跑。簡直就跟可以被SQL注入的那些程序一摸一樣。
推薦閱讀:
※作為安全工作者,你遇到過哪些功能上好玩有趣強大的木馬?
※這位天才少年黑客的實力如何?
※如何看待Struts2遠程代碼執行漏洞(S2-045)的危害 ?
※CTF有什麼特殊技巧?
※如果作為一名信息安全工作者,會不會怕他的同僚黑他?如何防護?