Unicodeで拡張子を偽装された実行ファイルの防御方法
「それ Unicode で」などで紹介されている、Unicode の U+202E (RIGHT-TO-LEFT OVERRIDE; RLO)を使って拡張子を偽装された exe ファイルの実行を抑止する方法を思いついた。
- メモ帳を開いて、"**"と入力する(前後の引用符は不要)。
- "*"と"*"の間にキャレット(カーソル)を移動させる
- 右クリックで「Unicode 制御文字の挿入」から
「RLO Start to right-to-left override」「RLO Start of right-to-left override」を選択 - Ctrl-A で全て選択、Ctrl-C でクリップボードにコピー。
- ローカルセキュリティポリシーを開く
- 画面左側の「追加の規則」を右クリック
- 「新しいパスの規則」を選択
- 「パス」欄で Ctrl-V をして、メモ帳の内容を貼り付ける。
- セキュリティレベルが「許可しない」になっていることを確認して「適用」
以上で、this-(U+202E)txt.exe(表示は this-exe.txt) のような、拡張子が偽装されたファイルの実行を禁止できる。
参考: セキュリティ対策の要点解説 第 3 回 そもそもアレの動作を禁止したい 〜 Software Restriction Policy 〜
追記: ヤマガタさんに、「exe以外も」と指摘されたので、"*(U+202E)*.exe" だった禁止パス名を "*(U+202E)*" に変更。また、IE から http: 経由で「実行」させた場合には、一時ファイル名が使用されるため、名前による規制がうまく働かないようです([openmya:037003]、[openmya:037005])。その場合、IEからの直接実行を全て禁止するようにしましょう([openmya:037006])。