- Home
- Mac OS X 10.7 Lion の Bash バージョンを確認して、最新バージョンに更新する方法
Mac OS X 10.7 Lion の Bash バージョンを確認して、最新バージョンに更新する方法
Index of this Article
1. Mac OS X 10.7 Lion のBashバージョンの確認方法
2. Mac OS X 10.7 Lion のBashをアップデートする方法
OS X bash Update 1.0 – OS X Lion
http://support.apple.com/kb/DL1767
2014年9月下旬、Appleは、OS X 10.7 から 10.9までのbash向けに、ShellShock脆弱性を修正する「OS X bash Update 1.0」をリリースしました。このパッチを適用した後のbashバージョンは3.2.53になりますが、JPCERT/CCのレポートによれば「Bash 3.2 Patch 55 およびそれ以前」については、まだ脆弱性が残存しているそうです。
Mac OS X 10.7 Lion のBashバージョンの確認方法
Lionのterminal(ターミナル.app)を起動
パスの確認
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
現在のバージョンの確認
$ bash –version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
場所の確認
$ which bash
/bin/bash
$ ls -l /bin/bash
-r-xr-xr-x 1 root wheel 1371648 May 17 2012 /bin/bash
$ which sh
/bin/sh
$ ls -l /bin/sh
-r-xr-xr-x 1 root wheel 1371648 May 17 2012 /bin/sh
Mac OS X 10.7 Lion のBashをアップデートする方法
前提条件(コンパイルが必要なため):
・Xcode 4.6.3 がセットアップされていること。
・Xcode にて Command Line Tools が追加インストールされていること。
最新のBashソースコードをAppleのサイトからダウンロードする
https://opensource.apple.com/tarballs/bash/bash-94.1.2.tar.gz
最新のパッチをGNU Bashサイトで確認する
http://ftp.gnu.org/gnu/bash/bash-3.2-patches/
(2014/12/25時点では 32-057)
ソースコードを解凍する
tar zxvf
パッチ当てをする
(bash-94.1.2.tar.gzをそのままビルドすると version 3.2.53になる為)
cd bash-94.1.2/bash-3.2
for i in $(seq -f “%03g” 54 57);do curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-$i | patch -p0; done
seqコマンドは開始から終了までの数列を出力してくれるコマンドで、オプション -f “%03g” は、printfのフォーマットと同じで,3桁になるように0で埋めるという意味。
解凍したフォルダ内でビルドする
cd ..
xcodebuild
** BUILD SUCCEEDED **
で、カレントディレクトリから
build/Release/
の中に作成される
バージョン確認
$ build/Release/bash –version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
$ build/Release/sh –version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
古いファイルをリネームする
(古いファイルがあるディレクトリは /bin/)※対象ファイルは「bash」と「sh」
$ sudo mv /bin/bash /bin/bash.ols
$ sudo mv /bin/sh /bin/sh.old
$ sudo chmod a-x /bin/bash.old /bin/sh.old
新しいファイルを設置する
$ sudo cp -p build/Release/bash /bin/bash
$ sudo cp -p build/Release/sh /bin/sh
$ ls -l /bin/bash
-rwxr-xr-x 1 hoge staff 1899152 Dec 25 06:29 /bin/bash
$ ls -l /bin/sh
-rwxr-xr-x 1 hoge staff 1899264 Dec 25 06:29 /bin/sh
terminalを1度exitして再起動。稼働しているbashのversionを確認する
$ /bin/bash –version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
$ /bin/sh –version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.
脆弱性の残存確認
$ env x='() { :;}; echo this bash is vulnerable’ bash -c :
(this bash is vulnerable が出力されなければOK)
$ x='() { :;}; echo this bash is vulnerable’ bash -c ‘echo hello’
(this bash is vulnerable が出力されなければOK。hello だけが表示される。)
$ env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”
(vulnerable が出力されなければOK。this is a test だけが表示される。)
GNU bash の脆弱性に関する注意喚起
https://www.jpcert.or.jp/at/2014/at140037.html
OS X bash アップデート 1.0 について
http://support.apple.com/ja-jp/HT6495
参考にさせていただいたサイト:
Apple のリリースした、Bash の更新が不完全だったので、パッチをあてなおした。
http://qiita.com/fu7mu4@github/items/68e59af65cd2c934d33a
Every Mac Is Vulnerable to the Shellshock Bash Exploit: Here’s How to Patch OS X
http://mac-how-to.wonderhowto.com/how-to/every-mac-is-vulnerable-shellshock-bash-exploit-heres-patch-os-x-0157606/
コメント
この記事へのトラックバックはありません。
この記事へのコメントはありません。