bash爆出遠端解析指令執行漏洞(cve-2014-6271),波及各大linux發行版與macosx系統。漏洞可以直接在bash支援的web cgi環境下遠端執行任意指令。
bash注入公開之後根據官方的文檔發現,攻擊者隻要保持
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
中前四個字元不改變,也就是'(){ 固定,後面的:;}中符合規定的文法就可以進行攻擊測試。雖然漏洞的影響非常大,但是相比于‘openssl’來說,利用的環境是有限的。

執行效果圖
防禦bash注入的方法,首先需要更新bash,yum update下就ok了,更新到bash-4.1.2-15。
或者是添加mod_security:
request header values:
secrule request_headers "^\(\) {" "phase:1,deny,id:1000000,t:urldecode,status:400,log,msg:'cve-2014-6271 - bash attack'"
server_protocol values:
secrule request_line "\(\) {" "phase:1,deny,id:1000001,status:400,log,msg:'cve-2014-6271 - bash attack'"
get/post names:
secrule args_names "^\(\) {" "phase:2,deny,id:1000002,t:urldecode,t:urldecodeuni,status:400,log,msg:'cve-2014-6271 - bash attack'"
get/post values:
secrule args "^\(\) {" "phase:2,deny,id:1000003,t:urldecode,t:urldecodeuni,status:400,log,msg:'cve-2014-6271 - bash attack'"
file names for uploads:
secrule files_names "^\(\) {" "phase:2,deny,id:1000004,t:urldecode,t:urldecodeuni,status:400,log,msg:'cve-2014-6271 - bash attack'"
雖然有人給出了在iptable中添加規則,但是覺得在iptable中添加規則會規定的太死,不過也可以去嘗試下:
iptables --append input -m string --algo kmp --hex-string '|28 29 20 7b|' --jump drop
iptables using -m string --hex-string '|28 29 20 7b|'
原文釋出時間:2014-09-26
本文來自雲栖合作夥伴“linux中國”