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

Winnyネットワークに広がるRLO利用の拡張子偽装手法 157

ストーリー by Acanthopanax
あの手この手 部門より

inu 曰く

4月13日の日経ITpro記事によると、Winnyネットワークにおいて、Unicodeの制御文字 U+202E(Right-to-Left Override;RLO)を用いて拡張子を偽装したファイルが広まっているそうだ。本来はアラビア文字など右から左に記述する文字のために書字方向を変更するための制御文字だが、ファイル名の途中に挿入することで、画面に表示されるファイル名の右端に来る文字列を".txt"など無害な拡張子に見せ掛け、これにアイコン偽装などを組み合わせてexeファイルであることを偽装するようだ。この手法では、もはや単純なファイル名の目視だけでは、exeファイルかどうかの判別ができない。
ファイル名にUnicodeを許容するファイルシステムであれば、実行可能ファイルとならないまでも、同様の問題が発生するものと思われる。(例:奥村先生によるMac OS X上での実験)
さらに記事中で紹介されている「それ Unicode で」では、上記のRLOの問題以外にも、さまざまな文字処理によって発生する問題が指摘されている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 発展系が恐いな (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2007年04月22日 14時34分 (#1146486)
    視認で安全性を確認するという方法論そのものに問題があるのではないかと思う。RLO以外の手段とかもありえる気がするし、この件でもファイル共有に限らないだろうしね。

    後、この手のよく知られてない例外的な物ってセキュリティホールの温床になりそうな点も嫌だな。
    • by Anonymous Coward on 2007年04月22日 19時05分 (#1146584)
      GoogleでRLOを検証。
      http://www.google.co.jp/search?hl=ja&q=te%E2%80%AEts [google.co.jp]
      ※ウィンドウタイトルと「~の検索結果」の文字表示がひっくり返ってます。

      RLOをRLOと見抜けない人は以下略。
      http://www.google.co.jp/search?hl=ja&q=%E2%80%AE%E3%82%B3%E3%83%B3... [google.co.jp]

      スラド投稿のURLもひっくり返るみたいで。改行が入ればRLOはクリアされるのかな?

      ファイル共有だけでなく、ウェブアプリへの影響も少なくないように思えます。
      各種スクリプト言語でこういった制御文字を除去する方法はあるのかしら。

      (コピペを使えば)メッセの名前にもRLOを入れられますよ。
      親コメント
    • Re:発展系が恐いな (スコア:3, すばらしい洞察)

      by ticky (17030) on 2007年04月22日 16時12分 (#1146526) 日記
      問題は視認でなくて、
      実行形式ファイルを、
      OS側が、実行形式であると、問答無用で明示的に主張しないのことじゃないかな。

      例えば、初めて開く実行形式ファイルは、OS側が必ず「実行するか」と問うようにするとかすれば、ちょっとよくなる。

      それでも、スクリプトの類はどうしようもないけど、ライブラリに「実行者が意図しない動作を実行する可能性がある動作をさせる場合、警告を出す」機能を組み込み、アプリ制作者に積極的に使わせるようにすれば、結構大丈夫かも。

      Such like...
      「このファイルは、初めて実行されようとしています。あなたの予期しない動作を実行する可能性があります。実行しますか?」
      「このファイルは、以前実行された後、内容が変更されています、あなたの予期しない動作を実行する可能性があります。実行しますか?」
      親コメント
      • by taka2 (14791) on 2007年04月22日 16時31分 (#1146534) ホームページ 日記
        > 初めて開く実行形式ファイルは、OS側が必ず「実行するか」と問うようにするとかすれば、ちょっとよくなる。

        「初めて」限定じゃないですが、XPSP2からはそういう機能はありますね。
        「インターネットゾーン」なフォルダにあるファイルを実行しようとした時には、確認のダイアログが出ます。

        えっと、あとはWinnyのダウンロードフォルダをインターネットゾーンにする方法 [takagi-hiromitsu.jp]とか。
        親コメント
        • by ticky (17030) on 2007年04月22日 16時51分 (#1146542) 日記
          なるほど...。

          確かに、Win XP SP2からは、警告が出ますね。
          でも、ダウンロードする機能があるのは、IE6だけじゃないし、任意のフォルダに保存され得ます。

          だから、不十分に感じます。

          ----
          上記コメントを書いたのは、Mac OS Xでは、システム側で「.app」(アプリケーションパッケージ)の初回実行を確認している様子だからです。
          「初めて開くけど、いい?」
          と聴かれることもあります。
          (どういう条件で聴かれるかは今ひとつ判然としませんし、これでも不十分な気がします)
          (ちなみにバージョンもチェックしているみたいで、アプリをアップデートすると、パスワードマネージャへのアクセスについての警告が出ます。)

          ----
          提示いただいた、高木さんの記事で、ZoneIdが出てきます。
          Winnyなど、ファイルの共有・転送の機能のあるアプリケーションで、積極的にZoneIdを活用するようにすれば、いいような気もします。

          或は、ネットワークからのファイル転送機能を、OS/ライブラリに原則一任するようにして、OS側で、一律にチェックかけるようにはできないものでしょうか?
          (非現実的かなぁ。でも、とにかくアプリケーションに重要な機能の実装を常に求めるよりは、OS/ライブラリ側で実装しちゃった方がOPP的に正攻法な気がするんです。)
          親コメント
      • Re:発展系が恐いな (スコア:2, すばらしい洞察)

        by Teruching (3577) on 2007年04月23日 0時52分 (#1146654) ホームページ
        >「このファイルは、初めて実行されようとしています。あなたの予期しない動作を実行する可能性があります。実行しますか?」
        つまり、2回目移行の実行に怪しい動作をするトロイを作ればいいのですね。
        --
        天琉陳(Teruching)
        親コメント
      • Re:発展系が恐いな (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2007年04月22日 17時17分 (#1146551)
        >例えば、初めて開く実行形式ファイルは、OS側が必ず「実行するか」と問うようにするとかすれば、ちょっとよくなる。

        でも、Vistaが何でもかんでも確認するのはウゼエとか言う人も現れるわけで。
        親コメント
      • Re:発展系が恐いな (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2007年04月22日 18時45分 (#1146573)
        ダイアログの文章を読まずに「OK」を押しちゃう人が多そうな気がします……。
        親コメント
        • by ticky (17030) on 2007年04月22日 18時53分 (#1146579) 日記
          実行ファイルだと示す、ユニークなアイコンつきで警告出せば、ちょっとは歯止めかかるかなぁ。

          目的は、ユーザの意図しない動作(この場合は、非実行ファイルを開いたものと思っていたのに、実は実行ファイルを実行してしまった)を防ぐためだから、ユーザの一連の動作のどこかに簡単な介入ができればそれで十分かもしれません。
          親コメント
    • Re:発展系が恐いな (スコア:3, すばらしい洞察)

      by sarusubery (4712) on 2007年04月23日 1時47分 (#1146663)
      explorerが実行ファイルは赤色で表示するとかダメなんですかね。
      親コメント
    • Re:発展系が恐いな (スコア:2, すばらしい洞察)

      by hishakuan (32621) on 2007年04月22日 15時22分 (#1146504) 日記
      多くの人はそもそも
      >視認で安全性を確認
      してないんじゃないだろうか。
      親コメント
  • by Anonymous Coward on 2007年04月22日 14時40分 (#1146487)
    私は詳細表示にして「種類」列の表示を確認してます。
    ファイル名表記で確認するなんて、「○○.txt            .exe」で懲りてないのか、なんて思ったり。
    • by Anonymous Coward on 2007年04月22日 22時07分 (#1146617)
      それ以前にそんな長いファイル名を全部フィルタすればすむんじゃないの
      長すぎるやつって結局偽装な訳だし
      親コメント
    • by Anonymous Coward on 2007年04月22日 15時00分 (#1146493)
      懲りたならWinny使うのやめて下さい
      親コメント
      • ありそうな展開 (スコア:3, 参考になる)

        by Anonymous Coward on 2007年04月22日 18時45分 (#1146574)
        今日もニュースチェックするかー・・・何々?スラッシュドット「Winnyネットワークに広がるRLO利用の拡張子偽装手法 」。はっはっは、またWinnyで新しいウィルスか何かかw いまだにny使ってるような馬鹿どもには当然の報いだな(藁

        さーて、ちょっとメールチェックでもするか。
        ん、なんだこの知らない奴から来たメール? 変な「Sexe.txt [mie-u.ac.jp]」なんて添付ファイルが付いてるぞ?
        怪しいけど、とりあえずテキストファイルだから開いてみqすぇdrftgyふじこ

        #今回の件はWinny以外でもありえる話なので気をつけましょう。
        #(もとコメントの人が言いたいのはそういうことじゃないとは思うけど)
        親コメント
    • by Anonymous Coward on 2007年04月22日 16時25分 (#1146533)
      つーか、.exeで実行権を付与してるOSの方がアウトでしょ。
      何10年経っても変わらないんだうけど。
      親コメント
      • by Anonymous Coward on 2007年04月22日 21時59分 (#1146613)
        どのOSのことかわかりませんが、
        Win2k以降のWinNT系列OSは、環境変数PATHEXTに拡張子が列挙されていて、ファイルシステムで
        実行可能ビットが立っているものが実行可能なファイルです。
        .EXEは特別扱いの拡張子ではなく、デフォルトでその条件を満たしているだけに過ぎません。
        CreateProcess()では元々どんなファイル名のファイルでも実行可能です。
        PATHEXTさえ適切に設定すれば、どんな拡張子のファイルでも、拡張子なしのファイルでもエクスプローラやcmd.exeから実行可能です。
        親コメント
      • by Anonymous Coward on 2007年04月22日 18時00分 (#1146562)
        とはいえ、そういうのが主流なわけですが。
        MacOSですら、Xになって、.appと名前が違うだけで“同レベルに堕ちた”し。
        親コメント
        • by Anonymous Cowboy (6205) on 2007年04月23日 9時51分 (#1146696)
          OSXのアプリケーションは.appとつく単一ファイルに見えますが
          実態はフォルダ構造であり、その内部にデータやら実行バイナリやらのファイルが
          含まれています。

          そんでバイナリが実行可能かどうかは通常のUNIXと同じくumaskによるものです。
          これには拡張子は影響しません。

          また.appフォルダ全体にも同様のumaskが設定されておりますので
          単に「拡張子がなんであるか」で実行されるかどうかが決まっているわけではありません。
          親コメント
    • by Anonymous Coward on 2007年04月22日 14時46分 (#1146489)
      「exe」でフィルタしとけばOKでは?
      親コメント
    • 私はWinXP/Vistaで「並べて表示」「グループで表示」(種類)を使ってます。
      Vistaではグループ内のファイル数を表示したり、グループ名をクリックする
      とグループ内のファイルを全選択してくれたりと便利ですよ。

      でもVistaでは画像などが混在しているフォルダの場合、「グループで表示」
      の候補に「種類」が表示されなくなるようです。(名前・撮影日・タグ・・・の
      並べ替え条件バーを右クリックすれば「種類」を追加できます)

      Vistaでは検索機能も強化されたため、どこに何のファイルがあるか調べず、
      フォルダ内のファイルを整理したがらず、そもそも拡張子って何?という
      人が増えそうでちょっと心配ですね。
      --
      匠気だけでは商機なく、正気なだけでは勝機なし。
      親コメント
  • by kei100 (5854) on 2007年04月22日 15時21分 (#1146502)
    これ、今はWinnyだけですけど将来的に色々な所で出回りそうで嫌ですね・・・
    でも、WinnyってUnicodeファイル名でファイルを管理していてそのまま流通できるのですかね?
    確かWin9x系プラットフォームで動作するような記憶が有るのでANSI系APIを使ってそうです。
    その場合、Unicodeのファイル名情報は一部が欠落するでしょうから直接の偽装はないかな?
    # 亜種や派生したWinnyや後継の物、実際の実装がどうなのかは調べてないので解りません。
    # 図5●Winnyネットワークにおけるファイル偽装の現状に例として出ていると期待してみたけど、どうやら載ってない?

    もしも直接偽装と違うならUnicodeファイル名に対応した書庫に注意という事であってWinnyに限った事では既にないですね。
    どこかのサイトからリンクされた書庫ファイルを展開したら罠という可能性もありますし。
    # まぁ、リスクの意味合いでは違うと怒られそうですが。

    対処法としては右クリックでファイルを確認する事でしょうか?
    別のユーザーで実行するとか出るなら実行ファイルなの確定ですし。

    ## どうでも良いオフトピですが図5の"dft32_v405_b00.exe"ってHGST [hitachigst.com]のDFTにウイルス仕込んだ物なのかな? [hitachigst.com]
    ## Winnyネットワークってすごい魑魅魍魎というか混沌としてるんですね。(被害者のPC上のファイルが流通した結果かもしれませんが)
  • by Anonymous Coward on 2007年04月22日 15時48分 (#1146517)
    ITPro の方にコメントした人なので AC。ですが、引用しておきます。
    (当人による引用だからいいよね。)

    記事のデータは興味深く読ませていただきました。
    ただ一点、気になるのが、RLOやアイコン偽装を指摘していながら、explorer の詳細表示の種類表示の有効性について触れていないことです。
    図5は確かに「危機感」を煽るには有効ですが、画面は詳細表示の画面に見えるにもかかわらず種類表示を意図的に割愛しているように見えます。
    これにはバラエティ番組の「ヤラセ」のような不快感を覚えます。

    「こうすれば少しは安全性は上がるよ」とか言いにくいのはわかりますが、技術の土俵で勝負する記事でこのような『為にする危機感の演出』というのは記事の信頼性も損ないますし、少々下品かと思います。

    Winny 及びその利用環境の危険性を、「ほら踏んじゃったじゃないか、言わんこっちゃない」と啓蒙したいのかも知れないですが、世の中の危険は Winny 関連だけではないですから「踏まないためにはどうすべきか」という啓蒙の方が本筋なのではないかと思います。
  • Mac OS X上での実験 (スコア:2, すばらしい洞察)

    by kashiwagi.gf (33816) on 2007年04月22日 16時32分 (#1146536)
    > 右クリック→「プロパティ」(Mac OS Xでは「情報を見る」)で
    > 一番上の「のプロパティ」(Mac OS Xでは「の情報」)が逆になっているので見破れる。

    いちいちファイルを右クリックしなきゃ確認できないうえに、
    「見破れる」理由が、どうもバグくさいんですが…。
  • 微妙な対策方法 (スコア:2, 参考になる)

    by MatsuTake (16700) on 2007年04月22日 16時34分 (#1146537)

    グループポリシーで圧縮ファイルの展開先を実行禁止にする [atmarkit.co.jp]と展開→即実行だけは防げるようになります。

    ただし移動してしまうと意味がないので対策としては微妙です。

  • 時代遅れだな (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2007年04月22日 17時52分 (#1146560)
    とりあえずWindows98は無害だw

    名前でファイルの属性を設定する方がそもそも間違ってると気づかないのだろうか?
  • by Anonymous Coward on 2007年04月22日 19時05分 (#1146585)
    みんなデフォルトのまま使うから悪いんですよ~!
    私の場合、まずアイコン偽装系には引っかかりませんよ。

    だって、テキストファイルのアイコンが「広場まひる」だったり、
    フォルダアイコンも昔買ったVirtua callか
    なにかのソフトについてたアイコンだし、
    その他、マルチメディアデータ系は対応するフリーソフトのものだったりするので
    まず、踏まないです。
  • by Anonymous Coward on 2007年04月22日 15時17分 (#1146500)
    奥村先生の方法を、Linuxのja_JP.UTF-8でやってみたんですが、urxvtもkonquerorも途中が化けて.exeとなりました。
    OSXの結果から期待してみたのですが残念
    • by greentea (17971) on 2007年04月22日 20時42分 (#1146599) 日記
      うちのKonquerorは、見事にだまされていましたが。
      ステータスバーはきれいに反転しています。
      Qt: 3.3.7
      KDE: 3.5.6-4.fc6
      Konqueror: 3.5.6-3.fc6

      で、Konsole上のbashは騙されないでRLOを無視するんですが
      ファイル名にはきっちりとRLOが入っているので、
      (補完なら大丈夫だけど)手入力だと、
      ファイル名はあっていそうなのになぜか存在しないということに。
      --
      1を聞いて0を知れ!
      親コメント
  • explorerの設定でそういう風にできないかな?

    コンテキストメニューに[実行]ってのを付け加えれば、使い勝手もそんなに悪くはならなさそうだし。
typodupeerror

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

読み込み中...