全2972文字
PR

拡張子を分かりにくくする

 3つめは、拡張子の偽装である。マルウエアはソフトウエア、すなわちプログラムであるため「exe」や「com」といった拡張子が使われる。このためユーザーの多くはこういった拡張子のファイルを警戒する。

 そこで攻撃者は真の拡張子を分かりにくくして警戒されないようにする。これが、拡張子の偽装である。

 ここでは拡張子の偽装方法を2つ紹介しよう。

 1つは2重拡張子や大量のスペースを使う方法である。例えば、exeの拡張子を持つ実行ファイルがあったとする。この本来の拡張子の前に「.doc」という文字列を追加すると、ファイル名の最後がdoc.exeとなる。これが2重拡張子である(図5(1))。

 ユーザーがWindowsの初期設定のまま利用している場合、本来の拡張子は表示されない。そのため、ファイル名の最後をdoc.exeとしたファイルは、ダミーの拡張子であるdocだけが表示される。

 拡張子を表示させているユーザーをだます方法もある。大量のスペースを使う方法である。拡張子の手前に大量のスペースを入れると、エクスプローラーやフォルダーウインドウでは拡張子が見えなくなる(同(2))。

図5●2重拡張子や大量のスペースで拡張子を隠蔽
ファイル名に細工を施すことで正しい拡張子を分かりにくくする。
図5●2重拡張子や大量のスペースで拡張子を隠蔽
[画像のクリックで拡大表示]

制御文字を悪用する

 もう1つの拡張子の偽装方法は、Windowsが標準で備えている「Unicode制御文字」という機能を使う方法である。Unicode制御文字には複数の種類がある。その1つである「RLO」を使って拡張子を偽装する。RLOは文字列を左右入れ替えた順番で表示する。そもそもRLOは文章を右から左へ読むアラビア文字圏などのユーザーのために用意された機能である。

 具体的な方法は以下の通り。まず拡張子がexeのマルウエアを用意する(図6)。

図6●RLOを使った拡張子の偽装例
図6●RLOを使った拡張子の偽装例
Windowsの機能であるRLOを使うと、ファイル名の文字列の一部を左右入れ替えた順番で表示できる。この機能を悪用して、拡張子を偽装できる。
[画像のクリックで拡大表示]

 次に拡張子をscrに変更する。scrは本来スクリーンセーバーのプログラムのために用意された拡張子だが、実はexeファイルの拡張子をscrに変更してもそのまま実行できることが多い。exeは左右反転させてもexeなので、ユーザーに偽装を気づかれる可能性がある。そこで左右非対称のscrに変更しておく。

 次に、拡張子の手前に「fdp」という文字列を挿入する。fdpはPDFファイルの拡張子であるpdfを反転させた文字列である。

 最後に、ファイル名の末尾にある「fdp.scr」の左側にカーソルを置いて右クリックして「Unicode制御文字」-「RLO」を選択する。

 するとファイル名の末尾が「rcs.pdf」に変わり、一見するとPDFファイルのように思える。こうして攻撃者はユーザーをだまそうとする。

 なお、アイコンや拡張子を偽装してもエクスプローラーのファイルの種類を見れば簡単に見破れる。RLOを使って拡張子を偽装したファイルも、ファイルの種類を見ると「スクリーンセーバー」と表示される。

▼アップロードされたファイル
アップロードされたファイルは、第三者が検索したり、閲覧したりできる。ほとんどの場合、ユーザーが怪しいと思ったファイルがアップロードされるので、登録されているファイルの多くは不審なファイルだといえる。
▼拡張子が見えなくなる
大量のスペースを使って拡張子を確認できないようにする手法は、2000年代に流行したP2P技術を利用したファイル共有ソフトWinnyを通じて感染を広げたマルウエアで多用された。
▼RLO
Right-to-Left Overrideの略。