inuの日記: Winnyネットワークに蔓延する拡張子偽装手法: RLO 157
日記 by
inu
4月13日の日経IT Pro記事によると、Winnyネットワークにおいて、Unicodeの制御文字 U+202E(Right-to-Left Override;RLO)を用いて拡張子を偽装したファイルが広まっているそうだ。本来はアラビア文字など右から左に記述する文字のために書字方向を変更するための制御文字だが、ファイル名の途中に挿入することで、画面に表示されるファイル名の右端に来る文字列を".txt"など無害な拡張子に見せ掛け、これにアイコン偽装などを組み合わせてexeファイルであることを偽装するようだ。この手法では、もはや単純なファイル名の目視だけでは、exeファイルかどうかの判別ができない。
ファイル名にUnicodeを許容するファイルシステムであれば、実行可能ファイルとならないまでも、同様の問題が発生するものと思われる。(例:奥村先生によるMac OS X上での実験)
さらに記事中で紹介されている「それ Unicode で」では、上記のRLOの問題以外にも、さまざまな文字処理によって発生する問題が指摘されている。
---
タレこみ。採用。トピック設定するの忘れてた…。
題名がわかりやすく。程度の表現が「蔓延」→「広がる」という感じか。「IT Pro」→「ITpro」。
発展系が恐いな (スコア:2, すばらしい洞察)
後、この手のよく知られてない例外的な物ってセキュリティホールの温床になりそうな点も嫌だな。
Re:発展系が恐いな (スコア:5, 興味深い)
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, すばらしい洞察)
実行形式ファイルを、
OS側が、実行形式であると、問答無用で明示的に主張しないのことじゃないかな。
例えば、初めて開く実行形式ファイルは、OS側が必ず「実行するか」と問うようにするとかすれば、ちょっとよくなる。
それでも、スクリプトの類はどうしようもないけど、ライブラリに「実行者が意図しない動作を実行する可能性がある動作をさせる場合、警告を出す」機能を組み込み、アプリ制作者に積極的に使わせるようにすれば、結構大丈夫かも。
Such like...
「このファイルは、初めて実行されようとしています。あなたの予期しない動作を実行する可能性があります。実行しますか?」
「このファイルは、以前実行された後、内容が変更されています、あなたの予期しない動作を実行する可能性があります。実行しますか?」
Re:発展系が恐いな (スコア:2, 参考になる)
「初めて」限定じゃないですが、XPSP2からはそういう機能はありますね。
「インターネットゾーン」なフォルダにあるファイルを実行しようとした時には、確認のダイアログが出ます。
えっと、あとはWinnyのダウンロードフォルダをインターネットゾーンにする方法 [takagi-hiromitsu.jp]とか。
Re:発展系が恐いな (スコア:1)
確かに、Win XP SP2からは、警告が出ますね。
でも、ダウンロードする機能があるのは、IE6だけじゃないし、任意のフォルダに保存され得ます。
だから、不十分に感じます。
----
上記コメントを書いたのは、Mac OS Xでは、システム側で「.app」(アプリケーションパッケージ)の初回実行を確認している様子だからです。
「初めて開くけど、いい?」
と聴かれることもあります。
(どういう条件で聴かれるかは今ひとつ判然としませんし、これでも不十分な気がします)
(ちなみにバージョンもチェックしているみたいで、アプリをアップデートすると、パスワードマネージャへのアクセスについての警告が出ます。)
----
提示いただいた、高木さんの記事で、ZoneIdが出てきます。
Winnyなど、ファイルの共有・転送の機能のあるアプリケーションで、積極的にZoneIdを活用するようにすれば、いいような気もします。
或は、ネットワークからのファイル転送機能を、OS/ライブラリに原則一任するようにして、OS側で、一律にチェックかけるようにはできないものでしょうか?
(非現実的かなぁ。でも、とにかくアプリケーションに重要な機能の実装を常に求めるよりは、OS/ライブラリ側で実装しちゃった方がOPP的に正攻法な気がするんです。)
Re:発展系が恐いな (スコア:2, すばらしい洞察)
つまり、2回目移行の実行に怪しい動作をするトロイを作ればいいのですね。
天琉陳(Teruching)
Re:発展系が恐いな (スコア:1, すばらしい洞察)
でも、Vistaが何でもかんでも確認するのはウゼエとか言う人も現れるわけで。
Re:発展系が恐いな (スコア:1, すばらしい洞察)
Re:発展系が恐いな (スコア:1)
目的は、ユーザの意図しない動作(この場合は、非実行ファイルを開いたものと思っていたのに、実は実行ファイルを実行してしまった)を防ぐためだから、ユーザの一連の動作のどこかに簡単な介入ができればそれで十分かもしれません。
Re:発展系が恐いな (スコア:3, おもしろおかしい)
問題は会社ではどうするかだな……
Re:発展系が恐いな (スコア:2, おもしろおかしい)
入りますか?
だと、たいがいがOKを押しそうですが…
会社?
押す人は押すんではないでしょうかね?
Re:発展系が恐いな (スコア:1)
# あー、でもひょっとしてGNOMEとかKDEとかであいこんをだぶるくりっくしたりする話なのかな。おじさんそういうのはむつかしくてよくわかんないなぁ(^^; 多分、/etc/mime.types を使って MIME Type を決めて、そこからアプリを起動する方法を指定するのだろうけれども。
Re:発展系が恐いな (スコア:3, 参考になる)
Re:発展系が恐いな (スコア:1)
#! で始まっていないシェルスクリプトを実行するためじゃないでしょうか。
そんな機能は必要無いだろうって気もしますが…
Re:発展系が恐いな (スコア:2, 参考になる)
> 新しい Office の UI なんか、どう考えても『ユーザ』というものが視界に入っていないとしか思えないし。
あれ、使ってみれば分かりますが、意外とちゃんと練られていますよ。
確かに、今までとは完全に異なるインターフェイスなので、取っつきにくいのは事実でしょうし、このGUIになってからの最初のバージョンであることによる細部の詰め切れていない部分(数式エディタや表の調整など、タブを頻繁に切り替えないといけないことがある)はありますが、テンプレート指向を前面に押し出したインターフェイスは悪くないです。
> 本当に生産性のエンハンスになるのかどうか疑問の UI なんかもそうですしね。
こちらも、XPをクラシックモードで使っていたような人々には取っ付きにくいのは事実です。使いやすさや生産性の向上を得るには、今までのやり方を完全に変えなければならないという部分がVistaやOffice 2007が乗り越えないといけないユーザー心理なんでしょうね。そういう意味では、そういう面倒というユーザー心理を乗り越えるためのキラーになるものがないのが、これら製品の弱点でしょうね。
Re:発展系が恐いな (スコア:3, すばらしい洞察)
Re:発展系が恐いな (スコア:2, すばらしい洞察)
>視認で安全性を確認
してないんじゃないだろうか。
ファイル名の表示なんて見ない (スコア:2, 興味深い)
ファイル名表記で確認するなんて、「○○.txt .exe」で懲りてないのか、なんて思ったり。
Re:ファイル名の表示なんて見ない (スコア:3, すばらしい洞察)
長すぎるやつって結局偽装な訳だし
Re:ファイル名の表示なんて見ない (スコア:2, すばらしい洞察)
ありそうな展開 (スコア:3, 参考になる)
さーて、ちょっとメールチェックでもするか。
ん、なんだこの知らない奴から来たメール? 変な「Sexe.txt [mie-u.ac.jp]」なんて添付ファイルが付いてるぞ?
怪しいけど、とりあえずテキストファイルだから開いてみqすぇdrftgyふじこ
#今回の件はWinny以外でもありえる話なので気をつけましょう。
#(もとコメントの人が言いたいのはそういうことじゃないとは思うけど)
Re:ファイル名の表示なんて見ない (スコア:2, すばらしい洞察)
何10年経っても変わらないんだうけど。
Re:ファイル名の表示なんて見ない (スコア:3, 参考になる)
Win2k以降のWinNT系列OSは、環境変数PATHEXTに拡張子が列挙されていて、ファイルシステムで
実行可能ビットが立っているものが実行可能なファイルです。
.EXEは特別扱いの拡張子ではなく、デフォルトでその条件を満たしているだけに過ぎません。
CreateProcess()では元々どんなファイル名のファイルでも実行可能です。
PATHEXTさえ適切に設定すれば、どんな拡張子のファイルでも、拡張子なしのファイルでもエクスプローラやcmd.exeから実行可能です。
Re:ファイル名の表示なんて見ない (スコア:1, すばらしい洞察)
MacOSですら、Xになって、.appと名前が違うだけで“同レベルに堕ちた”し。
Re:ファイル名の表示なんて見ない (スコア:2, 参考になる)
実態はフォルダ構造であり、その内部にデータやら実行バイナリやらのファイルが
含まれています。
そんでバイナリが実行可能かどうかは通常のUNIXと同じくumaskによるものです。
これには拡張子は影響しません。
また.appフォルダ全体にも同様のumaskが設定されておりますので
単に「拡張子がなんであるか」で実行されるかどうかが決まっているわけではありません。
Re:ファイル名の表示なんて見ない (スコア:1, すばらしい洞察)
Re:ファイル名の表示なんて見ない (スコア:2, 参考になる)
中に入れるしかないので、フィルタは効果ないでしょう。
Re:ファイル名の表示なんて見ない (スコア:1)
Re:ファイル名の表示なんて見ない (スコア:1)
Vistaではグループ内のファイル数を表示したり、グループ名をクリックする
とグループ内のファイルを全選択してくれたりと便利ですよ。
でもVistaでは画像などが混在しているフォルダの場合、「グループで表示」
の候補に「種類」が表示されなくなるようです。(名前・撮影日・タグ・・・の
並べ替え条件バーを右クリックすれば「種類」を追加できます)
Vistaでは検索機能も強化されたため、どこに何のファイルがあるか調べず、
フォルダ内のファイルを整理したがらず、そもそも拡張子って何?という
人が増えそうでちょっと心配ですね。
匠気だけでは商機なく、正気なだけでは勝機なし。
簡単な防御法(?) (スコア:2, 興味深い)
でも、WinnyってUnicodeファイル名でファイルを管理していてそのまま流通できるのですかね?
確かWin9x系プラットフォームで動作するような記憶が有るのでANSI系APIを使ってそうです。
その場合、Unicodeのファイル名情報は一部が欠落するでしょうから直接の偽装はないかな?
# 亜種や派生したWinnyや後継の物、実際の実装がどうなのかは調べてないので解りません。
# 図5●Winnyネットワークにおけるファイル偽装の現状に例として出ていると期待してみたけど、どうやら載ってない?
もしも直接偽装と違うならUnicodeファイル名に対応した書庫に注意という事であってWinnyに限った事では既にないですね。
どこかのサイトからリンクされた書庫ファイルを展開したら罠という可能性もありますし。
# まぁ、リスクの意味合いでは違うと怒られそうですが。
対処法としては右クリックでファイルを確認する事でしょうか?
別のユーザーで実行するとか出るなら実行ファイルなの確定ですし。
## どうでも良いオフトピですが図5の"dft32_v405_b00.exe"ってHGST [hitachigst.com]のDFTにウイルス仕込んだ物なのかな? [hitachigst.com]
## Winnyネットワークってすごい魑魅魍魎というか混沌としてるんですね。(被害者のPC上のファイルが流通した結果かもしれませんが)
Re:簡単な防御法(?) (スコア:1)
バラエティ番組的盛り上げ方 (スコア:2, 参考になる)
(当人による引用だからいいよね。)
Re:ばらまいているのは誰? (スコア:4, すばらしい洞察)
該当ノードが所有するファイル数が莫大な物になればウィルスの量も相対的に増える可能性は十分にありますし。
論文とかみたいデータが出てるわけじゃないし、議論するには私の理解が中途半端だと思うので間違っているかもですが。
でも、そのノードが保有するファイル母数が出ていないと数字のトリックにしか見えないです。
てなわけで歯切れが悪いのは仕方ないかなーとも。
何が言いたいかっていうと、この話で出ているノードがウィルスをばら撒く第1世代である愉快犯等の主犯ではなく、
結果的に生物濃縮みたいに偽装されたウィルスを溜め込んだだけのノードであるか?という可能性の有無ですね。
もちろん、その両者ともネットワーク的には存在しない方が好ましいのでしょうが。
この記事は誤りばかりで読む価値無しです (スコア:5, 興味深い)
某所で知った時は、こんなバカ(よく分かっていないのは仕方ないとしても、肩書き付きで日経ITProに寄稿する・・・)な上司の
部下や関係者はいい迷惑だ、と思いました。
スルーしようと思ったですが、ここのコメントを見ていると、あの記事の酷さが分かっていない人も結構居そうですし、
詳しくない人が、真面目なセキュリティ研究者に対して「リフォーム詐欺的なイメージを持つのでは」と心配になったので、
あの記事でおかしいと思ったことを並べ立てることにします。
#1146517 [srad.jp]でも書かれているように、
WinnyはUnicode未対応のようですし、UnicodeのRLOが悪用されるとすればアーカイブでしょうね。
# Winnyと並び人気のShareだとアーカイブではなくても悪用できそうですけど、Winnyと明言していますし・・・
# 標準のZIPだと無理で、RARはWinRARだと可能だけどunrar32.dllではエラー、LZHはunlha32.dllではエラーで
# それなりにメジャーで、DLLを使った一発解凍系でも悪用可能なのは7-Zipぐらいだったと思います。
## 私はまだテスト不足ですし、突っ込み大歓迎です。
この手法は(まともな研究者の間では)1年以上前に話題になっていたものですし
セキュリティ関連のブログでも半年ぐらい前からかなり話題になっていたと思います。
Antinnyによるトラフィックって具体的には何を指すのでしょうかね?
DoS攻撃を行う亜種(?)のトラフィックなのでしょうか?
それとも、Antinnyの含まれているファイルのWinnyネットワークでのトラフィックなのでしょうか?
後者であれば、かなり価値のある研究だと思いますが、この記事のレベルだとそうだとは到底思えませんけど (苦笑)
DoS攻撃を行う亜種は数種類だったと思いますが、この記事で書かれているマイクロソフトの駆除ツールというのは
「43種類の『Winnyウイルス』に対応」,マイクロソフトが駆除ツールの新版 [nikkeibp.co.jp]
これのことなんでしょうかね。
P2P、特にWinnyやShareを狙ったウイルスをある程度分かっている人なら、どういう意味かすぐ分かるでしょうね(苦笑)
命名規則からトレンドマイクロのウイルスバスターでチェックしたのだと思いますが、それらを検索すると、
WORM_ANTINNY.BI [trendmicro.co.jp] WORM_ANTINNY.BD [trendmicro.co.jp] WORM_ANTINNY.BB [trendmicro.co.jp]
等が見つかりますし、(おそらく)感染者が意図せずに、ワームの拡散に協力させられているのだろうと想像できます。
PE_PARITE.A [trendmicro.co.jp]はちょっと変わっていますが、Antinnyが作成した実行ファイルに感染しているのでは、と思います。
1つのノードから128のウイルスファイルをダウンロード出来た、とありますが、個人的には「たった128個ですか?」とすら思えます(苦笑)
唯一、まともと思えるのが、352個の実行ファイルの内検出できたのは6割強、という所ですが、
これもまた、以前からあちこちで言われていた事の追試程度でしょうし、
この程度のサンプル数なら、一般の個人でも確認している人がかなり居るんじゃないでしょうかね。
単なる臆病者の Anonymous Cat です。略してACです。
Re:ばらまいているのは誰? (スコア:1)
…と思ってOpenWinnyを探して見ると、ホームページが無くなっている。
おそらくWinnyネットワーク上には転がっていたりするんでしょうけど。
Mac OS X上での実験 (スコア:2, すばらしい洞察)
> 一番上の「のプロパティ」(Mac OS Xでは「の情報」)が逆になっているので見破れる。
いちいちファイルを右クリックしなきゃ確認できないうえに、
「見破れる」理由が、どうもバグくさいんですが…。
微妙な対策方法 (スコア:2, 参考になる)
グループポリシーで圧縮ファイルの展開先を実行禁止にする [atmarkit.co.jp]と展開→即実行だけは防げるようになります。
ただし移動してしまうと意味がないので対策としては微妙です。
Re:微妙な対策方法 (スコア:3, 参考になる)
時代遅れだな (スコア:2, すばらしい洞察)
名前でファイルの属性を設定する方がそもそも間違ってると気づかないのだろうか?
ファイル名表記に頼らなければいい! (スコア:2, おもしろおかしい)
私の場合、まずアイコン偽装系には引っかかりませんよ。
だって、テキストファイルのアイコンが「広場まひる」だったり、
フォルダアイコンも昔買ったVirtua callか
なにかのソフトについてたアイコンだし、
その他、マルチメディアデータ系は対応するフリーソフトのものだったりするので
まず、踏まないです。
Re:ファイル名表記に頼らなければいい! (スコア:2, 参考になる)
その辺はアイコンで判断できそうな気がする。
圧縮フォルダ内ではexeファイルはどんなアイコンだろうと
アイコンの絵を表示出来ないので
展開さえせずに一時展開で確認してれば明らかにおかしいことがわかりそうな気がした。
と言ってもこの手が使えるのはzipだけか。
MSKK謹製のlzhのはどうなるんだろう?
Linuxではどうなる? (スコア:1, 参考になる)
OSXの結果から期待してみたのですが残念
Re:Linuxではどうなる? (スコア:2, 興味深い)
ステータスバーはきれいに反転しています。
Qt: 3.3.7
KDE: 3.5.6-4.fc6
Konqueror: 3.5.6-3.fc6
で、Konsole上のbashは騙されないでRLOを無視するんですが
ファイル名にはきっちりとRLOが入っているので、
(補完なら大丈夫だけど)手入力だと、
ファイル名はあっていそうなのになぜか存在しないということに。
1を聞いて0を知れ!
通常ファイルはダブルクリックで開ける。exeファイルはダブルクリックで開けない。 (スコア:1, 興味深い)
コンテキストメニューに[実行]ってのを付け加えれば、使い勝手もそんなに悪くはならなさそうだし。
Re:知らない人は本当に知らない。 (スコア:2, 興味深い)
「多くの人は、自分が見たいと欲するものしか見ない」ユリウス・カエサル
ってことですよ…。
clausemitz
Re:ウィルスソフト? (スコア:1, すばらしい洞察)
その証拠に、地の文ではちゃんと「ウィルス対策ソフト」と書いてるし。
ファイル名の途中で (スコア:3, 興味深い)
どこにつなげようかと思ったのですが、とりあえずここに。
ファイル名の途中 に制御コードを挟めるということに問題があるように思いますが。
右から左にしても、縦書きにしても、ファイル名の途中から表示のルールを変えるなんて偽装以外じゃありえないんじゃ?
Re:機能美 (スコア:3, 興味深い)
> 架空の例をいくら挙げても重箱の隅になるのでおたずねしますが、
> 実際にそういう国があると捉えてよろしいのですね?
少なくともインドではそのような記述をしている人々がいます。
彼らがノートにメモを取っている様子などは興味深いです。右から左に文章を書いているのに、途中にWindowsなどの外来単語が出現すると、少し左までペンを移動した後に、Windowsと書き、その後にまた左に続けて書いていきます。
残念ながら、彼らとて、アルファベットを普通に使用することはあるわけで、画一的に文字コードによって向きを規定するなんていうのはナンセンス極まりないでしょう。
Unicodeが異なるレイヤの問題を一つのレイヤに組み込みすぎたという意見には一部納得しますが、かといって、歴史を変えるわけにも行かない以上、私たちには、Unicodeとうまくやっていくしかないんでしょうね。なんだかんだいって、Windows, Mac OS X, Javaなどは既にUnicode族ですし、Linuxの多くのディストリビューションも既にデフォルトがUTF-8になりつつあります。
また、ハングルやインドの言語などに関しては、文字合成という概念は極めて合理的かつ効率的であるので、文字合成という概念がUnicodeに導入されたのも必然性はあったのではなでしょうか。
そのせいで、合成・分解のルールが設定されたことは規格として複雑性を高めたとも言えますが、一方で、日本人が全角・半角といっている文字群に対しても画一的な説明を付けることが出来るようになったのは大きいでしょう。個人的には、Unicodeのおかげで、全角・半角の文字を同一視できるようになったのは大きいなぁと勝手に感動したりもしました。
Re:機能美 (スコア:2)
昔の日本語で右から左に文字を書いているのを見たら、それは縦に1段しか使えないときの縦書きであって、右から左に横書きしているわけではない。だから、縦に2段以上使えるときの右から左への横書きはありえないし、あったとしたら誤解している人による間違い。
つまり、我々は右から左に文字を書くための制御文字は必要としていないのだよね。縦書きモードは必要だけれど。
...自分も昔誤解していたので。
Re:拡張子を最初から信用しない (スコア:2, おもしろおかしい)