开发者社区> 沉默术士> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

为何修复 Shellshock 漏洞像打地鼠

简介:
+关注继续查看

GNU Bourne Again Shell(bash)的Shellshock漏洞影响了广泛使用bash的Unix/Linux服务器,由于它允许远程执行代码获得与系统管理员相同的 权限去控制系统而被认为破坏力超过Heartbleed。而更糟糕的是,bash官方补丁没有完全修复问题。为何修复Shellshock漏洞就像打地鼠, 堵了一头另一头又冒出?Shellshock漏洞的工作原理是:攻击者可以向任何使用bash交互的系统如Web服务器、Git版本控制系统和DHCP客 户端发送请求,请求包含了以环境变量储存的数据。

环境变量就像是操作系统的剪切板,储存了帮助系统和软件运行的信息。在本案例中,攻击者发送的请求是精心 构造的,诱骗bash将其视为命令,bash像平常执行良性脚本那样执行命令。这种欺骗bash的能力就是Shellshock漏洞。官方发布的补丁被发 现仍然存在相似的漏洞。

计算机科学家David A. Wheeler在 邮件列表上指出,bash的解析器存在许多漏洞,因为它在设计时就没有考虑过安全性,除非它停止解析环境变量,否则修正就像是打地鼠。Wheeler建议 打上非官方的补丁修正bash,这些补丁会破坏向后兼容性。其中一个补丁来自德国计算机安全专家Florian Weimer,他的补丁为bash函数加入前缀,防止它们被指明为系统变量。另一个补丁来自NetBSD开发者Christos Zoulas博士,他的补丁只允许bash在收到明确请求时输入环境变量,消除安全风险。

FreeBSD的bash实现则在最新的修正中默认关闭了输入功能。Wheeler等人相信,虽然破坏了向后兼容性,但不会影响太多的bash依赖系统。苹果的OS X系统也存在Shellshock漏洞, 苹果表示大部分用户不会面临风险,只有配置了advanced UNIX services的用户会受到影响。OS X使用了v3.2.51.(1)的GNU bash,新版本bash许可证换到了条款更严格的GPLv3,所以苹果仍然使用旧版本。

文章转载自 开源中国社区 [http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Springboot 结合 easymock 的使用| Java Debug 笔记
docker-compose安装 这个安装比较简单,执行下面三个步骤就完事了😀 docker-compose官网地址: docs.docker.com/compose/ins… 安装步骤如下:✌ 下载docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 复制代码 赋予权限 sudo chmod +x /usr/local/bin
48 0
CSS奇思妙想 -- 使用 background 创造各种美妙的背景
CSS奇思妙想 -- 使用 background 创造各种美妙的背景
52 0
新冠病毒对全球行业及IT支出的深远影响
新冠病毒(COVID-19)大爆发给全球造成的悲剧是无法估量的,而且还在继续发酵中。生命是无价的,应该得到维持生命所需的照顾。新冠病毒还在持续影响着整个行业,以无法预测的方式运转着,直接影响了IT支出和技术支出。
796 0
Thrift之TProcess类体系原理及源码详细解析
我的新浪微博:http://weibo.com/freshairbrucewoo。 欢迎大家相互交流,共同提高技术。   之前对Thrift自动生成代码的实现细节做了详细的分析,下面进行处理层的实现做详细分析了!会利用到自动代码生成的知识。
746 0
Thrift之TProcess类体系原理及源码详细解析
我的新浪微博:http://weibo.com/freshairbrucewoo。 欢迎大家相互交流,共同提高技术。   之前对Thrift自动生成代码的实现细节做了详细的分析,下面进行处理层的实现做详细分析了!会利用到自动代码生成的知识。
1090 0
springboot源码分析5-springboot之命令行参数以及原理
摘要:本文我们重点分析一下Springboot框架中的命令行参数的使用以及框架内部处理的命令行参数的原理。 众所周知,springboot项目可以有两种方式启动,第一种使用jar包;第二种使用war包。
1454 0
Oracle 11g Flashback_transaction_query的undo_sql列为空
SQL> select table_name,operation,row_id,undo_sql      from flashback_transaction_query where t...
648 0
+关注
5514
文章
253
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载