ソフトウェアの新しい脆弱性が明らかになっても、誰も興奮しません。しかし、今週、一般的なUnixツールに重大なバグが見つかったことで、セキュリティコミュニティは激震に陥りました。LinuxやOS Xを含むほぼすべてのUnixバージョンが脆弱であるだけでなく、初期パッチの大半は脆弱性を完全に遮断するのに十分ではありません。これは、インターネット上のほぼすべてのWindows以外のサーバー(そしてAppleの市場拡大により多くのパーソナルコンピューター)に、複数の種類のリモート攻撃に対して脆弱なソフトウェアが存在するという、ほぼ最悪のシナリオです。これらの
攻撃はいずれもシステムを完全に乗っ取る可能性があり、それを完全に阻止する方法はありません。
深刻さにもかかわらず、Apple の設計上の決定と Mac の使用方法を組み合わせることでリスクは大幅に軽減されますが、それでも注意を払い、Apple の次のセキュリティ アップデートをインストールする準備をする必要があります。
Shellshock — Bashは、LinuxやBSDを含むUnixベースのシステムで最も基本的なツールの一つであり、OS Xの中核を成しています。デフォルトでは、ターミナルを起動すると、Bashがコマンドラインインターフェースを提供するプログラムとして表示されます。Bashは数十年前から存在し、現在までに最も人気のあるインタラクティブシェルです。
詳細は不要です(興味があればTroy Huntの記事をお読みください)。簡単に言うと、ある研究者がBashの脆弱性を発見しました。この脆弱性により、攻撃者はほぼ何でもできるようになります。この脆弱性は、セッション開始時にシェルに送信される環境変数を操作することに関係しています。誰かがコンピュータに直接またはリモートでアクセスできれば問題となるのは明らかですが、BashはUnixシステムに深く組み込まれているため、この脆弱性は想定外の影響を及ぼします。
多くのプログラムは、コンピュータとやり取りする便利な方法として、Unixシステムのデフォルトシェルにフックしてコマンドライン命令を発行します。しかし、これは必ずしも安全な方法とは言えないため、これらのコマンドは権限の低いユーザーアカウントに限定されるか、他の安全機構が用いられることがよくあります。残念ながら、その安全機構には、不正なデータに対して送信されたコマンドのサニタイズ処理はほとんど含まれていません。プログラマーはサニタイズ処理を行うべきだと認識していますが、正しく実行するのは容易ではありません。
その結果、多くのApache Webサーバーのインストールが脆弱であることが判明しました。多くのUnixシステムがIPアドレスの取得に使用しているDHCPソフトウェアも同様です。そして、これら2つは脆弱性のほんの一部に過ぎません。Bashを介したコマンドの受け渡しは非常に一般的な手法であるため、その悪用方法や、その容易さについてはまだ完全には把握できていません。DHCPの例では、敵対的なネットワーク(有線または無線)に接続するだけで、攻撃者にコンピュータを制御されてしまう可能性があります。そして最悪なことに、この特定のエクスプロイトは驚くほど簡単に使用できます。攻撃者は、適切なテキストの一部を受信可能なアプリに送信するだけで済みます。
たとえば、セキュリティ研究者 (および友人) の Rob Graham は、インターネットの部分的なスキャンを実行し、Shellshock を使用して新しいインターネット ワームを作成できると判断しました。
Bashに完全なパッチが適用されれば、脆弱性はブロックされるはずですが、まだ発見されていない奇妙なバリエーションが存在する可能性もあります。さらに悪いことに、パッチ適用が必要なコンピュータの数は計り知れないほど膨大です。Bashは、ネットワークデバイス、家電製品、産業用制御システムコンポーネント(電力会社など)、ホームオートメーションなど、意外な場所にも存在します。明るい面としては、すべてが悪用可能というわけではありません。脆弱なバージョンのBashと、興味深い方法で実行可能な任意のコマンドを送信する何らかの方法を組み合わせる必要があります。しかし、もう一度おさらいすると、それらの組み合わせがどのようなものなのか、私たちにはわかりません。
私たちは今後何年もShellshockと向き合うことになるでしょう。
ほとんどのMacが安全な理由— 以前述べたように、最近のOS XのバージョンはすべてBashをデフォルトシェルとしてインストールしており、他のUnixベースのオペレーティングシステムと同様に脆弱です。しかし、ほとんどのMacのデフォルト設定は、Shellshockバグを悪用する最もリスクの高い方法をブロックしているようです。MacをWebサーバーとして設定したり、Bashにリンクできる他のリモートソフトウェアを有効にしたりしない限り、安全であるはずです。とはいえ、Macサーバーを運用している人は、Bashの再コンパイルを検討すべきです。
自宅のネットワークでNAT(ルーターがISPから単一のIPアドレスを取得し、それに接続するすべてのデバイスに複数の内部IPアドレスを配布する方式)の背後にいる場合は、おそらく安全です。しかし、外出先で安全性が不明なネットワークを利用する場合は、OS Xの内蔵ファイアウォールをオンにすることをお勧めします(システム環境設定 > セキュリティとプライバシー > ファイアウォール > ファイアウォールをオン)。次に、「ファイアウォールオプション」ボタンをクリックして、「すべての外部接続をブロック」を選択します。これはやり過ぎかもしれませんが、Macの使用に悪影響を与えることはないでしょう(私のMacBook Proは常にこの設定になっています)。また、オン/オフの切り替えも簡単です。
私が最も懸念していたのは、DHCP経由の攻撃でした。ネットワークに接続するだけでMacが危険にさらされる可能性があるのです。この懸念を検証するため、自分で悪意のあるDHCPサーバーを設置して攻撃を試みましたが、効果はありませんでした。Macを侵害することはできず、Twitterで尋ねたところ、Appleはより安全な独自のDHCPクライアントを使用していることがわかりました。
Bashの脆弱性が及ぼす影響の全容はまだ解明されていないため、安易にBashにパッチを当てるのではなく、Appleからのセキュリティアップデートに注目してください。(セキュリティアップデートが提供されなくなった古いバージョンのOS Xをお使いの場合は、この脆弱性は数十年前から存在するため、Bashを再コンパイルすることをお勧めします。)しかし、Macの一般ユーザーへの影響は低いため、それ以外のユーザーは公式アップデートを待つべきです。Appleは既にメディア(私たちを含む)に対し、この問題への対応に取り組んでいることを通知しており、その他の修正のほとんどは
未完了であるため、もう少し待つのは構わないと思っています。