Unicode制御文字を使ってWindowsのファイルの拡張子をごまかす方法
この記事の内容
- Windowsエクスプローラーの「登録されている拡張子は表示しない」設定を解除する重要性
- Unicode制御文字「Start of Right-to-Left Override」を使ったファイル名偽装のデモ
- テキストファイルや実行ファイルを別の拡張子に見せかける具体的な手口
- 攻撃者がこの技術を悪用してマルウェアを配布する可能性とその注意点
はじめに
今回は、Windowsにおいてファイルの拡張子を「見た目だけ」ごまかすテクニックをご紹介します。これはセキュリティの観点から知っておくべき手口であり、悪意ある人物がどのような方法でファイルを偽装するかを理解することを目的としています。
事前準備:拡張子を表示する設定にする
デモを行う前に、まずWindowsエクスプローラーの設定を確認します。
「表示」→「オプション」→「登録されている拡張子は表示しない」のチェックを外す
この設定が有効になったままだと、拡張子が見えないためファイルの実態を把握しにくくなります。セキュリティの観点からも、常に拡張子を表示しておくことをおすすめします。
デモ①:ExcelファイルをXLSXに見せかける
まずはシンプルなデモとして、テキストファイルをExcelファイルのように見せかける例を紹介します。
- テキストファイル(
.txt)を用意します - ファイル名を
example.xlsxのようにリネームします - 拡張子が
.xlsxになっているため、アイコンがExcelのワークシートとして表示されます - ダブルクリックすると、実際にはExcelファイルとして関連付けられているためExcelが開きます
この時点では、単純なリネームによる偽装です。
デモ②:Unicode制御文字を使った高度な拡張子偽装
ここからが本題です。Windowsのエクスプローラーには、Unicodeの制御文字を挿入する機能が存在します。
使用する制御文字
Start of Right-to-Left Override(RLO)
この文字は、アラビア語やヘブライ語など右から左に読む言語のために存在するUnicode制御文字です。ファイル名の途中に挿入すると、それ以降の文字列の表示方向が右から左に反転します。
手順
- ファイルをリネームモードにします
- 拡張子の直前にカーソルを移動します
- 右クリックして 「Unicode制御文字の挿入」→「Start of Right-to-Left Override」 を選択します
実行ファイルを偽装する例
たとえば、実態が .exe である実行ファイルを .txt に見せかける場合、以下のような仕組みになります。
RLO文字を挿入した位置以降の文字列が右から左に表示されるため、拡張子部分の文字列が反転して別の拡張子のように見えます。
- 実態の拡張子:
.exe(実行ファイル) - 表示上の拡張子:
.txt(テキストファイルのように見える)
この手口がなぜ危険なのか
この偽装が特に危険な理由は、見た目だけでは本物のテキストファイルや画像ファイルと区別がつかない点にあります。
- メールの添付ファイルや共有リンクで送られてきたファイルが
.txtや.jpgに見えても、実態は.exeである可能性があります - アイコンも偽装と組み合わせると、さらに見分けがつきにくくなります
- ユーザーが「安全そうだ」と思って開くと、マルウェアが実行されてしまいます
対策として意識すべきこと
- 拡張子を常に表示する設定にしておく(デフォルトで非表示になっているWindowsの設定は必ず変更する)
- 不審なファイルはダブルクリックせず、プロパティや詳細情報でファイルの種類を確認する
- メールや外部からの添付ファイルは、セキュリティソフトでスキャンしてから開く
- 組織内では、このような手口についてユーザー教育を実施する
まとめ
今回は、WindowsのUnicode制御文字入力機能を利用してファイルの拡張子を視覚的に偽装する手口をご紹介しました。「Start of Right-to-Left Override」という制御文字を挿入するだけで、実行ファイルをテキストファイルに見せかけることが可能です。
この技術自体は悪用を目的としたものではありませんが、攻撃者がこれを利用してマルウェアを配布する事例は現実に存在します。Windowsのファイルシステムやエクスプローラーの表示の仕組みを正しく理解し、日頃から不審なファイルに注意するよう心がけてください。