bash の脆弱性「ShellShock」

 こんにちは。
当サイト管理人のAsterismです。

 Unix系OSLinuxMac OS X)でShellShockと呼ばれる脆弱性が騒がれております。
WindowsXPサポート終了後、Linuxをインストールした人も多いと思われます。

 私もテスト用にLinuxの一つであるUbuntu 14.04 LTSをインストールしたPCがあります。
他人事ではありませんので、この脆弱性が存在するのか調べてみました。

脆弱性の内容

 bashと呼ばれるシェル(Windowsでいうコマンドプロンプトのようなもの)の不具合で、
bashを呼び出すことさえできれば(cgiのsystem関数などで)サーバー上の任意のプログラムを実行できてしまうという不具合です。

 この脆弱性はウェブアプリをインターネットで公開している場合に悪用される可能性があります。

 この脆弱性は、致命的な脆弱性のため、いろいろなサイトで取り上げられています。
IPA (http://www.ipa.go.jp/security/ciadr/vul/20140926-bash.html)
@IT (http://www.atmarkit.co.jp/ait/articles/1409/26/news071.html)
ITpro (http://itpro.nikkeibp.co.jp/atcl/news/14/092601079/)

アジャイル株式会社 (http://www.agilegroup.co.jp/technote/bash-update.html)
では脆弱性の試験方法も記載されておりました。

脆弱性のテストをしてみました

 上節のアジャイル株式会社に掲載されていた試験方法を使ってUbuntu 14.04 LTSでテストを行ってみました。
まず、「端末」を起動します。端末の起動方法は一番左上のアイコン「コンピューターとオンラインリソースを検索」をクリックして
「端末」と入力すればアプリケーション欄に端末アイコンが表示されるのでこれをクリックすれば起動できます。
ubuntuで端末起動

ユーザー名@デバイス名:~$

と表示された真っ黒な画面がでてきますので、

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

と入力します。

vulnerable
this is a test

と表示されました。これはアウトです!

 echo とは、単にecho の後の文字列を表示するためのコマンドなのですが
問題になるのは、' 'で囲まれた中
これは文字列を意味するので、コマンドではありません。
にも関わらず、「vulnerable」と出てきてしまったのが問題なのです

試しに、この脆弱性を使ってgeditを起動してみます。

env x='() { :;}; gedit' bash

・・・
起動してしまいました。

ShellShock gedit起動

Ubuntuの更新後、再テスト

 幸いにも2014年9月27日現在にはすでにUbuntu14.04 LTSではbashの脆弱性に対応したパッチが提供されていました。
さっそくUbuntuの更新です。
GUIでわかりやすく更新してみます。

 システム設定→詳細で、詳細ウインドウを表示します。
Screenshot_ubuntu_system_setting_2014-09-27

Ubuntu 詳細
右下のボタンが「更新をインストール」となっていたら、即インストールします。
(しばらく更新していませんでしたので、再起動が必要でした)

再び「端末」を起動して、もう一度

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

と入力します。
今度は、

bash: 警告: x: ignoring function definition attempt
bash: `x' の関数定義をインポート中にエラーが発生しました
this is a test

と出てきました。これで一安心です。

まとめ

 今回の騒動は、コンピュータを外部(インターネット)に公開していない場合はあまり脅威ではない騒動ですが、
ウェブサーバー等で外部に公開している場合、脅威になります。

 LinuxはPC以外にもいろいろなインターネットに接続する機器(ルータやWebカメラなど)にも搭載されています。
機器のメーカーから新しいファームウェアが公開されたら即アップデートしてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


上の画像に表示されている英数字を入力してください *

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>