検証環境 Firefox19.0 / Chrome 27.0.1425.0 / Safari 6.0.2
攻撃サイトとして報告されているURLを(hosts書き換えて) 読み込むとどう反応するか。それぞれアドレスバーに直接入力だとブロック。
- 画像: リクエスト自体行わない、派手な警告を出す
- script: リクエスト自体行わない、派手な警告を出す
- iframe: リクエスト自体行わない、派手な警告を出す
- 画像: ブロックされない
- script: リクエストは行うが、実行されない、警告は出ない
- iframe: リクエストは行い、iframe内に警告表示
- 画像: ブロックされない
- script: ブロックされない
- iframe: リクエスト自体行わない、派手な警告を出す
chromeはとにかくリクエストを飛ばす前にチェックしている、firefoxはリクエスト自体はブロックせずにどういう文脈で読み込むのかを考慮している、safariはアドレスバーやフレームしか見ない(Flash、Java未検証)。
画像のデコード処理自体にクリティカルなバグがあれば(めったにない)、画像を読み込んだだけで危険な可能性はあるし、攻撃サイトにIPアドレスを知られる時点でマズイという可能性もあるだろう。
- chromeのポリシーは安全よりだが過敏で、副作用が大きい。例えば外部サイトの画像を埋め込む機能を持っているサービスに対する嫌がらせができる。
- firefoxのポリシーは妥当だと思うがリクエスト自体は飛ばしてしまう。scriptのブロックに警告が出ないのはそれはそれで影響がありそう。
- 「広告が表示されないことに気付かないまま数日間ブロックされたままだった」とかね。chromeが派手な警告出すので気付けるけど。
- safariのポリシーは、scriptをブロックしないので安全ではないだろう。(動的に生成したscriptで、まだ危険判定されてないURLへのリダイレクトができる)
Chromeは「フィッシングや不正なソフトウェアからの保護を有効にする」Firefoxは「攻撃サイト」のブロックと「詐欺サイト」のブロックでそれぞれチェックボックスがある。Safariは「詐欺Webサイトを訪問したときに警告」なので「悪質なscriptの混入」は保護の対象外なのかもしれない。
FirefoxでJavaScriptとCSSの読み込みがブロックされるのは明確に仕様であるようだ。
「Chromeだけ反応する」という場合は、アウト判定されているドメインが「画像やscript」として読み込まれている場合だ。事例としてはこれ
- http://www.itmedia.co.jp/news/articles/1302/06/news041.html
- http://negi.hatenablog.com/entry/2013/02/06/172642
FirefoxやSafariでも反応するということは「そのサイト自身」のGoogle Safe Browsingの結果がアウト判定されているということ。
- http://internet.watch.impress.co.jp/docs/news/20130305_590412.html
- http://internet.watch.impress.co.jp/docs/news/20130204_586348.html
推測するに、Google Safe Browsingのブラックリストは、攻撃サイトと判定されているサイトへの「リンクを生成するjavascript」や「リダイレクトしうるjavascript」が含まれている場合には、スコアが伝搬するようにしているのではないだろうか。
というわけでこういう結論に至った https://twitter.com/bulkneets/status/308881527599677440