Unicodeで拡張子を偽装された実行ファイル(RLOセキュリティ問題)

ネットワークに広がるRLO利用の拡張子偽装手法
こんなにお手軽な、ファイル拡張子の偽装方法が・・・Unicode 制御文字の挿入(RLO)
Unicodeで拡張子を偽装された実行ファイルの防御方法

WindowsXP以上全般(Vista含む)、Windows2000のアラビア語インストール環境で起こる問題。かなり昔から、その存在は知られていたのに、今になって広く騒がれるようになりました。

この問題で何が危険かというと、視認による判別がつきにくく、ファイル拡張子で安心していると、トロイやウィルスを暴発させてしまう可能性があるのです。

例えば、「test-txt.exe」があったとします。txtの手前にキャレットを置いて、右クリックで[Unicode 制御文字の挿入]-[RLO Start of right-to-left override]を選択。するとファイル名が「test-exe.txt」となってしまうのです。

exeの手前に、Unicode制御文字が挿入されているのです。実際には、「test-[RLO]exe.txt」と、途中から文章が右から左に記述されています。これは人の目には見えません。もし、実行ファイルのアイコンがメモ帳と同じであれば、騙されて起動してしまう人が大勢いることでしょう。

放置は危険なので、対策を紹介します。説明通りの画面があれば1を、無ければ2を試してください。

1-セキュリティポリシーの制御(葉っぱ日記より転載)
a.メモ帳を開いて、"**"と入力する(前後の引用符は不要)。
b."*"と"*"の間にキャレット(カーソル)を移動させる。
c.右クリックで[Unicode 制御文字の挿入]-[RLO Start of right-to-left override]を選択。
d.Ctrl-A で全て選択、Ctrl-C でクリップボードにコピー。
e.ローカルセキュリティポリシーを開く。
f.画面左側の「追加の規則」を右クリック。
g.新しいパスの規則」を選択。
h.「パス」欄で Ctrl-V をして、メモ帳の内容を貼り付ける。
i.セキュリティレベルが「許可しない」になっていることを確認して「適用」
2-Windows Home レジストリを使用した抑制
レジストリのHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer の中にDWORD値、「DisallowRun」を作成。
右クリックして「修正」を選び、作成した「DisallowRun」の値のデータを「1」に設定。
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer の中にキー「DisallowRun」を作成。
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerDisallowRunの中に文字列を1、2、3...と必要な分だけ作成(今回は1つ)。
文字列の値に抑制したいファイル名を記述(*[RLO]*)、ワイルドカード使用可。