英ソフォスは、イタリアの研究者Rosario Valotta氏が発見した新たなUI redressの手法について、ブログで解説した。UI redressは「クリックジャッキング」という名でも知られるが、Valotta氏が「キージャッキング」と呼ぶ新たな手法は別のやり方でUIをre-dress(着せ替え)する。

 まずダウンロードウインドウを表示し、実行/保存/中止を選ぶダイアログを生成する。このダイアログをCAPTCHA画面のようなウインドウで覆う。CAPTCHAは最初に入力すべき文字を「R」にする。

 その後、前面のウインドウからフォーカスを削除する。ユーザーが何も知らずにRキーを押すと、CAPTCHA画面ではなく下のダイアログにR(Run=実行)が入力される。ダウンロードされたファイルは、自動的に起動する。

 Valotta氏の説明によると、クリックジャッキングは、マウスにとっては見えているが、ユーザーにとっては見えないボタンをクリックし、透明のボタンがクリックを処理する。キージャッキングでは、ユーザーは見えているウインドウにキー入力しているつもりだが、キーボードにとっては見えないので、その下の隠れたウインドウがキー入力を処理する。

 Valotta氏のデモを見ると、始まりのページは以下のようになっている。

開始ページ

 「Start」ボタンをクリックすると、実行ファイルを埋め込んだ見えないiframeを含むウインドウが開く。

見えないiframeを含むウインドウ

 iframeが実行ファイルを読み込むと、ファイルダウンロードを開始し、2つのポップアップウインドウが開く。1つ目はダウンロードの開始を伝えるウインドウで、2つ目は「Run」「Save」「Cancel」ボタンのあるダイアログを表示する。

2つのポップアップウインドウが開く

 ダウンロードを行うウインドウは下側にあり、入力を求めるウインドウでre-dress(着せ替え)されているため、ユーザーからは見えない。

CAPTCHA画面に見せかけたウインドウ

 CAPTCHA画面のテキスト入力枠は、本物らしく見えるように、GIFアニメーションを使ってカーソルを点滅させている。デモのCAPTCHAは「E」の文字を最初に入力するようになっている。「E」は「Esegui」の「E」であり、Eseguiはイタリア語で「実行」を意味する。ユーザーは見えないダイアログに実行のサインを送ることになる。

 「Firefox」ブラウザーで同デモを実行した場合、iframeの枠が表示され、ダウンロード開始を伝えるダイアログウインドウは前面に表示されるので、悪意のある計略は露見しやすい。

Firefoxでデモを実行した例

 Valotta氏によると、この手法はWindows 7上のInternet Explorer(IE)9および10、あるいはWindows 8上のIE10で動作する。