6.16. セマンティック攻撃の裏をかく

「セマンティック攻撃」とは、攻撃者がコンピュータの設備やシステムを利用して、 何らかの方法で犠牲者をだまし、何かをさせてしまうことを指します。何かを させるというのは、本来そのコンピュータの設備やシステムが行うように設計された ものとは別のことをしてしまうことを指します。 セマンティック攻撃には、金融詐欺も含まれていて、攻撃者が犠牲者をだまし、 攻撃者に大金を与えてしまいます(たとえば、どこかに投資しているように思わせる)。 たとえば、攻撃者はユーザに信頼できる Web サイトを見ていると信じこませようと するかもしれません。本当はそうでないのにもかかわらず、です。

セマンテックス攻撃は対処が困難です。理由はコンピュータの正しい操作を 悪用しているからです。 セマンテックス攻撃に対処するには、さらにユーザに情報を与えて気づかせること です。つまり「奇妙な」ことが起こると、ユーザがもっと情報を持とうとするか、 警告が見た目と違う何かが起こっていると知らせます。

一例として、URI をあげます。文法上問題無いにもかかわらす、ユーザが 取り違えて考えるかもしれません。 ととえば、この URI を見てください。
  http://www.bloomberg.com@www.badguy.com
この URI をクリックすると、ユーザは Bloomberg(金融商品ニュースを提供している) に行くと思うかもしれませんが、そのかわりに www.badguy.com に行ってしまいます (そして、ユーザ名 www.bloomberg.com を www.badguy.com に渡しますが、 www.badguy.com は都合が良いことにそれを無視するでしょう)。 badguy.com の Web サイトが bloomberg.com のサイトをまねていたなら、ユーザ は自分が本物のサイトを見ていると、信じてしまうかもしれません(そして攻撃者 がコントロールしている情報を元に、ユーザが投資を決めてしまいます)。 これは普段使われない URI を前提にしています。クリッカブル URI はユーザ名を 設定できますが、普段はそうしていません。 このケースの解決には、Web ブラウザが普段使わない URI を検知するとか、ポップ アップで確認を求める(「ユーザ名 www.bloomberg.com で www.badguy.com に ログインしようとしています。続けますか?」のように)仕掛けを作ることが 考えられます。 その仕掛けでユーザが入場を変更できるようになれば、攻撃を防御ができると同時に、 ユーザに対して追加機能を提供できます。

別の例は、同じ綴りで違う意味をもつ言葉(同形異義語)で、特に国間に見られる 同形異義語です。 ある文字はお互いに似て見えますし、同様にやられてしまう可能性があります。 たとえば、0(ゼロ)とO(文字のオー)はお互いに似ていますので、ユーザは WWW.BLOOMBERG.COM と WWW.BL00MBERG.COM が違う Web アドレスであるのがわからない かもしれません。 他に見た目が似た文字には、1(数字の 1)とl(小文字の L)があります。 いろいろな国の文字を許可していれば、事態はさらに悪くなります。 たとえば、キリル文字の大部分は、おおよそ英字と同じように見えますが、 コンピュータは違うものとして扱います。 現状たいていのシステムは、ホスト名としていろいろな国の文字を認めていません。 もっともな理由がない限り、今後ホスト名としてサポートする必要性が広く認め られるでしょう。 解決案の 1 つに、異なる地域を異なる色を使って文字を表示する方法が取られて きました。つまり、ユーザは視覚的にもっと情報を得ます。 ユーザが URI を見たとすると、おそらく奇妙な色つけに気付くはずです [Gabrilovich 2002]。 しかし、これはセマンティック攻撃の存在を示しはしますが、防戦するのは困難 です。正確に言えば、コンピュータは正しく動作しているのですから。