『登録されている拡張子を表示しない』にしていなくても危険なファイル

副題『忘れた頃のRLO』

一昔前にWinny系ネットワークで流行った、Unicodeの特殊制御文字を使用した拡張子の偽装が、ぽつぽつとそれ以外の環境でも見受けられるそうな。


という訳で、実証実験をWindows 2000でやってみました。
なお、これはNT以降の UNICODE のファイル名を使用するので、Win9x系は影響を受けません。

secex
まず、何の変哲もない、Pokera_gpj.exe というファイル。
これに制御文字 \x202e(RLO(Right to Left Override))を挿入します。

secex2
すると、あら不思議、 Pokera_exe.jpg というファイル名に!!

secex3
しかし、ファイルの種類が「アプリケーション」になってるのと、ファイルプロパティを見るとなんだかおかしいので見破ることが出来ます。

secex5
ファイルを削除するときも、何か変w

secex4
実行すると、普通に実行できちゃうという

プログラム的には MoveFileWやCreateFileW を使って、ファイル名に制御コードを入れれば簡単に偽装できてしまうわけです。

皆さんもご用心を。

白角堂の徒然記 : RLOでの拡張子偽装に注意(ウィルス対策)2
こちらのサイトには Windows 2000では偽装ファイルの表示が出来ないとかかれていますが、Office2003などがインストールされて、usp10.dllが更新されているとどうやら表示できるようです。

関連サイト:
CHAOS-BOT情報局★S : RLOによる拡張子偽造対策

おすすめ

コメントを残す

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