ファイルの種類を判別するために使われる拡張子の特性を逆手にとり、拡張子やアイコンを巧みに偽装してユーザーをマルウェア感染に陥れる手口は以前から存在している。近年、その手口はより複雑化・巧妙化し、被害に遭遇するケースも少なくない。この記事では、拡張子偽装の手口とその対策について解説していく。
拡張子はどのような役割を担っているのか
拡張子(かくちょうし)とは、コンピューターで取り扱うさまざまなファイルの種類を判別するために使われている文字列のこと。ファイル名の最後に付く文字列として、ファイル名と拡張子の間は「.(ドット)」で区切られている。拡張子は通常3~4文字程度で、OSやアプリケーションは拡張子を見てファイルの種類を判別する。
例えば、Microsoft Word文書の拡張子は「.docx」あるいは「.doc」であり、「.docx」の拡張子が付いたファイルをダブルクリックすることで、そのコンピューター内にある「.docx」と関連付けられているアプリケーションが自動的に起動され、そのファイルが読み込まれる仕組みになっている。「.docx」の場合、そのコンピューターにMicrosoft Wordがインストールされていれば、Microsoft Wordが立ち上がる。
拡張子は、初期設定では非表示になっていることもあり、あまり意識せずにコンピューターを使っている人も少なくないだろう。なお、以前のMacでは拡張子の代わりに、クリエータコードとファイルタイプという2つの情報がファイルに埋め込まれており、アプリケーションとの関連付けに使われていたが、Mac OS X(現macOS)以降では拡張子がサポートされ、MacでもWindowsと同様に拡張子を利用した関連付けができるようになっている。
拡張子の偽装とは
コンピューターがファイルの種類を判別し、アプリケーションとの関連付けを行うために設けられた拡張子だが、ユーザーにとってもファイルの種類を見分けるのに役立つ。
添付ファイルの拡張子が「.exe」となっているファイルは、プログラムが記述された、いわゆる実行ファイルであり、ウイルスなどが仕込まれている可能性があるため注意が必要、といった話を聞いたことがある人も少なくないはずだ。一方で、拡張子が「.jpg」や「.gif」などであれば画像データと推測されるため、危険性は低いと認識される。
このような、もはや慣習化された判断基準を悪用する手口が「拡張子の偽装」だ。実行ファイルを画像ファイルであるかのように拡張子を偽装し、マルウェアに感染させる手口は以前から存在している。
しかし、最近ではその手口もより巧妙化してきている。WordやExcelなどのOffice文書ファイルに不正な動作を行うマクロを組み込み、ユーザーにマクロを実行させることでマルウェアに感染させる。あるいは、マクロの実行でマルウェアのダウンローダーが発動するといったように、複数の段階を経て感染に至らせるような、複雑かつ巧妙な手口も広がっている。
さらに、拡張子だけでなくアイコンまで偽装する、より巧妙なケースもある。本来、アイコンはファイルの種別やアプリケーションの名称などをユーザーが見ただけで判別できるよう用いられる。基本的に、拡張子に応じてデフォルトのアイコンが紐づいているものの、独自のアイコンを用いるように設定変更も可能だ。このような仕組みを悪用するのがアイコンの偽装だ。設定変更は容易にできてしまうため、アイコンだけで正規の種別のファイルかどうかを判断するのは危険が伴う。
拡張子偽装の具体的な手法
拡張子の偽装にはいくつかの手法がある。代表的なものとして、以下3つが挙げられる。
二重拡張子を用いる方法
Windowsの標準設定では拡張子が表示されないことを悪用し、ファイル名に偽の拡張子を含めて本当の拡張子を隠す方法。例えば、「test.jpg.exe」というファイル名にすると、標準設定では「test.jpg」と表示される。
空白文字を多数挿入する方法
「example.txt .exe」のように、ファイル名と本当の拡張子の間に空白を多数挿入する。エクスプローラーでファイルを表示した際に、ファイル名表示コラムの幅が狭いと「.txt」以降が省略されてしまい、もともとの拡張子が隠されてしまう特性を悪用する方法だ。
RLOを用いる方法
アラビア語など一部の言語には、文字が右から左に向けて書かれるものが存在する。こうした特性の言語の場合、RLO(Right-to-Left Override)と呼ばれる制御コードを用いることで、通常は左から右へと表示される文字列が右から左というように、まったく逆に表示される。例えば、「abcgpj.exe」というファイル名を「abcexe.jpg」に偽装できてしまうのだが、これはなかなか巧妙であり、気付きにくい。
拡張子偽装に騙されないために
拡張子の偽装には、さまざまな手法が編み出されており、注意を怠ればマルウェアに感染してしまうことになりかねない。騙されないようにするためにはまず、以下のような対策を講じることが大切だ。
Windowsの設定を変更し、拡張子の表示を有効に
先述のとおり、最近のWindowsでは初期設定で拡張子は表示されないようになっている。「エクスプローラーのオプション」の「表示」タブを選択し、詳細設定の一覧から、「登録されている拡張子は表示しない」のチェックを外すことで、拡張子が表示されるようになる。
デフォルトで拡張子を表示すれば、二重拡張子を用いた偽装は容易に判別できるはずだ。また、スペースを多数挿入する方法でも、ファイル名の横にスペースがあるなど、注意すれば判別できるだろう。
信頼できる相手から送られたメール以外の添付ファイルは開封しない
先述のとおり、Office文書のファイルに組み込むことができるマクロを悪用し、マルウェア感染を狙う攻撃が増えている。また、過去にはPDFの添付ファイル機能を悪用した手口も存在した。具体的には、PDFを開くと同時に添付ファイルも自動的に開かれ、関連付けられたWordが起動。画面上にはマクロ機能を有効にすることを求めるメッセージが表示され、有効にしてしまうとマルウェアのダウンロードが開始されるという複数の工程を踏んだ巧妙な手口である。
総合セキュリティソフトの導入
「ESET PROTECT Advanced クラウド」などの総合セキュリティソフトを導入するのも有効な対策の1つだ。多くの総合セキュリティソフトでは、プライベートファイアウォール機能が怪しい通信をブロックするため、仮にマクロがマルウェアをダウンロードしようとした際でも、その通信をブロックして被害を未然に防ぐことができる。また、添付されているファイルやメール本文に対してウイルスチェックを行うことで、検知・隔離・駆除することも可能だ。
拡張子に関する正しい理解が重要
日常的にパソコンを使っているユーザーにとって、以前と比較すると、拡張子を意識するシーンは少なくなりつつある。特に、スマートフォンを利用していると拡張子を考慮することはほぼないため、パソコンも同様に捉えているユーザーも少なくない。しかし、攻撃者はそういったユーザーの状況・認識につけこみ、新たな攻撃手法を開発して攻撃を仕掛けてくるものだ。
ユーザー側としては、まず拡張子というものを正しく理解し、サイバー攻撃の手法の1つとして、拡張子を偽装する手口があるということを認識しておきたい。そのうえで対策を講じることで、その有効性も高まることだろう。