1
Tink 2014-09-27 14:09:33 +08:00 via iPhone
这方法治标不治本
|
2
msg7086 2014-09-27 14:13:29 +08:00
dash没法运行需要bash的程序。我之前试过ln -sf dash bash,结果连apt都挂了。
老老实实 chmod o-x bash 更方便。 @Tink 有时候是没办法,比如这次,补丁迟迟不出,而且就算stable出了,等unstable版跟进还要时间,这时候直接禁用bash才是治本的方法。倒不如说现在的半吊子补丁才是治标不治本。 |
3
SoloCompany 2014-09-27 14:41:09 +08:00
@msg7086 新的补丁昨天就出来了吧,是你自己没留意吧
|
4
ctexlive 2014-09-27 15:51:36 +08:00
补丁迟迟没出吗? debian等都出了
|
5
canky 2014-09-27 17:01:36 +08:00 via Android
debian怎么修啊?我是小白来的
|
6
uuair 2014-09-27 17:23:54 +08:00
升级bash就可以了吧?我在centos跟mac上,升级了bash,然后那个测试代码就失效了。
|
7
ivenvd 2014-09-27 17:43:51 +08:00
这个,典型的误人子弟啊。照着这么操作,大部分服务器都会瘫痪掉吧……
|
8
msg7086 2014-09-27 18:19:11 +08:00
@SoloCompany testing分支上的最新版测了
env -i X='() { (a)=>\' bash -c 'echo curl -Is google.com'; head echo 照样会执行。 |
9
msg7086 2014-09-27 18:21:27 +08:00
@ivenvd 是的。
至少应该: 1. 把主shell换成zsh,用sed替换掉/etc/passwd里所有的bash 2. 把sh链接到dash 3. 到这步了才能禁用bash 而且为了apt脚本能跑,bash还是要留着的,折衷的办法就是chmod o-x,至少root还能用。 |
10
librehat 2014-09-27 19:30:11 +08:00 via Android
Fedora已经推送更新了。
楼主这个办法太。。。。什么都做不了 |
11
interdev OP |
12
ivenvd 2014-09-29 01:59:36 +08:00
@interdev 脚本语法是不兼容的。Bash 不是简单作为交互式 Shell 存在的,大量脚本使用了 #!/bin/bash,你用 dash 去运行不天下大乱才怪。
|
13
huangzxx 2014-09-29 09:29:16 +08:00
这个帖子也太。。。。。误导了吧
|
14
interdev OP @ivenvd Ubuntu缺省的/bin/sh就是dash ,其他系统我没有测试,说了只是正式完整补丁没出来时临时用用,补丁稳定了还是要回到bash的,目前我自己好几台ubuntu vps都是这样设防的。
dash 能兼容 bash 大多数脚本。 |
15
kaneg 2014-09-29 13:53:19 +08:00
看到这个漏洞好几天了,但有个问题一直不明白:
尽管这个漏洞很严重,但如果别人不知道我的ssh账号,apache也没有启用过CGI(ubuntu默认是不启用的吧),那有被攻击的可能吗? |
16
interdev OP @kaneg 一般无影响,但bash做为linux root用户缺省shell,会有很多暂时未发现或未公开的利用方式,最好还是升到最新补丁较好。
分析: ====== GNU Bash 4.3及之前版本在处理某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行。 此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用bash作为解释器的应用等。 目前认为使用mod_php/mod_python/mod_perl的Apache httpd不受此问题影响。 http://www.nsfocus.net/index.php?act=alert&do=view&aid=150 |