こんにちは。
当サイト管理人のAsterismです。
Unix系OS(LinuxやMac 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でテストを行ってみました。
まず、「端末」を起動します。端末の起動方法は一番左上のアイコン「コンピューターとオンラインリソースを検索」をクリックして
「端末」と入力すればアプリケーション欄に端末アイコンが表示されるのでこれをクリックすれば起動できます。
と表示された真っ黒な画面がでてきますので、
と入力します。
this is a test
と表示されました。これはアウトです!
echo とは、単にecho の後の文字列を表示するためのコマンドなのですが
問題になるのは、' 'で囲まれた中
これは文字列を意味するので、コマンドではありません。
にも関わらず、「vulnerable」と出てきてしまったのが問題なのです
試しに、この脆弱性を使ってgeditを起動してみます。
・・・
起動してしまいました。
Ubuntuの更新後、再テスト
幸いにも2014年9月27日現在にはすでにUbuntu14.04 LTSではbashの脆弱性に対応したパッチが提供されていました。
さっそくUbuntuの更新です。
GUIでわかりやすく更新してみます。
システム設定→詳細で、詳細ウインドウを表示します。
右下のボタンが「更新をインストール」となっていたら、即インストールします。
(しばらく更新していませんでしたので、再起動が必要でした)
再び「端末」を起動して、もう一度
と入力します。
今度は、
bash: `x' の関数定義をインポート中にエラーが発生しました
this is a test
と出てきました。これで一安心です。
まとめ
今回の騒動は、コンピュータを外部(インターネット)に公開していない場合はあまり脅威ではない騒動ですが、
ウェブサーバー等で外部に公開している場合、脅威になります。
LinuxはPC以外にもいろいろなインターネットに接続する機器(ルータやWebカメラなど)にも搭載されています。
機器のメーカーから新しいファームウェアが公開されたら即アップデートしてください。