このテストが示すように、私のMacは脆弱です。
x='() { :;}; echo VULNERABLE' bash -c :
( ソース )
付属のバージョンのbashを使用しています。私も自作を使用しています。 Bashにパッチを適用する好ましい方法は何ですか?
まず、Macから公共のインターネットにWebサービスを提供しているのでない限り、これを行う必要はありません。そうでない場合は、アップルからの公式のセキュリティアップデートがあるまで待ちます。
ただし、Webサービスを提供している場合は、更新することをお勧めします。
Appleがリリースした 公式Bashセキュリティアップデートはこちら
古いbashを使用していることを確認するには:$ which bash /bin/bash $ /bin/bash --version GNU bash, version 3.2.51(1)-release (x86_64-Apple-darwin13) Copyright (C) 2007 Free Software Foundation, Inc.
最新のbashは4.3.25です。
Xcodeがインストールされていない場合は、_$ xcode-select --install
_でインストールできるXcodeコマンドラインツールが必要です。
または開発者ポータルから_https://developer.Apple.com/downloads/index.action?=command%20line%20tools
_ダウンロード_command_line_tools_for_osx_10.9_september_2014.dmg
_
Brewをインストールするには( http://brew.sh ):$ Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
次に、_$ brew doctor
_問題がある場合は、指示に従ってください。多くの一般的な問題は_http://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-Ruby-on-mac/#troubleshoot-homebrew
_で対処されています
次に、brewをパッケージの最新リストに更新します:_$ brew update
_
最新のbash 4.3.25を取得するには:_$ brew install bash
_
これはbashを_/usr/local/Cellar/bash/4.3.25/bin/bash
_にインストールします
古いbash
とsh
は_/bin
_にまだ存在するため、インストール後、古い実行可能ファイルの名前を新しいファイルに変更します。 _$ Sudo mv /bin/bash /bin/bash_old $ Sudo mv /bin/sh /bin/sh_old
_
非常に偏執的である場合は、_bash_old
_ _$ Sudo chmod a-x /bin/bash_old /bin/sh_old
_の実行権限を削除できます
次に、brewがインストールされた新しいbash 4.3.25へのシンボリックリンクを作成します。 _$ Sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/bash $ Sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash /bin/sh
_
再起動すると完了です。
警告—これは、bash 3.2に依存している可能性がある既存のシェルスクリプト、またはMac sh
とLinux sh
の違いを壊す可能性があります。 https://Apple.stackexchange.com/questions/146849/how-do-i-recompile-bash-to-avoid-the-remoteにあるソースからのbashとshの置き換えに対するはるかに洗練された答えがあります-exploit-cve-2014-6271-and-cve-2014-7
ほとんどの場合、公式のアップデートを待つのが最善です。
-クリストファー・アレン
以下の手順を実行する前に、brewのbashのバージョンを確認してください。
$ Sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash/bin/bash
$ Sudo ln -s /usr/local/Cellar/bash/4.3.25/bin/bash/bin/sh
Bashのバージョンは、これまで4.3.27に更新されています。それでも4.3.25を/ bin/bashにリンクしている場合、Macは起動しないはずです。その場合は、リカバリモードで起動し、/ bin/bash_oldを/ bin/bashにコピーし、/ bin/sh_oldを/ bin/shにコピーします。
Brewでのbashのバージョンは4.3.27なので、これでうまくいきます。
$ Sudo ln -s /usr/local/Cellar/bash/4.3.27/bin/bash/bin/bash
$ Sudo ln -s /usr/local/Cellar/bash/4.3.27/bin/bash/bin/sh