By

Bashの脆弱性チェックツール

Shellshockの最初のパッチは不十分

Bashに致命的な脆弱性が発見されたことは、大きなニュースになったので、みなさんよくご存知だと思います。

これに対して、各リナックスディトリビュータもすぐに対策をリリースしましたが、最初のパッチは不十分なものだったようです。ですから、サーバ更新のタイミングによっては、対策が不十分になっている可能性があります。

ubuntu 12.04 の場合

たとえば、ubuntu 12.04 の場合、先週の木曜日(9/25)の時点でbashがアップデートされています。この時すぐに、最新版にアップデートしたサーバは次のバージョンになっていると思います。

$ dpkg -l | grep bash
ii  bash                                 4.2-2ubuntu2.2 ....
....

これは、最初に発見された CVE-2014-6271 という脆弱性には対応していますが、その後発見された、別の脆弱性が残ったバージョンです。

本日(9/29)にアップデート ( sudo apt-get update && sudo apt-get --only-upgrade install bash )を行なうと、さらに新しいバージョン(4.2-2ubuntu2.5)に更新されます。

$ dpkg -l | grep bash
ii  bash                                 4.2-2ubuntu2.5 ....
....

これが、現在発見されている脆弱性全てに対応した最新バージョンです。

他のディストリビューションについては確認していませんが、似たような状況だと思われます。先週サーバをアップデートした人は、現在のバージョンや対応状況について、もう一度確認した方がいいと思います。

bashcheck

これらの脆弱性をまとめてチェックしてくれるツールがあります。

使い方は、git clone して、そのスクリプトを実行するだけです。

$ git clone https://github.com/hannob/bashcheck
$ bashcheck/bashcheck

このツールは、bashに対して、shellshockに関連する5つの脆弱性をチェックして、結果を以下のように報告してくれます。

脆弱性がある場合の表示例1 (bash 4.3-7ubuntu1)

Vulnerable to CVE-2014-6271 (original shellshock)
Vulnerable to CVE-2014-7169 (taviso bug)
bashcheck/bashcheck: line 18:  2974 Segmentation fault      (core dumped) bash -c "true $(printf '<<EOF %.0s' {1..79})" 2> /dev/null
Vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug)

脆弱性がある場合の表示例2 (bash 4.2-2ubuntu2.2)

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
Not vulnerable to CVE-2014-6271 (original shellshock)
Vulnerable to CVE-2014-7169 (taviso bug)
./bashcheck: line 18: 14667 Segmentation fault      bash -c "true $(printf '<<EOF %.0s' {1..79})" 2> /dev/null
Vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug)

脆弱性が無い場合の表示例 (bash 4.3-7ubuntu1.4)

Not vulnerable to CVE-2014-6271 (original shellshock)
Not vulnerable to CVE-2014-7169 (taviso bug)
Not vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser inactive, likely safe from unknown parser bugs

CVE-2014-7187は、このツールだけでは完全にチェックできないようですが、このような表示になれば、最新バージョンのbashにupdateされていると考えてよいと思います。

一緒にユニークな決済サービスを作ってくれる Rails エンジニアを募集中です!
多国籍なメンバーと一緒に仕事をしてみませんか?詳細はこちらのリンクです:D