免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1149 | 回复: 0
打印 上一主题 下一主题

Bash 通过特殊环境变量进行代码注入攻击 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-09-26 08:43 |只看该作者 |倒序浏览
Bash 或Bourne again shell,是一个类UNIX shell 脚本,可能是任何Linux系统中最常见的安装组件。从1980年诞生到现在,bash 已经从一个简单的基于终端的命令解释器演进到诸多其他的奇特用途。

在Linux中,环境变量影响着系统软件。它们都是由一个名称和对名称的赋值构成。bash shell也是如此。在程序后台运行bash shell很常见。通常用于向远程用户提供一个shell(例如通过ssh,telnet),为CGI脚本提供解析器(例如Apache),甚至提供有限的命令执行支持(例如git)。

回到主题,你可以在调用bash shell前使用特殊加工的值创建环境变量,这个事实暴露了系统的脆弱。这些变量可以包含代码,随着shell调用执行。这些加工过的变量名并没有什么,主要是它们的内容。在以下的语境中,脆弱暴露无遗:

ForceCommand是 sshd中使用的环境变量,它向远程用户提供有限的命令执行权限。这个缺陷可以被绕过并提供任意的命令执行权限。一些Git和Subversion部署使用这样的shell。OpenSSH的常规使用不受影响,因为用户已经进入了shell。

如果CGI脚本使用bash或者产生大量的子shell,使用mod_cgi或mod_cgid的Apache服务器将收到影响。这些子shell可能被C语言的system/popen使用,可能被Python的os.system/os.popen使用,可能被运行在CGI模式下的PHP的system/exec使用,可能被使用shell的Perl中的open/system使用.

执行mod_php的PHP脚本即使大量产生子shell也不会收到影响。

DHCP客户端调用shell脚本以配置系统,使用来自潜在的恶意服务器的值。这将允许任意的命令运行,尤其作为DHCP客户机上的root.

各式各样的守护进程和SUID/特权程序可能使用用户设置以及被用户影响的环境变量执行shell脚本,可允许任意的命令运行。

任意可能陷入shell险境的其他应用,或是运行shell脚本将bash作为解释器的应用。不引入环境变量的shell脚本是安全的,即使它们处理不安全的内容并存储在(不引入的)shell变量里并打开子shell。

和编程语言一样,Bash也有函数,尽管是有限的实现,这些bash函数可能放入环境变量中。这个缺陷在这些环境变量内部的函数定义尾部附加额外的代码时触发。像这样:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"  vulnerable  this is a test
补丁修复了这个缺陷,确保bash函数的尾部不允许额外的代码。所以如果你用打过补丁的bash版本运行上面这个例子,应该得到类似这样的输出:

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"  bash: warning: x: ignoring function definition attempt  bash: error importing function definition for `x'  this is a test
我们相信这不应该影响任何的向后兼容。它当然会影响使用如上所述创建的环境变量的任何脚本,但这么做会被认为是糟糕的编程实践。

Red Hat的安全问题报告修复了Red Hat企业版Linux的这个问题。Fedora也运送了问题修复包。

关于受影响的特定Red Hat产品的更多信息可以在https://access.redhat.com/site/solutions/1207723找到。

CentOS的信息可以在 http://lists.centos.org/pipermail/centos/2014-September/146099.html找到。      
   
本文转自:开源中国社区

英文原文:Bash specially-crafted environment variables code injection attack

本文来自ChinaUnix新闻频道,如果查看原文请点:http://news.chinaunix.net/opensource/2014/0926/3215431.shtml
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP