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中国”