ML4WS EP1.5 サイトクローラー・ストーリー

助「いやーひどかったですね」
Dr.「ひどかったねー。パルパティーンを復活させるなんてねー」
助「その話じゃない!」
Dr.「あ、「時間差ゲロずるい!」って話のほう?」
助「違う!jてか映画のネタバレするな!あんたのブログの話でしょ。内容スカスカっていう」
Dr.「あれはひどかった。時間なかったし。すみませんでした」
助「ということで、今回はEP2ではなく、前回の補足編です」
Dr.「最初に、前回ブログの後半に誤りがありまして、次のように訂正します。
文献[1]では、以下の5つを満たせば、ユーザのリクエストではなくクローラと判断することにしてました。

  1. 既知クローラのIPアドレス
  2. 既知クローラのuser agent
  3. Robots.txtへのリクエスト
  4. HEADメソッドによるリクエスト
  5. 画像リクエストなし&referer値なし

助「なるほど。これなら良性か悪性かの判断はないので、納得ですね」
Dr.「ところが、この4は実は微妙。
昔のお行儀のよいクローラはHEAD使ってたけど、最近のクローラはその辺考えてないかどうか、あまりHEAD使わないんだそうだ。
それと、前回、この文献が新規で採用した特徴量があったでしょ?」
助「ああ、次の2つですね。」

  • セッション中有効なリクエストの数
  • 固有の(繰り返しリクエストされない)ページ数

Dr.「そう。このうち、固有の(繰り返しリクエストされない)ページ数だけど、これは悪性クローラが無駄なアクセスをたくさんするからっていう仮定なんだけど、最近悪性クローラのクローリングがだんだんインテリジェントに効率化されてくることによって、仮定が危うくなっている。それに、サイトの作りによってはユーザがなんどもトップページに戻らされたりするので、ますますあやしい。実際に、この特徴量に反するデータも実験で確認されていて、著者らも課題として挙げている」
助「難しいですねー。また一般的な話として、こういう検知のための特徴を公開すると、攻撃者に裏をっかれるってのもあるでしょ」
Dr.「そうだな。refererなんてその例で、今クローラは何も考えてないからrefererつけてないけど、検知を回避しようと思ったらつけてくるかもしれないね」
助「いたちごっこすね。英語のフレーズだと、こういうのはarms raceでいいのかな?」
Dr.「ではこれで以上です。エピソード、つながったかな?」
助「ところでDr.、その中身は何ですか?」
Dr.レイア「…希望です」

ML4WS EP1: サイトクローラー

Dr.drokubo「助手ブローリン君!」
助手ブローリン「…一体どうしちゃったんですか?」
Dr.「え?」
助「いや、みんなの声を代弁してみました」
Dr.「いやそのあれじゃ、まだ著者自身方向性が定まっていないのじゃから、勘弁してほしいのじゃ」
助「その『…じゃ』は続けるんですか?」
Dr.「いや?」
助「(会話形式にする理由はいくつか考えられる…ボケのツッコミ役がいて楽、短かいコンテンツもだらだらやって長く見せられる、対立する両論併記しとけば炎上を避けられる…
それに今回は内容が薄い、というか内容がないののごまかし…たぶん全部だな)」
Dr.「何か言ったか?」
助「いえ。Dr.、それより今回のお題ですが、『ML4WS』って何ですか?」
Dr.「助手君、キミはエーアイとは何か知っているかね?」
助「ああ、確か解剖しなくてもCTとれば殺人の証拠が見つかるやつ」
Dr.「お前はどこのチームバチスタだ。それはAiで、Autopsy imagingな。てかお前がボケたらそれぞれの役割がボケるだろうが。全部大文字でAIだ!」
助「安室奈美恵 featuring」
Dr.「もうええわ!ありがとうございました!」
助「それで終わったら怒られますよね…。Artificial Intelligenceつまり人工知能ですね。最近も、崩壊したりいろいろバズッってるやつ」
Dr.「そうだ。流行の波はセキュリティ業界にも押しよせ、今やセキュリティもAIなんだ!」
助「といっても、AI=機械学習のコンテキストですけどね」
Dr.「その通り。MLとはMachine Learningつまり機械学習のことじゃ。しかしこの機械学習というやつは厄介な諸刃の剣での、攻撃側にも防御側にも使えるという。そのことが、今回のAI流行の前、2011年にそれを指摘した論文があっての」
助「↓ですか」

[1] K. Rieck, “Computer security and machine learning: Worst enemies or best friends?,” in Proceedings – 1st SysSec Workshop, SysSec 2011, 2011, doi: 10.1109/SysSec.2011.16.

Dr.「最悪の敵か最良の友…か。善悪はそれを用いる心の中にあり…」
助「科学者がよく使う詭弁じゃ!って、サクラ先生!?ひょっとして、それが言いたかっただけ?」

Dr.「(無視して)で、ここからが本題じゃ。ML4WSとは、Machine Learning for Web Securityのこと。つまりさっきのでいうと、ワーストエネミーでなくベストフレンドの方じゃ。もう、だいじょうぶ心配ない…」
助「(無視して)しかし、最近セキュリティ界だと、MLに対する攻撃(adversarial example)とか、ML応用でもマルウェア検知が流行りじゃないですか?」
Dr.「そこはあれだ、そんなみんなやってることをやっても、面白くないじゃろ!」
助「(きっと大人の事情だな…)」

Dr.「マルウェアに比べ、ないない言ってるが、結構あるぞ。ML4WS。学習のターゲットもさまざま。ざっと以下に挙げてみよう。」

  • maliciousなWebサイトの検出
  • maliciousなクローラの検出
  • Web脆弱性の予測
  • 脆弱性テストの学習
  • WAF、フィルタリングの学習
  • Webアプリケーションに対する攻撃の予測

助「ちょっと待ってください。maliciousなクローラって何すか?クローラにmaliciousかそうでないか、なんてあるんですか?ていうか、判断できるんですか?]
Dr.「じゃ、これからいくか。」

[2] Hosseini, N., Fakhar, F., Kiani, B., & Eslami, S. (2019). Enhancing the security of patients’ portals and websites by detecting malicious web crawlers using machine learning techniques. International Journal of Medical Informatics. https://doi.org/10.1016/j.ijmedinf.2019.103976

助「patient?患者?」
Dr.「そうこれ、医療情報学ジャーナルなんだよね。分野違いのせいか、機械学習やクローラについて丁寧に説明しているのが好印象。ただ、内容は医療向けというより、一般にも通用する内容だな…
で、さっきの質問だけど、後でmaliciousなことをするための予備調査として動くのがmaliciousなクローラということらしい。ふるまいとして、クローラとそうでないものを、次の5つの観点で区別しているぞ」

  • 既知クローラのIPアドレス
  • 既知クローラのuser agent
  • Robots.txtへのリクエスト
  • HEADメソッドによるリクエスト
  • 画像リクエストなし&referer値なし

Dr.「上の条件に合致しなければ、クローラというわけだ。それをSVMで学習させているよ」
助「ふーん。でもまあなんかふつーですよね。この論文の新しい点は?」
Dr.「きびしいこと言うな。従来の特徴量に加えて、次の2つを加えたことらしい。それで精度がちょっと上がったらしいぞ」

  • セッション中有効なリクエストの数
  • 固有の(繰り返しリクエストされない)ページ数

助「なるほどー」
Dr.「気持ちこもってないなー。まあクローラ検出はこの論文が引用している通り、先行研究もあるぞ。
じゃ次いこかー。と、言いたいところだけど、それは、CMの後でーす」
助「上戸彩か!え?終わり?」
Dr.「はい。長くなりすぎたんで、この辺で切っときましょ」
助「長くなったのは脱線が多すぎるせいでは…」
Dr.「そういうなサノスよ。

誰かの文章を読んで「何を言いたいのかわからない」という感想を言ってくる人は「文章は何か言いたいことがあるから書くものだ」という思い込みを持っているのだろうね。「この文章の主題はなにか」「作者は何を言いたかったのか」式の試験問題に解答し続けてきた人たちの読み方なのかな。

小田嶋隆氏Twitter

と、小田嶋先生もおっしゃっておる!」
助「(小田嶋先生というか、伊集院光の悪影響だな)」

Dr.「まあ、これで終わるのもあんまりなので、次回予告をば。
次回は、maliciousなWebサイトの検出の話を。これは、↓の論文を読んでおくとよいぞよ」

[3] Saxe, J., Harang, R., Wild, C., & Sanders, H. (2018). A deep learning approach to fast, format-agnostic detection of malicious web content. Proceedings – 2018 IEEE Symposium on Security and Privacy Workshops, SPW 2018, 8–14. https://doi.org/10.1109/SPW.2018.00010

助「S&Pの論文ね。なんか、うっすいうっすいスープを飲まされたあげく、おかわりは来週まで待てとか…はぁー」