Mac是否容易受到Bash shellshock错误的攻击?


58

Red Hat最近在Bash shell中宣布了一个与安全相关的主要错误。有些人称之为“shellshock”错误。由于OS X是由Unix构建的,它是否容易受到利用此漏洞的攻击?

作为最终用户,我是否需要担心立即修复?或者我等待Apple的官方软件更新是否更好?



要查看哪些操作会影响OSX,请参阅security.stackexchange.com/questions/68123 / ...
Mark

更新了这个问题,因此它不再是一个骗局,而是更多关于外行的建议请求。

1
:苹果已经发布了一个补丁,现在support.apple.com/kb/DL1769
AT

Answers:


46

是的,你在技术上很脆弱。因此,如果您感到恐慌或为惊慌失措的客户付费几个小时的恐慌工作,那就去吧!

但实际情况是,除非您允许从远程连接或运行服务器端脚本的Web服务器进行SSH访问,否则您不会受到威胁。如果您不认识的人可以远程访问您的计算机并且以可以执行Bash命令的方式执行此操作,那么您才真正受到攻击。

这意味着你的桌面Mac - 它真的不运行任何类型的服务器应用程序 - 没有任何严重的风险。我愿意在这里吃一些众所周知的“卑微派”,但我不认为那里的大多数Mac用户会在一天结束时冒风险。

因此,这个问题主要涉及暴露于世界的Mac OS X和Unix / Linux服务器上的系统管理员,而不是未启用SSH共享的桌面用户。

也许存在利用这种风险创建Mac恶意软件或病毒的边缘风险,但我对此表示怀疑。

编辑:只是详细说明这个问题是什么 - 在我的拙见 - 对大多数普通用户来说并不是一个问题,是的,我可以bash在Mac OS X 10.9.5上运行以下命令:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

我看到了这个:

vulnerable
hello

你猜怎么了?如果你不理性地想到这一点,这只是可怕的。我必须已经登录到我的Mac甚至打开终端。并且否定我上面谈到的关于SSH的内容,即使启用了SSH,我甚至可以运行此测试。我仍然需要登录才能开始。然后 - 让我说我可以通过SSH访问 - 该命令不允许我做任何事情超过我的正常用户权限,例如:

env x='() { :;}; echo vulnerable' bash -c 'cat /etc/ssh_host_rsa_key'

这意味着如果您真的容易被这种黑客攻击,那么系统的核心安全性就必须如此妥协,以至于bash存在缺陷的事实实际上是您的问题中的至少。

这是整体控制和权利问题的一个问题,因为它可能允许非预期的访问,因为行为超出了预期的规范。但在我看来,这并不是一个与OpenSSL或花园品种相提并论的风险“让我把密码留在贴在我屏幕上的便条上”的风险。

在一天结束时,我仍在修补我作为标准程序运行的所有Linux / Unix服务器。一旦修复完毕,我将很乐意修补我管理的Mac。但是对于实际的日常使用我觉得很好,不用担心这个,因为我不明白如何不允许提升用户权限的缺陷会增加任何东西。

更新: Apple 发布的官方消息; 强调我的:

“绝大多数OS X用户都没有受到最近报告的bash漏洞的风险,”苹果发言人告诉iMore。“Bash是OS X中包含的UNIX命令外壳和语言,有一个弱点,可能允许未经授权的用户远程获取控制脆弱的系统。对于OS X,系统默认是安全的,除非用户配置高级UNIX服务,否则不会暴露于bash的远程攻击。 我们正在努力为我们的高级UNIX用户快速提供软件更新。“

翻译:我上面说的这是一个服务器问题而不是客户端问题?究竟。

一个最终的UDPATE:对于那些努力从源代码编译的人来说,截至9月29日,Apple正式发布了适用于Mac OS X 10.9.5,10.8.5以及10.7.5的补丁:

另一个最终更新:现在,Apple刚刚发布了一个包含bash更新的组合安全更新!

注意:安全更新2014-005包含OS X bash Update 1.0的安全性内容


7
“或运行服务器端脚本的Web服务器” - 或者运行一个应用程序,监听允许进行RPC调用以最终运行shell命令的开放端口。这可能是任何数量的东西,因为有很多标准的应用程序可以执行它们的RPC。我觉得这个答案非常幼稚。在运行执行某些客户端 - 服务器类型的应用程序的过程中,无意中“运行Web服务器”非常容易。
Ian C.

3
@IanC。你能提供一个开箱即用OS X真正容易受到攻击的例子吗?例如,像WebEx或GotoMeeting这样的东西是否会接近Bash功能?关键是我无法想到一个真正暴露事物的简单的OS X安装场景。你是否可以?
杰克古尔德

8
来宾帐户不适用于ssh。事实上,甚至不可能将它提供给ssh,IIRC。事实上,对于绝大多数OS X用户来说,bash漏洞根本不是问题。对于我们这些有问题的人,我们需要在测试修复程序可用时立即重新编译bash,但现在不行。
lbutlr 2014年

3
@IanC。好的,公平的例子。但是你仍然忽略了这一点:在你提供的每个例子中,如何利用这样的漏洞?在每种情况下,用户都需要访问系统才能开始,然后是什么?我对此并不轻率,但我仍然没有意识到风险究竟是什么?有人 - 例如 - 必须通过Plex API蠕动,然后在bash中做什么才能做正常用户权限和访问权限之外的事情?
杰克古尔德

6
@danielAzuelos “只要访客帐户开放,每个人都很脆弱:[!”访客帐户与此无关bash。所以恐惧是基于究竟是什么?此外,即使访客帐户是开放的并且某种程度上bash可用,那么呢?从我所看到的使用此漏洞的猜测将没有提升的特权或任何甚至接近的特权。说真的,我愿意退出我的立场,但这看起来更像是基于不太多的恐慌,而OpenSSL是一个真正的问题。
杰克古尔德

37

是!

在shell中输入

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

如果它说,vulnerable那么你是脆弱的。

如果它说

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

那你很好。

编辑:链接到修复程序


4
谢谢。我更新了问题 - 如果我们发现我们很容易受到攻击,那么Mac用户如何修复它?

3
@abbyhairboat发表我的回答。除非您运行的是暴露于外部世界的服务器,否则没有实际风险。服务器管理员需要担心这一点。
杰克古尔德

1
→abby:请参阅此相关答案:apple.stackexchange.com/a/146851/22003
丹于

2
试试这个env X="() { :;} ; echo busted" /bin/sh -c "echo completed"- 即使在修补我的系统之后,这个也会在命令行上咳出一个'被破坏'。呸。
Trane Francks 2014年

1
@Mark nope,zsh很安全。你需要用“zsh -c”替换“bash -c”来测试它。
ismail 2014年

3

作为最终用户,请检查:

  • 您的访客帐户已关闭:

    系统偏好设置>用户和组>访客用户
    
  • 您的ssh访问权限已关闭:

    系统首选项>共享>远程登录
    

默认情况下,这些都是关于小牛队的。

作为最终用户,等待修复此漏洞的官方Apple安全更新安全bash


1
这些都是无关紧要的。这些中的任何一个,就其本质而言,授予用户访问系统上的运行命令的权限,因此如果启用它们,那么您打算允许用户运行命令。对于您打算运行命令的用户而言,Shellshock错误是一种手段,例如,您运行的Web服务器的用户。所以,你的回答应该是“禁用网络共享”(但这只是要检查的一件事)
Josh 2014年

我很生气Apple没有建议关闭那些设置。谁会启用它们?我会。我是自1986年以来的Mac用户,一个全职的Web应用程序开发人员(所以ssh是我的生活),还有一个爸爸(所以对孩子们来说,这样一个Guest帐户并不是一个坏主意)。我知道很多像我这样使用Apple笔记本电脑的人。想失去我们?让这个漏洞保持开放是一个好方法。
minopret 2014年

2

所有Mac OS X机器在技术上都容易受到“Shellshock”的攻击,直到Apple发布补丁bash的安全更新,但是......

你的问题应该是:我可以远程攻击吗?

有太多软件使用bash心不在焉,回答这个问题非常困难。如果您担心,那么我建议进行一些更改System Preferences以防止远程攻击:

  • 在共享首选项下禁用所有共享服务。
  • 在安全和隐私下启用防火墙。

如果您特别担心,请按Firewall选项按钮:

  • 取消选中Automatically allow signed software to receive incoming connections
  • 检查Block all incoming connections

你仍然有可能使用DHCP,Bonjour等容易受到攻击,但是如果你需要其他服务,那么显然你可以让它保持运行而你希望它不会被利用。而且你需要让防火墙更加开放。如果你的机器生活在另一个防火墙之后,它可能会很好。

此外,“Shellshock”是否启用了本地特权升级攻击?是的,几乎可以肯定。我不担心,因为Mac OS X有足够的类似攻击。Apple不会快速修补本地权限提升错误。Apple通过Apple Script启用的服务经常创建它们。假设所有Mac OS X机器总是容易受到本地攻击。如果您需要参加像DEFCON这样的黑客会议,那么为此目的自己买一个Linux机器。

更新:重新编译自己的固定bash的说明另外的问题也包括这样做。我会自己这样做,但恕我直言,如果你不运行任何服务器,并保持Apple的防火墙开启,那就太过分了。

更新:如果您对终端使用感到满意,那么此处execsnoop提到的程序会让您测试bash是否通常由服务器进程调用。不是一个神奇的子弹,因为服务器进程可能只在异常情况下调用bash,但它会给你一个好主意。

最后,Apple在修补安全漏洞方面并不是很擅长,但是他们擅长PR,所以这会得到相对较快的补丁。因此,有理由认为“我不需要比熊跑得更快,我只需要比互联网上大量易于利用的服务器运行得更快”。:)


2
Mac不容易受到使用DHCP的攻击,因为它不使用Bash。

1
你怎么知道?最初的建议是易受攻击的DHCP客户端。许多文章推测Mac OS X和/或iOS DHCP客户端可能容易受到攻击。除非另有证明,否则应假定所有服务器都易受攻击。
杰夫伯德斯2014年

1
不,他们不应该; 这是绝对的FUD。您可以检查OS X的dhcp实现的开源代码,并自行测量系统调用以进行验证。

3
@JeffBurdges,OS X从10.3开始就没有使用shell exec和DHCP,之前系统上没有安装bash。OS X上的DHCP不是Shellshock的问题。(少担心哪一个。:))
特灵弗兰克斯2014年

1
→杰夫:请考虑:strings /usr/libexec/bootpd | egrep '/bin|bash'nm -a /usr/libexec/bootpd | egrep 'fork|exec'。通过阅读不同版本的MacOS X的这些命令的输出,你可能会重新考虑你的风险分析,由于dhcpd在MacOS X ...可是独此一家:(。

2

我一听到这个漏洞就立即制作了这个工具。如果工具确定您容易受到攻击,它会为您提供指向修补shell的文章的链接。

需要Mac OS X 10.6及更高版本。


3
也许只是我......但是当你可以轻松地粘贴一个字符串(显然只是运行测试而不是更多)时,运行一些随机人员的代码来测试漏洞的想法似乎是一个非常糟糕的想法。终端窗口。

我同意,这就是为什么源代码来自code.google.com/p/shellshock-check
Thomas Jones

但有时候,它可以提供易于使用的测试多个系统。
托马斯琼斯

我没有看到这件事的好处。通过在终端窗口中粘贴一个简单的命令行,可以更轻松地检查漏洞。
Albert Godfrind

虽然在测试多台机器时,特别是在我的情况下,就像我一样,将闪存驱动器放入并打开Shellshock Check.app比打开Safari,查找bash命令以检查,然后打开终端,粘贴命令然后按Enter键。插入闪存驱动器并打开一个应用程序要快得多。
托马斯琼斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.