Radium Software
2007-06-01
Rachna, D. J. D. Tygar. Marti H. 2006. Why Phishing Works. In Proceedings of the Conference on Human Factors in Computing Systems (CHI2006).
ハーバード大でコンピューターセキュリティの研究を行う Rachna Dhamija は,様々な職種・ 年齢に渡る22人の被験者を集め,用意された19個のウェブサイトについてそれがフィッシングサイトであるか否かを判定してもらうという実験を行った。なお,これらのウェブサイトの中には7個の本物のサイトと12個のフィッシングサイトが含まれている。
結果は約 61% の正答率で,性別や学歴による有意な差は見られなかったという。
正答率が最も低かったのは下図にある Bank of the West のウェブサイトを模したフィッシングサイトで,実に9割の被験者がこれを本物のウェブサイトであると答えた。これをフィッシングであると見抜いたのは2人しかいなかったという。

Image from Dhamija's paper
このサイトの最大のポイントは "bankofthevvest.com" というドメイン名を使用していることにある(本来 "w" であるところが "v" 2つになっている)。

Image from Dhamija's paper
実験に利用した Mac OS X と Firefox の組み合わせでは特に見分け難かったらしく,「URL を確認すること」を主なフィッシング対策としていた被験者のうち3人についても,これを本物のサイトであると勘違いしてしまっていた。
しかも,そのうち1人は,実際の Bank of the West のアカウント保持者であり,「ブラウザの南京錠アイコン」や「"https://" で始まる URL」といった基本的なフィッシング対策の知識を持っているにも関わらず,このサイトを本物のサイトであると判断してしまっていた。
ではなぜ,彼らはこのサイトを本物であると思い込んでしまったのだろう。
20人の不正解者のうち17人は,このサイトのコンテントを判断材料のひとつとして用いたと答えている。中でも2人の被験者は,トップページの熊の映像がアニメーションしていることに注目したという。どうやら「こんなキレイなサイトならばフィッシングであるはずは無い」という先入観が働く傾向にあるらしい。
被験者の中には,中文ページへのリンクをクリックし,そこに中文ページが存在することを確認したうえで,「偽サイトが中文ページまで用意することはないだろう」という判断を行った人がいるという。実際には本物サイトの中文ページへのリンクが張られていたに過ぎない。
ちなみに,22人の被験者のうち,「ドメイン名,南京錠,HTTPS」という3点セットすべてを判断材料に使っていたのは,実に7人に過ぎなかったという。
[via Coding Horror]
2007-06-07
Niels Provos, Dean McNamee, Panayiotis Mavrommatis, Ke Wang, Nagendra Modadugu. The Ghost in the Browser: Analysis of Web-based Malware. 2007. HotBots '07.
Google のアンチマルウェアチームに所属する Niels Provos らは, Google のクローラーによって収集された膨大な量のウェブページの中から,「悪意のあるページ」(マルウェアのインストールを発動するよう仕組まれたページ)を自動抽出する技術を開発した。氏らはその技術を利用して,マルウェアを仕掛ける側の戦略や傾向について調査を行い,その結果を上の論文にまとめた。
調査の対象となったウェブページは数十億に上る。まずは MapReduce を利用したフィルタリングによって,その中から約 1,200 万の「疑わしいページ」が抽出された。そこから更に仮想マシンを用いた精査を行った結果,約 100 万のページが "drive-by download" を発動することが判明した。つまりこれは,ウェブ全体のうち約 0.1% のページが「悪意」を含んでいるという可能性を示している。
ちなみに,この論文における「悪意のあるページ」とは,「ユーザーの許諾を得ることや,ユーザーへの通知を行うこと無しに,ソフトウェアのインストールを発動するページ」と定義されており,そのソフトウェアの内容はまったく考慮されていない。そのため,本当の意味での「悪意」を持ったページは,この調査結果よりもやや少ないものと考えられる。
この論文は調査結果を覗くだけでも面白いが,もうひとつの重要な点は,大量のウェブページの中から効率良く「悪意のあるページ」を抽出する手法を確立したことにある。

Image from Niels et al.
Google のサーバーに格納された数十億のページを逐一検証することはできない。そこでまず MapReduce を用い,これらのページの中から「疑わしいページ」が抽出される。「疑わしさ」の判定には,例えば別の「悪意のあるページ」に対してインラインフレーム (iframe) を用いたリンクを張っていることや,極端な難読化を施された Javascript を含んでいることなどが基準として用いられる。
「疑わしい」と判定されたページは,そのページが本当に「悪意のあるページ」であるかどうかの精査にかけられる。この精査には仮想マシンと Internet Explorer の組み合わせが用いられた(仮想マシンの詳細については,この論文では触れられていない)。仮想マシンの上では HTTP フェッチの内容やプロセスの起動,レジストリの書き換えなどが監視されており,それらを総合的に評価することによって「悪意」の有無が決定される。
この自動化された精査の手法は,導入された当初は日に4万ページほどの検証を行うことが限界だったが,最適化を施すことによって最終的に1日あたり30万ページを処理することが可能になったという。
2007-06-14

Image from Lewis's website
J.P. Lewis, Ruth Rosenholtz, Nickson Fong, Ulrich Neumann. VisualIDs: Automatic Distinctive Icons for Desktop Interfaces. ACM Transactions on Graphics (TOG), Volume 23(3), August 2004.
例えば,自分の部屋の本棚からある本を取り出したいとする。もしその本の書名を正確に覚えていなかったとしても,本棚を一瞥すれば,たいていその目当ての本を見つけることができるだろう。こんなとき,人は書名から本を見つけ出すわけではない。それぞれの本の配置だとか,本自体の大きさや色だとか,背表紙の模様だとか,そういったいくつかの要素を組み合わせたものを,本を見つけるための「手掛かり」として利用している。
ここでは,そういった「物の配置」や「物の外見」などの視覚的要素を組み合わせることによって得られる統合的な視覚情報のことを「景色」 (scenery) と呼ぶことにする。人間は文字情報よりも「景色」の方が記憶しやすく,判別も素早く行うことができる。多くの生物において「景色」の認知が基本的な機能として備わっていることを考えれば,当然のことなのかもしれない。
では次に,自分のPCからあるファイルを取り出してくるという作業を行うとする。曖昧な記憶を頼りに,ディレクトリのあっちをたぐってみたり,こっちをたぐってみたり……。あるいは,ファイル名を記憶していれば「検索」を使うという手もある。でもそれも,目当てのファイルが気のきいたファイル名を与えられていなければ一苦労することになってしまう。
中にはこんな人がいるかもしれない――自分はデスクトップをフル活用しているから大丈夫。たいていの重要なものはデスクトップに置いてあって,デスクトップのこの辺りはこういったものが,あの辺りにはああいったものが,というような具合に配置されているんだ……。なるほど,つまりそれは,デスクトップを介すことによって「景色」における「配置」の要素を利用しているということになるのかな。
現在のデスクトップユーザーインターフェースの主流においては,ナビゲーションのための手掛かりを文字情報に大きく依存している。だから,何か特定のファイルを探し出そうとすると,本棚の中から書名だけを頼りに本を探し出してくるときのような不自由さが生じてしまう。ならば,もしこれに「景色」の概念を与えることができたならば,ナビゲーションはもっと容易で覚えやすいものになるのではないか。
前述のように,「景色」における「配置」の要素は現状のインターフェースにおいてもある程度サポートされている。それに対して「外見」の要素は圧倒的にサポートが弱い。ファイルの外見であるアイコンは,多くの場合ファイルの形式に対して割り当てられているものであって,同形式のファイル群から個々のファイルを判別することができない。アイコンを個々のファイルの判別に用いようと思うならば,個々のファイルに対して割り当てられるアイコンがもっと多様なものになっていなくてはならない。
南カリフォルニア大学の J.P. Lewis らによって開発された VisualID と呼ばれる技術は,このような見地に立ったものであるとされる。 VisualID を用いると,個々のファイルの名前から様々な模様を自動生成することができる。この自動生成のアルゴリズムでは,似たファイル名は似た模様になるという工夫がなされており,同類のファイルを視覚的に群と捉えることを可能にしつつ,かつ個々のファイルを判別することまでが可能になっている。
Lewis らは 25 人の被験者を集め,多数のファイルの中から特定のファイルを選び出すまでの時間を同一アイコンの場合と VisualID アイコンの場合とで比較するという実験を行っている。その結果として,同一アイコンの場合は平均で 30.5 秒かかっていた作業が VisualID では 23.2 秒にまで短縮されたと記している。
さて, VisualID はとても面白い技術だけど,やはりちょっと気になるのは,自動生成される有機的なデザインが現在主流のルック&フィールとは合いそうにないということ。上の画像ではかなり頑張ってめかしこんでいるものの,それでもまだ違和感を覚える。これらのアイコンをずらっと平面上に並べると,まるで微生物の標本カタログのようになってしまう。有機的なデザインで攻めるよりも,例えば Identicon に使われたキルト模様パターンのように,幾何的・抽象的なデザインから攻めることはできないものかな。
Tupper's Self-Referential Formula
2007-06-15
Jeff Tupper. Reliable Two-Dimensional Graphing Methods for Mathematical Formulae with Two Free Variables. In Proceedings of SIGGRAPH 2001, 77-86.
トロント大学の Jeff Tupper は,陰関数のグラフを安定して生成するためのアルゴリズム群を考案した。これらのアルゴリズムは Pedagoguery Software の GrafEq というソフトウェアに応用されている。同製品のギャラリーページでは,これらのアルゴリズムによって生成された様々な陰関数グラフの例を見ることができる。

Image from Tupper's paper
上図はそれぞれ以下の式から生成されている。
(a) x cos y cos xy ± y cos x cos xy ± xy cos x cos y = 0
(b) sin((x ± sin y)(sin x ± y)) = cos sin((sin x ± cos y)(sin y ± cos x))
これらの見た目に凝った例のほか,他のグラフソフトでは誤りが生じがちないくつかの数式についても,こちらのページで触れられている。
他には,こんなトリッキーな例もある。

Image from Tupper's paper
この「グラフ」は以下の式から生成されている。

ただし,このグラフは値の範囲が特殊で, (x, y) = (0, 960 939 379 918 958 884 971 672 962 127 852 754 715 004 339 660 129 306 651 505 519 271 702 802 395 266 424 689 642 842 174 350 718 121 267 153 782 770 623 355 993 237 280 874 144 307 891 325 963 941 337 723 487 857 735 749 823 926 629 715 517 173 716 995 165 232 890 538 221 612 403 238 855 866 184 013 235 585 136 048 828 693 337 902 491 454 229 288 667 081 096 184 496 091 705 183 454 067 827 731 551 705 405 381 627 380 967 602 565 625 016 981 482 083 418 783 163 849 115 590 225 610 003 652 351 370 343 874 461 848 378 737 238 198 224 849 863 465 033 159 410 054 974 700 593 138 339 226 497 249 461 751 545 728 366 702 369 745 461 014 655 997 933 798 537 483 143 786 841 806 593 422 227 898 388 722 980 000 748 404 719) の辺りから生成が行われている。
この式は y の値の取り方しだいで自在なビットマップを描くことができるように工夫されたものだから,このような「自己記述するグラフ」も不思議なことではないのだけれど……でもやっぱ面白い。こんなシンプルな数式でも,平面上にグラフを延々と展開していくと,そのどこかに自己記述を行っている部分があるというのだから……。
いちおう,この数式には "Tupper's Self-Referential Formula" という名前が付けられており, Wolfram MathWorld や Wikipedia にも対応する項目が用意されている。