Chromium - News and developments from the open source browser project

Google Chromeにはフィッシング詐欺の疑いがあるサイトやマルウェアをインストールしようとするサイトを自動的に検出する機能が用意されている。機能が有効になっていれば、フィッシング詐欺やマルウェアの危険性があるサイトにアクセスするとChromeが危険性があるというメッセージを表示してユーザに回避を促す――この機能がどのような仕組みで実現されているのか、その説明がChromium Blogにおいて掲載されている。

Google Chromeが報告するマルウェアサイト表示の例

Blogの執筆者は、米Google, Ian Fette氏。氏は、「Understanding Phishing and Malware Protection in Google Chrome」のタイトルのもと、どのようにフィッシング詐欺サイトやマルウェアサイトを検出しているのか、どういったデータがChromeからGoogleへ送信されているのかを説明している。こうした機能ではユーザがアクセスしたサイトの情報がGoogleに送信されているのではないかという懸念が生まれるため、そうした疑問を払拭する狙いがあるとみられる。

Googleでは定期的にウェブを巡回しサイトのデータを収集している。この間に個人情報を取得しようとしているサイトやマルウェアをインストールしようとするサイトを発見し、確認をおこなった上でフィッシングサイトやマルウェアサイトと疑わしいサイトリストにサイトが追加される。この情報はGoogleのサーバに保持されている。

フィッシング詐欺/マルウェアサイト検出機能が有効になっている場合、Chromeは起動してから5分以内にGoogleサーバから疑わしいサイトデータをダウンロードする。あとは30分ごとにデータを更新する。ただしそのままのデータを取得しているわけではない。疑わしいサイトリストは数十万件に及びサイズが多き過ぎる。データサイズを縮小するため、GoogleではサイトのURLをSHA256でハッシュ化し、うち最初の32ビットだけをデータとして提供している。

ChromeはサイトへのアクセスがあるごとにURLをSHA256でハッシュ化し最初の32ビットがフィッシング詐欺/マルウェアデータに含まれているか確認する。一致するものがあった場合、Googleサーバに32ビットのハッシュ値を送り、そのハッシュ値に一致するハッシュ値の256ビットを取得する。Chromeが計算した256ビットのハッシュ値とサーバから送られてきた256ビットのハッシュ値が一致すれば、そのURLはGoogleによってフィッシング詐欺/マルウェアサイトとして疑わしいサイトだということになる。32ビットだけでは衝突がありえるため、一旦Googleサーバにアクセスして256ビットのハッシュ値を取得して確認する必要があるわけだ。

Googleに一旦ハッシュ値が送られるものの先頭の32ビットだけであり、ユーザがどのサイトにアクセスしたかという明確なデータは取得しない。転送するデータを最小限に抑えつつ、かつ、フィッシング詐欺/マルウェアサイトを迅速に検出する方法というわけだ。実際のところサーバでどういった情報を保持しているかは同ブログからはわからないが、ユーザがどのサイトにアクセスしたのかを確実に特定することはできない仕組みになっていることがわかる。