助「いやーひどかったですね」
Dr.「ひどかったねー。パルパティーンを復活させるなんてねー」
助「その話じゃない!」
Dr.「あ、「時間差ゲロずるい!」って話のほう?」
助「違う!jてか映画のネタバレするな!あんたのブログの話でしょ。内容スカスカっていう」
Dr.「あれはひどかった。時間なかったし。すみませんでした」
助「ということで、今回はEP2ではなく、前回の補足編です」
Dr.「最初に、前回ブログの後半に誤りがありまして、次のように訂正します。
文献[1]では、以下の5つを満たせば、ユーザのリクエストではなくクローラと判断することにしてました。
- 既知クローラのIPアドレス
- 既知クローラのuser agent
- Robots.txtへのリクエスト
- HEADメソッドによるリクエスト
- 画像リクエストなし&referer値なし
助「なるほど。これなら良性か悪性かの判断はないので、納得ですね」
Dr.「ところが、この4は実は微妙。
昔のお行儀のよいクローラはHEAD使ってたけど、最近のクローラはその辺考えてないかどうか、あまりHEAD使わないんだそうだ。
それと、前回、この文献が新規で採用した特徴量があったでしょ?」
助「ああ、次の2つですね。」
- セッション中有効なリクエストの数
- 固有の(繰り返しリクエストされない)ページ数
Dr.「そう。このうち、固有の(繰り返しリクエストされない)ページ数だけど、これは悪性クローラが無駄なアクセスをたくさんするからっていう仮定なんだけど、最近悪性クローラのクローリングがだんだんインテリジェントに効率化されてくることによって、仮定が危うくなっている。それに、サイトの作りによってはユーザがなんどもトップページに戻らされたりするので、ますますあやしい。実際に、この特徴量に反するデータも実験で確認されていて、著者らも課題として挙げている」
助「難しいですねー。また一般的な話として、こういう検知のための特徴を公開すると、攻撃者に裏をっかれるってのもあるでしょ」
Dr.「そうだな。refererなんてその例で、今クローラは何も考えてないからrefererつけてないけど、検知を回避しようと思ったらつけてくるかもしれないね」
助「いたちごっこすね。英語のフレーズだと、こういうのはarms raceでいいのかな?」
Dr.「ではこれで以上です。エピソード、つながったかな?」
助「ところでDr.、その中身は何ですか?」
Dr.レイア「…希望です」