世界を動かす技術を、日本語で。

私を嫌いならIPレベルでブロックしてください

概要

  • Thinkbot というWebクローラーが大量のIPアドレスを使って活動
  • そのIPの多くが Tencent のネットワークブロックに属する
  • robots.txt無視、自己紹介も曖昧で迷惑行為の傾向
  • 大量のIPブロック追加で 476,590 個のIPを遮断
  • インターネットの現状に対する 諦観と対策の記録

Thinkbotによる迷惑クローリングとIPブロック対策

  • 今月のトップWebボットは Thinkbot という自己申告のクローラー

  • User Agent情報には 「問題があればIPでブロックして」 と記載

  • robots.txtを無視し、サイト運営者への配慮が見られない仕様

  • 1ヶ月で 74個のユニークIPアドレス を使用

  • それらのIPは 41の異なるネットワークブロック に分散

  • すべてのネットワークブロックが Tencent 社の所有

  • 中国当局(CCP)がこのような活動を黙認・推進している可能性を示唆

  • スクレイピングが許容される一方、ブロックされても問題なしというスタンス

  • 結果として 大量のネットワークブロック をファイアウォールに追加

    • 例:
      • 43.130.0.0/18
      • 43.130.64.0/18
      • 43.130.128.0/19
      • 43.130.160.0/19
      • 43.131.0.0/18
      • ...(全41ブロック)
  • 上記のリストで 476,590個のIPアドレス をカバー

  • Tencentの全ネットワークブロックを網羅しているわけではないが、一定の効果を期待

インターネット現状への所感とリンク案内

  • このような対策を取らざるを得ない現状に 無力感
  • 「インターネットで自由な交流は難しい」との認識
  • 記事へのリンクは 自由に共有可能 との許可
  • 日付ごと・タイトルごとの パーマリンク構造 を採用
    • 例: https://boston.conman.org/2000/08/01
  • 月単位や任意期間の指定も可能
  • リンクの色合い でページ間の距離感を可視化する実験も実施
  • 記載されたブランド・名称等は 各所有者の権利 に帰属

まとめ

  • Thinkbot のような迷惑クローラー対策として IPベースのブロック が現実的な選択肢
  • Tencent 系ネットワークブロックの遮断による自衛
  • 健全なインターネット運用 のための苦渋の決断

Hackerたちの意見

どのタイミングでIPレンジをホワイトリスト化するのが実現可能になるのか、ちょっと考えちゃうね。広告ブロッカーのリスト作成みたいに、コミュニティの協力でできるかもしれない。

地元のビジネスサイトをいくつか管理してるんだけど、全ての国のISPをホワイトリストにしたら、ログの異常や攻撃の数が減ったよ。Googleも他のいくつかの検索エンジンも、国ごとにインデックスしてるし、オススメだよ。

同じようなことを言いに来た。マルウェアやボットを防ぐためにブロックしなきゃいけないIPアドレスの数が、もう手に負えなくなってきてる。

残念なことに、ちゃんとしたボットは安定したIPを持ってることが多いけど、悪質なやつは住宅用プロキシを使うのが好きなんだよね。住宅用プロキシのIPを禁止すると、実際のユーザーにも影響が出ちゃうし、悪質なやつはすぐに切り替えちゃう。個人的には、IPレベルのネットワーク情報だけじゃ効果的じゃないと思う。他の要素と組み合わせないとね。ソース:私の職場で何千ものIPを使った攻撃を止めるために。

その時点で、IPレベルで「ピアリング」契約を結んでるみたいに聞こえるね。こういう「悪い」ネットワーク参加者とピアリングしないISPのクラスを作るのは意味があるのかな?

アメリカの企業はもうやってるよね。少なくとも、海外にいる間も料金を請求してくる会社には、サービスのキャンセルやサポートを受ける方法がないのは違法にすべきだと思う。

ここでそれをやろうとしてるんだ。PRは大歓迎!: https://github.com/AnTheMaker/GoodBots

どちらか一方だけじゃないよ。ホワイトリストとブラックリストを排他的に選ぶ必要はないし、ほとんどのトラフィックはグレーゾーンから来るんだから。たとえば、あるアドレスや範囲をホワイトリストに入れて、システムが「悪いもの」を検出したらどうする?そのアドレスや範囲をホワイトリストから外すの?その削除を仲間に伝えるの?ホワイトリストに入っていないアドレスや範囲の所有者に削除を伝えるの?所有者が問題をどう対処するかをどうやって伝えるの?もしその範囲の所有者が、コンテンツを積極的に管理していないホスティングプロバイダーだったら?ホワイトリストだけっていうのは大きな問題を引き起こすし、ホワイトリストは信頼できるパートナーと一緒に使うのが一番効果的だよ。同様に、ブラックリストも信頼できるパートナーと一緒に使うのがベストだけど、どのアドレスや範囲が手間ばかりかかるかを見極める必要がある。中間にはグレーゾーンのアドレスがあって、たとえばCGNATを持つISPに割り当てられた範囲とか。個々のアドレスや範囲を厳密に問題ありか信頼できるかでラベル付けするのは難しい。悪質なアクターに対してはブラックリストを実装して、中国やロシア全体、場合によってはクラウドプロバイダーも含めて。信頼できる悪用防止メカニズムを持つ範囲にはホワイトリストを実装するべきだね。たとえば、内部ホストを厳格に持つ企業とか。

ポケモンGOの会社も、ローンチ直後にスクレイピングをブロックしようとしたよね。IPを3つのカテゴリに分けてたのを覚えてる:- ブラックリストに載ってるIP(Google Cloud、AWSなど)は常にブロックされてた - 信頼できないIP(家庭用IP)は少し余裕があったけど、すぐに429エラーが出るようになった - ホワイトリストに載ってるIP(多くの人が合法的に使ってるIPV4アドレス)。たとえば、今のデータプランでは、私のIPは5州先から来てるって言われてるから、CGNATの背後にあるものだね。次に何が起こるかは想像できるよね。ほとんどのスクレイパーは排除されたけど、一番大きなものはモデムデバイスファームを作ってコストを負担した。彼らはほとんどのユーザーがローカルでスクレイピングするのを防いだけど、スクレイピングで利益を上げる会社にはすぐに負けちゃった。これがポケモンGOがした多くの悪い決定の一つだったと思う。カジュアルなプレイヤーは地図なしでプレイしたくないからやめたし、ハードコアなプレイヤーはスクレイピングのためにお金を払うようになって、サーバーにさらに負担がかかった。

中国のASNを全部ブロックすることで、かなりの問題が解決したよ。正直言って、あまり友好的な解決策ではないけど、中国のクライアントからの問題が多すぎて、国全体を禁止する方が楽だった。どうせ中国で商売するわけでもないし、かなり現実的なアプローチだと思う。

そこで止まる必要はないよ!非アメリカのIPを全部ブロックしちゃえばいいじゃん!もしそれが私の健康保険会社や、ほとんどのストリーミングサービス(海外からサービスをキャンセルできないことも含めて)や多くの銀行でうまくいくなら、君にも効果があるはず。悪質なやつらがVPNやボットネットを使わないわけないし、お客さんは海外に旅行しないってことはないよね?

変なところから大量の悪質なトラフィックが来ることがあるよね。セーシェルとか。海の真ん中にある小さな島国で、住んでるのは…ボットらしい?キプロスもそう。中国に関しては、彼らのクラウドサービスはシンガポールやそれ以外の場所にも広がってるみたい。アリババクラウドとテンセントを全部ブラックリストに入れなきゃならなかったし、ASNsは中国の国境を超えて広がってたよ。

Hacker Newsで議論の続きを見る