パスワードを忘れた? アカウント作成
11892 story

Safariにスクリプト自動実行の脆弱性 28

ストーリー by Acanthopanax
チェックを外す 部門より

heise onlineが、Safariにスクリプト自動実行の脆弱性が発見されたことを伝えている。同記事最終段落にデモへのリンクがあり、また発見者のMichael Lehn氏もデモを用意している。実行可能となるのは、"#!/bin/bash"のような行が先頭にないシェルスクリプトで、"jpg"や"mov"のような拡張子がつけられ、/Applications/Utilities/Terminal.appで開くようにメタデータがつけられたファイル。これをZIPアーカイブにしたものを、「ダウンロード後、“安全な”ファイルを開く」にチェックが入っている状態(デフォルト設定)のSafariでダウンロードすると、その中のスクリプトを確認なしに実行してしまう。
現状での対策は、「ダウンロード後、“安全な”ファイルを開く」のチェックをはずすか、Terminal.app(ターミナル)を/Applications/Utilitis (アプリケーション/ユーティリティ)以外の場所に移動することとされている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by kei100 (5854) on 2006年02月21日 19時10分 (#887616)
    なんか、デジャブというかどこでもやるんだなぁとか思ったり。

    今回はMacのリソースヘッダが仇になるという感じなんですが
    このバグの原因は拡張子とMIMEとリソースヘッダと実際の中身の何でファイルの種類を決定するかという
    アプリケーション内でのポリシー不一致がもたらしてる気がします。
    やっぱ大規模だと意思疎通や自動機能って厄介なのね・・・

    ところで、これって起動できるのはインストール先が解っているなら何でも多分起動できるんですよね?
    Terminal.appを移動しても、 /usr/bin/bash とかに書き換えられたらどうなるんでしょう?
    チェック外す方の回避策じゃないと漏れがありそうなんですが・・・

    # Winメインだけど、MacOS X使いが周囲に多いので一応警鐘しておこっと。
  • by nInfo (14824) on 2006年02月22日 15時09分 (#888097)
    Safariのセキュリティホールではないというより正確な記事 [nikkeibp.co.jp]が出ています。
    • 結局、ファイルとアプリケーションの関連づけがもとで起こる問題みたいですね。一番わかりやすい(かつ色々できそうな)のがターミナルってだけで、別に他のアプリケーションでもいい。

      しかし、じゃあどうしろというのだという気もする…

      --
      Linux のデスクトップ環境とかではどうなんだろうな?
      親コメント
      • 切り分け (スコア:4, 参考になる)

        そのIT Proの記事 [nikkeibp.co.jp]は問題の切り分けが何だか曖昧なような。私見では、今回の脆弱性には(Mail.appの含め)問題が3つ。

        1. Safariの問題

          Safariでは、「ダウンロード後、“安全な”ファイルを開く」場合でも、アプリケージョンやシェルスクリプトがファイルに含まれていれば本来なら警告を出す。しかし今回、これを回避してシェルスクリプトを実行させる方法が見つかった。

        2. Mail.appの問題

          Mail.appでも、メールから添付ファイルを直接開くときには、その添付ファイルがアプリケーションやシェルスクリプトであれば警告を出す。しかし今回、これを回避してシェルスクリプトを実行させる方法が見つかった。また、実体がシェルスクリプトでもJPEGファイルなどに見せかけることができる。

        3. Finderの問題

          ターミナルで開くように設定されている「ターミナル書類」でも、.jpgや.movという拡張子を付けることで、JPEGファイルやMOVファイルに見せかけることができる。

        上の2つは、基本的にはアプリケーションレベルの話のような気がするのですが。

        [参考] アップルTIL: インターネットからダウンロードしたメール添付書類やコンテンツを安全に利用するヒント [apple.co.jp]。今回、末尾で述べられているセキュリティ機構を回避されてしまうことが分かったわけですが。

        親コメント
        • PC WEBの記事 [mycom.co.jp]でも、「ZIPファイルに含まれる偽装メタデータ」とかあるのですが、このメタデータはFinderの「情報を見る」→「このアプリケーションで開く」で設定できるわけです。で、「ターミナル」で開くように指定するとファイルの種類も「ターミナル書類」となります。「ターミナル」で開くように明示的に指定された「ターミナル書類」が開かれたときに、「ターミナル」で実行されるのはまあ当然ですし、このメタデータはメタデータとして正常なので、ZIPやsitのアーカイブでも保存されるのもまあ異常ではないでしょう(sitでも確認しました)。

          ということで、やっぱり問題は、実際には安全ではない(かもしれない)ファイルを確認なしに開いてしまうアプリケーション(「ターミナル」も含めていいかも)の問題や、ファイルの種類で「ターミナル書類」と認識されているにもかかわらず、拡張子を優先してJPEGなどのアイコンで表示してしまうということではないかと思うわけです。

          親コメント
          • Re:切り分け (スコア:2, 興味深い)

            by docile-jp (16652) on 2006年02月23日 11時55分 (#888490) 日記
            先のコメントでは書かなかったけれど、色々なファイルの拡張子や「ファイルの種類」をいじって試してみてはいます。それで「関連付けがもとで起こってるのかな」と考えた次第。(…関連付けという語は妥当じゃなかったかも。)

            # そして Terminal.app 以外のターミナルアプリケーションでも、Terminal.app で開くのと同じことができたりして

            アイコンに関しては何でも貼りつけられるので、あまり関係ない気がします。でも、アイコンを信用するなという話にはなるかもしれません。

            ・古い Mac OS では拡張子に(あまり?)依存していなかったし、それは現在も引き継がれている。
            ・Mac OS X で、拡張子によるファイル識別を導入した。
            このへんの関係がこなれていなかったのかなぁと思いました。

            --
            スクリプトだけじゃなくてコンパイルしたバイナリも開けられるみたいだ
            親コメント
  • by jtakao (16864) on 2006年02月21日 21時15分 (#887674)
    これは、.movとかに偽装されたシェルスクリプトを簡単に実行してしまうという、Terminal.appの脆弱性と言えるんじゃないでしょうかね。

    たとえ「ダウンロード後、“安全な”ファイルを開く」のチェックを外しても、はたまたFirefoxでダウンロードしたとしても、動画ファイル等のように見えるファイルをダブルクリックしてしまえばスクリプトは実行されてしまうわけで…。

    とりあえず頻繁にターミナルを使う事が無いようであれば、ターミナルをアクセス不可にしておいたほうが安全かも。
  • VersionTracker に (スコア:2, 参考になる)

    by Anonymous Coward on 2006年02月22日 19時19分 (#888162)
    Safari でダウンロード後にファイルを開く機能を停止させるスクリプト [versiontracker.com]が載ってますね。

    自宅に戻らないと試せないので、紹介のみ。
  • by docile-jp (16652) on 2006年02月21日 17時42分 (#887582) 日記
    しばらく前にも、このチェックマークを外させる何かがなかったっけか。

    --
    いちいちアプリケーション起動するのが邪魔で外しっぱなしの ID
  • by Anonymous Coward on 2006年02月26日 11時21分 (#890028)
    他の方も触れていることですが、Launch Servicesを使用して
    ファイルを開くタイプのアプリケーション(殆どすべてか)は、
    Launch Servicesがファイルとアプリケーションをバインドする条件 [apple.com]
    の通りにファイルの安全性を判断し、またユーザに示すべきです。
    表示と挙動に矛盾があってはいけません。

    Safariであれば、「安全なファイルを開く」判断を上記リンクの優先順に
    基づいて行う。

    Mailであれば、優先順に従い、Terminal.appの書類であることをユーザに
    明示する(書類のアイコンを置き換えるか、それよりも目立つ方法で)

    Finderも、ファイルの関連付けを確認するのに「情報を見る」ウインドウを
    表示する必要があるのは、不親切と言えるでしょう。

    また、今からでも遅くないので、Appleはこのような判断を行うリファレンス・
    コードか、標準的なAPIを提供するべきです。
    ファイルの関連付け判断がここまで複雑化したのは、Mac OS Xがその道を
    選んだからに他なりません。
    • by targz (14071) on 2006年03月04日 7時58分 (#894381) 日記
      TidBITS #818 に分かりやすい解説 [tidbits.com]が出ました。

      ここでは、 Apple に対して「どんなファイルでも、ただ開くだけでコードとして実行されるものには、それと分かるように、目立つ『バッジ』をつけるべきだ。」という提案がされています。

      >ファイルの関連付け判断がここまで複雑化したのは、Mac OS Xがその道を選んだからに他なりません。

      ほんとにそうですね。ファイルの関連付けは Mac OS 9 方式の方がよかったかも。あれもデスクトップデータベースが壊れると困るという問題はあったわけですが。
      親コメント
typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...