二重拡張子 【double extension】
概要
二重拡張子(double extension)とは、ファイル名の末尾でデータ形式やファイルの種類を表す拡張子を、「readme.txt.exe」のように二つ繋げて記述したもの。あるファイルを別の形式のファイルに格納した場合や、攻撃者がマルウェアを偽装する場合などに用いられる。コンピュータのストレージに保存されるファイルはそれぞれ固有のファイル名を付けて識別するが、末尾に「.」で区切って数文字の英数字で構成される「拡張子」(extension)という符号を与える慣習がある。ファイルがどんな形式で記録されているかを示している。
通常はそのファイルの形式を表す拡張子が一つだけ付けられるが、複数のファイルをアーカイブにまとめたものをデータ圧縮したものなど、二段階の処理が行われている場合には、一段回目の形式と二段階目の形式を繋げて「archive.tar.gz」などとする場合がある。
この例では複数のファイルをtar形式で一つのファイルにアーカイブ化し、さらにgzip形式で圧縮したものをであることを表している。gzip圧縮を解除(展開)すれば「archive.tar」ファイルを取り出すことができ、これを展開すればアーカイブ内にまとめられていた個々のファイルを取り出すことができる。
マルウェアの偽装
コンピュータウイルスなどのマルウェアの中には、拡張子を二重化することで利用者にファイル形式を誤認させ、実行を促して感染を試みるタイプのものがある。Windowsなど拡張子によってシステム側の挙動が変わる環境を標的とした攻撃手法である。
例えば、「ご請求書.pdf .exe」のようなファイルを電子メールに添付して「添付のご請求書をご確認ください」のような本文を添えると、受信者は実行ファイルの拡張子である「.exe」を見落とし、「ご請求書.pdf」というPDF文書であると誤認することがある。クリックして開くとファイルが実行され、システムがマルウェアに感染してしまう。
(2023.12.21更新)