Bashの脆弱性とは。私たちへの影響は。

Unix、Linux、OS X に影響するBashの脆弱性は、インターネット全体に影響するバグです。多くのエキスパートが、OpenSSLのHeartbleedよりも危険であると述べています。

shellshock-bash

インターネット全体に影響を及ぼす脆弱性がBourne Again シェル(Bash)に存在することが今週明らかになりました。このBashの脆弱性(ShellShock)はOpenSSLのHeartbleed以降に発見された脆弱性の中でも最大級であり、あちこちで話題となっています。

Bashとは何か

BashはGNU Projectによって1989年に開発されたコマンドラインシェルプログラムで、ユーザーやマシンからのコマンドを受け付け、システムレベルで実行します。基本的な機能は、コマンドを発行して解釈することです。もう少し詳しい説明は、GNUのBashに関するページをご参照ください。

Bashは、UnixシステムおよびLinuxディストリビューションのほとんどで利用されています。Unix/LinuxをベースとするAppleのOS Xでも、大変な数に上るWebサーバーでも、同様です。そして、家庭用の機器にも…ルーターやモデムのようなネットワーク接続型デバイスをはじめ、インターネットに接するシステムで利用されています。

Bashの脆弱性は、Stephane Chazelas氏によって発見されました。同氏はセキュリティ企業AkamaiでUnix/Linuxネットワークおよび電気通信の管理者を務めています。お察しのとおり、この脆弱性は以前から存在しており、おそらく20年以上におよぶとされています。Heartbleed同様、Chazelas氏が最初の発見者であることを願うしかありませんが、本当のところがどうなのか知るすべはおそらくないでしょう。

Bashの脆弱性は自分にどう影響する?

Bashの脆弱性を狙ったエクスプロイトが現れるまで、さほど時間はかかりませんでした。これらのエクスプロイトは、コードまたはスクリプトに悪意ある実行ファイルをリモートから添付し、Bashがそのコード/スクリプトを呼び出すとファイルが実行される(または解釈される)、というものです。攻撃者の視点から言えば、エクスプロイトを首尾良く送り込んでしまえばシステムを完全に掌握できるのです。

「サイバー犯罪者にとっては、Heartbleedよりも悪用しやすい。それに、Heartbleedの場合は、何かあるかもと期待してメモリ内のデータを盗むことができるくらいのものだった。これとは逆に、Bashの脆弱性は、システムを完全掌握できるようになる可能性がより高い。だから、より危険なものに思える」

Bashは「新たなHeartbleed」なのか、との問いに、Kaspersky LabのGlobal Research and Analysis Team(GReAT)はこう答えてくれました。

「サイバー犯罪者にとっては、Heartbleedよりも悪用しやすい。それに、Heartbleedの場合は、何かあるかもと期待してメモリ内のデータを盗むことができるくらいのものだった。これとは逆に、Bashの脆弱性は、システムを完全掌握できるようになる可能性がより高い。だから、より危険なものに思える」

Kaspersky Labのリサーチャーたちは、バンキング情報(最終的には金銭)を盗むのにBashの脆弱性が利用される可能性についても触れました。Bashを悪用してコンピューターからログイン情報を盗むことは確かに可能です。ただし、そのためにはBashコマンドインターフェイスにアクセスする手段が必要で、そう簡単なことではありません。もっと現実味のあるシナリオは、バンキングサイトが使っているサーバーに照準を定め、そこに紐付いているアカウントやユーザー情報を一気に手に入れるパターンでしょう。

United States Computer Emergency Readiness Team(USCERT)の出している情報が、このバグの深刻さをうまくまとめているのではないでしょうか。「この脆弱性は業界標準で”高”影響度に分類される。CVSSの影響度は10、複雑性は”低”であり、実行に必要な技能はほとんどない。この不具合によって攻撃者は、任意のコマンドを含む環境変数を作成し、脆弱性を持つシステム上で実行させることが可能である。Bashシェルは広く利用されており、アプリケーションからの呼び出し方法は多岐にわたるため、非常に危険である。」

Bashの脆弱性の影響度が高く、悪用も簡単であるという点は、Heartbleedが高影響度で悪用が難しかった点とは異なります。

自衛の方法は?

インターネットと永久におさらばする以外にできることといえば、ベンダーが提供する更新パッチを、入手可能になり次第すぐに適用することです。デスクトップやラップトップに搭載のOSに関しては、ディストリビューターからのパッチ提供を待たねばならないでしょう。

ルーターやモデムなど家庭用アプライアンスの場合は、「これさえやっておけば全部OK」といえる方法がありません。一番可能性としてありそうなのは、各デバイスのメーカーが、それぞれの方法でばらばらな時期に、ファームウェア更新を提供することでしょう。ファームウェア更新はふつう、OS更新とは違って自動的にはインストールされません。

Kaspersky LabのGReATが語ったところによると、問題なのは、Bashは多目的でさまざまな場所で利用されているため、パッチは目先の対応にならざるを得ないことです。この脆弱性の修正は、トライ&エラーが続く長期にわたるものになる見込みが高く、第一弾のパッチ提供は「不十分」だ、と多くのリサーチャーやメディアが述べているのはその証左です。

もうひとつの問題点は、繰り返しになりますが、*nixシステムはどこにでもあり、Bashもどこにでもある、ということです。Bashが使われているけれども更新できないマシンが存在することに疑いの余地はありません。Bashが動いていることに誰も気付かないままになっているマシンもあることでしょう。

ErrataSecのロバート・グラハム(Robert Graham)氏は、自身のブログに次のように記しています。「パッチ適用を必要としていながら、適用されることのないシステムは、Heartbleedのときよりもはるかに多い」。グラハム氏のコメントが示唆するのは、パッチがリリースされて何ヶ月も経つのに多数のWebサイトがOpenSSL Heartbleedに対する脆弱性を残したままになっているという事実です。

ヒント

Windows Downdate攻撃から身を守る方法

Windows Downdateは、最新バージョンのOSを古いバージョンにロールバックさせ、脆弱性が残る状態を復活させ、攻撃者がシステムを容易に侵害できるような状態にする攻撃です。この攻撃のリスクを低減するにはどうしたらよいでしょうか?