私たちの常識が世界では通用しないことがあります。攻撃者はそんな心のすきを狙って、落とし穴を仕掛けます。今回はそれを再認識させるかのような手法と、その対策Tipsを解説します(編集部)
皆さんこんにちは、飯田です。先日、セキュリティ管理者の方々と「今後のウイルス対策のあり方」について意見交換をする機会がありました。参加者からは活発な意見や質問も飛び交い、盛り上がりを見せた意見交換会となりました。私自身も多くの気付きや学びを得ることができ、貴重な時間を過ごすことができました。
その意見交換会の中で、Unicodeの制御文字を利用したファイルの拡張子偽装の話題が出ました。この手法は目新しい手法ではなく、数年前からすでに指摘されていたものです。しかし、久しぶりに本手法について議論することができ、少し懐かしさを感じるとともに、あらためてユーザーが惑わされやすい手法ということを再認識いたしました。
本連載で取り上げるにはうってつけの内容ですので、早速、このUnicode【注1】の制御文字を利用したファイルの拡張子偽装について、その手法と対策についてご紹介したいと思います。
【注1】
Unicodeとは、端的に説明すると多言語の文字を単一の文字コードで取り扱うための規格です。
まず初めに、皆さんは拡張子偽装やアイコン偽装という手口が、どのくらい不正プログラムに使われているのかご存じでしょうか。
ここで、弊社のハニーポットで収集した不正プログラム【注2】を使って統計データを取りましたので、お見せしたいと思います。このデータは、直近6カ月間で収集された不正プログラムのアイコン偽装有無を示したグラフです。
【注2】
OSの脆弱性を突いて侵入するタイプのウイルスは、本データより省いています。
このデータから、実に8割以上もの不正プログラムに、アイコン偽装の手法が取られているということが分かります。これは、多くの不正プログラムが、アイコン偽装によってユーザーを欺き、不正プログラムを実行させようとしていることがうかがえるデータといえるでしょう。
また、表2は、ファイルの拡張子偽装の割合について月別で示したグラフです。
拡張子偽装が行われている割合としては全体の約2割程度にとどまっているため、アイコン偽装と比較すると数値的には見劣りいたしますが、この6カ月間、常に拡張子偽装が行われている不正プログラムが全体の約2割を占めています。この結果から、ファイルの拡張子偽装は、不正プログラムがユーザーを欺くための常とう手段として定着しているといっても過言ではありません。
少しここで話はそれますが、皆さんもご存じの通り、世界にはさまざまな言葉が存在します。私たちの母国語である日本語もその中の1つです。しかし、日本社会も至るところでグローバル化の波が押し寄せており、外国語を使う機会が多くなってきていると実感いたします。とりわけ、ビジネスにおいては、英語がデファクトスタンダードになっている方も多いでしょう。
世界中の言語を見渡してみると、その多さに実に驚かされます。一説によると、数千種類の言語がこの世の中に存在しているようですが、専門家の間でも意見が分かれているようです。さらに驚くべきことは、その言語の持つ特徴も実にユニークだということです。私たちが常日ごろから親しんでいる日本語や英語では、横書きの場合、左から右へ言葉を並べていきますが、アラビア語では逆に右から左へ記述していきます。アラビア語を知らない人にとっては、とても違和感を覚えるはずです。
Windowsではファイル名やフォルダ名に、このアラビア語のように右から左へ流れる名前をつけることができることをご存じでしょうか。正確にはUnicodeで定義されている制御文字RLO(Right-to-Left Override)を利用することで、簡単に右から左へ流れる文字を作ることができます。
本日の本題となるUnicodeの制御文字とは、まさにこのRLOを指しています。実は、このRLOの特性を利用することで、ファイルの拡張子を偽装することが容易にできてしまうのです。この手法は数年前に注目され、さまざまな記事でも取り上げられてきましたので、ご存じの方も多いのではないでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.