GNU bash の脆弱性(10/28 追記)

no extension

あぁ,またもや大型爆弾が。 しかも bash かよ。 既に皆さんご存知と思いますが,一応覚え書きとして。

追加情報」も参照のこと。

GNU bash の環境変数の処理には脆弱性があります。外部からの入力が、GNU bash の環境変数に設定される環境において、遠隔の第三者によって任意のコードが実行される可能性があります。
GNU bash の脆弱性に関する注意喚起より
The flaw was originally assigned CVE-2014-6271, but it was later discovered that the patch had an issue in the parser and did not fully address the problem. MITRE later assigned CVE-2014-7169 to cover the remaining problems after the application of the first patch.
via Bourne Again Shell (Bash) Remote Code Execution Vulnerability
また、セキュリティ研究者のRobert Graham氏は、この脆弱性を持つシステムを少なくとも3000件発見したと述べている。ただし、このスキャンで調べているのはシステムの80番ポートだけで、本当に危険なのはポート番号を変えている組み込みウェブサーバであり、これらをスキャンすれば「この2倍の結果が出るだろう」としている。
「Bash」のバグを利用する攻撃、早くも見つかるより

JPCERT/CC の alert では status が更新されているので最新情報をチェックしておくこと。 現在の情報としては

一部ディストリビュータが提供している bash では、修正が不十分であった箇所(CVE-2014-7169)を修正したパッチがリリースされています。III. 対策を参照し、修正済みバージョンの適用について検討してください。
GNU bash の脆弱性に関する注意喚起より

とある。 「一部ディストリビュータ」てのは Red Hat のことだが, Red Hat 系のシステムについては最新版をチェックしてアップデートすべし。 問題は本家の GNU Project で, CVE-2014-6271 に対するパッチは出てるようだけど CVE-2014-7169 についてはまだ出てないっぽい

9月27日 追記: 本家の GNU Project でも最新のパッチがリリースされている。 Red Hat 系以外も速やかにアップデートすること。

bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた で CVE-2014-6271 に対する簡易チェック方法が紹介されている。 具体的には次のコマンドを実行する。

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

これで

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

と表示されれば今回の脆弱性の影響を受ける。 一方

$ 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

なら問題はない。 レンタルサーバを利用している人などは簡単に bash をアップデート出来ない可能性があるので,この簡易チェックの結果を見てサービスプロバイダに進言するか,それも無理なら脆弱性を回避する方向で検討して欲しい。 回避方法は次の通り。

  • GNU bash を代替のシェルに入れ替える
  • WAF や IDS を用いて脆弱性のあるサービスへの入力にフィルタをかける
  • 継続的なシステム監視を行う

これねぇ。 とりあえずサーバ機はなんとかなると思うけど,問題はそれ以外なのよ。

例えばサーバなどのシステムはパッチが当てられたとしても、Web対応のビデオカメラといった「モノのインターネット」や、ネットワーク上の古いデバイスなどは脆弱性が放置される公算が大きいと予想している。
bashシェルの修正パッチは不完全、脆弱性突く攻撃の報告もより

もちろん構成によるんだけど,ルータなんかも危ないところだよね。

同氏はまた、アドバイザリで報告されているように、DHCPサービスにも脆弱性があると警告している。「この簡単なスキャンでは3000件しか発見できなかったが、これは明らかにワーム攻撃の対象となるもので、簡単にファイアウォールの裏側に達し、多くのシステムに感染する可能性がある。重要な問題は、Mac OS Xと『iPhone』のDHCPサービスにこの脆弱性があるかどうかだ。ワームがファイアウォールの裏側に入り、悪意のあるDHCPサーバーが実行されれば、大規模ネットワークが『ゲームオーバー』」になってしまう」(Graham氏)
「Bash」のバグを利用する攻撃、早くも見つかるより

これはしばらく注視する必要がある。

10月2-8日 追加情報

いわゆる Shellshock 脆弱性は現在6つの脆弱性を含んでいる。

CVE 番号想定される影響修正バージョン(4.3)
CVE-2014-6271任意のコードの実行 4.3-Patch25
CVE-2014-7169任意のコードの実行 4.3-Patch26
CVE-2014-7186サービス運用妨害 (DoS)4.3-Patch28
CVE-2014-7187サービス運用妨害 (DoS)4.3-Patch28
CVE-2014-6277サービス運用妨害 (DoS)4.3-Patch30
CVE-2014-6278任意のコードの実行 4.3-Patch30
Shellshock 脆弱性(10/05 更新)

全ての脆弱性に対応するには 4.3-Patch28 (または 4.2-Patch51, 4.1-Patch15, 4.0-Patch42, 3.2-Patch55, 3.1-Patch21, 3.0-Patch20, 2.05b-Patch11)まで適用する必要がある(ただし CVE-2014-6277/CVE-2014-6278 への対応は「軽減」レベルらしい)。

(10/03 追記:CVE-2014-6277 への根本的な対処を一部行った 4.3-Patch29, 4.2-Patch52, 4.1-Patch16, 4.0-Patch43, 3.2-Patch56, 3.1-Patch22, 3.0-Patch21, 2.05b-Patch12 が出ている)

各ベンダの対応状況については VND のページが参考になる。 国内メーカについては JVN のページが参考になる。 影響が及ぶのはサーバ機のみではなく,ハードウェア製品のファームウェアも含むので注意すること。 またベンダによって対応度が異なるので上述の脆弱性に全て対応していない場合は引き続き情報を注視する必要がある。 (例: Mac OS X は修正バージョンが出ているCVE-2014-7169 までしか対応していない)

10/08 追記

4.3-Patch29 の不具合を修正した 4.3-Patch30 (または 4.2-Patch53, 4.1-Patch17, 4.0-Patch44, 3.2-Patch57, 3.1-Patch23, 3.0-Patch22, 2.05b-Patch13)がリリースされている。 初期の脆弱性のみ対応しているベンダやサービスプロバイダが非常に多い。 自力で対応できない場合はベンダやサービスプロバイダに働きかける必要があるかもしれない。

GitHub にて脆弱性チェッカが公開されている。

脆弱性ごとに判定してくれるので気になる方は試してみると良い。

参考図書

photo
入門bash 第3版
Cameron Newham Bill Rosenblatt 株式会社クイープ
オライリージャパン 2005-10-27
評価

詳解 シェルスクリプト sed & awkプログラミング 改訂版 (A nutshell handbook) 入門vi 第6版 GNU Make 第3版 入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

まぁ入門書。

reviewed by Spiegel on 2014/09/26 (powered by G-Tools)