2 ポイント 投稿者 GN⁺ 2023-09-24 | 1件のコメント | WhatsAppで共有
  • 無料ブログプラットフォームのBearは、登録のハードルが低いため、バックリンクファーム、フィッシング、違法薬物販売、オンラインカジノ広告、暗号資産プロモーションのスパムの標的になった
  • no-index・no-followとフィード除外で露出は減らせたが、スパムコンテンツがプラットフォームに投稿されること自体は防ぎにくかった
  • Akismetベースのブロックは効果があったが、ブロックメッセージがスパマーに回避の手がかりを与える問題が生じた
  • 「フラストレーション・ループ」は、ブロックする代わりにフォームの初期化、貼り付けの無効化、フォーカス移動、繰り返しエラーによって、スパマーの時間を浪費させる方式
  • 導入後、新規ブログに占めるスパムの割合は約30%から5%未満に減り、3か月間で問題を報告したユーザーはオンラインカジノ広告主1人だけだった

Bearがスパムの標的になった理由

  • Bearは無料で利用でき、登録が簡単なため、その分プラットフォームを悪用しようとするスパマーが集まる
  • スパムは単なるボットトラフィックというより、Fiverrで「100件のバックリンク」を購入するようなスパムファームに近い
    • 数百人の低賃金作業者がウェブの各所にコンテンツを投稿する
    • 目的はSEO順位の上昇だが、実際の効果はないと見ている
  • Bearは、スパムが投稿されてもより広いインターネットに露出しないよう、基本的な防御線を設けている
    • レビューされていないブログにはno-indexno-followタグが付く
    • サイトマップやディスカバリーフィードにも表示されない
    • ユーザーがレビュー依頼を選択すると、この状態を解除できる
  • ただし露出を防ぐこととは別に、スパムコンテンツがプラットフォーム内に存在する状況自体を減らしたいと考えている

ブロックより回避を遅らせる方式

  • スパム検知にはWordPress系のツールであるAkismetを使用している
    • GPT4で独自の検知システムを作ろうとしたが、Akismetより精度が低く、コストも高かった
    • その後、Akismetのサブスクリプションに移行した
  • 登録時点でのブロックは一定の効果があったが、時間がたつにつれてスパマーが対応方法を学習した
    • ブロックは、どのコンテンツが引っかかるかを知らせるシグナルになる
    • スパマーは合法的なブログのように見せた後、規制の弱い領域にスパムを投稿する
    • 結局、手動で見つけてフラグを付ける必要があった
  • IPブロックも実効性が低い
    • スパマーがNordのような商用VPNを使う
    • Nord VPNだけでも世界中に数百のサーバーがあり、IPブロックではほとんど防ぎにくい
    • 特定IPからの投稿を防ぐと、正当なユーザーまでブロックされる可能性がある

「フラストレーション・ループ」の動作方式

  • The Frustration Loopは、スパムが検知されたときにブログをすぐブロックせず、システムエラーや失敗のように見せてユーザーを疲弊させる
    • アイデアはThe Password Gameから得た
    • スパムが検知されるとフォームを消去し、“Our servers are bearly managing. Try again later.”のようなエラーを表示する
    • すべてのテキストエリアで貼り付けを無効化する
    • 5〜10秒ごとに入力フォーカスを別の入力欄へ移し、タイピング中に意図しない場所へ入力されるようにする
    • 再送信すると、“Ensure content contains necessary parameters.”のような別のエラーを表示する
    • このプロセスを繰り返し、ソフトウェアが壊れていると判断させて諦めさせる
  • 正常なユーザーに発動する可能性は低いと見ている
    • テストでは、明示的に疑わしい行動をしない限り発動させられなかった
    • 本番環境で3か月間運用され、問題を報告したユーザーは1人だけだった
    • そのユーザーはオンラインカジノを宣伝していた

導入結果と残る穴

  • 導入後、新規ブログに占めるスパムの割合は約30%から5%未満に減少した
  • 完璧な解決策ではなく、改善すべき点や塞ぐべき穴は依然として残っている
  • 方式を公開すると潜在的なスパマーが回避できるという懸念はあるが、スパマーがこのブログを読むことはないだろうと見ている

1件のコメント

 
GN⁺ 2023-09-24
Hacker News の意見
  • 昔の ESPN の同僚だった Mike Davidson[1] が 2006 年に作った初期のコミュニティニュースサイト Newsvine[2] を思い出した
    Newsvine にはコメント、推薦、リンク投稿、記事作成があり、ニュース中心の Reddit のようなサービスだった。スパマーや荒らしに対処するため、バックエンドでユーザーを荒らしとしてマークすると、そのアカウントのすべてのページ読み込みにランダムな 10〜60 秒の遅延を入れていて、問題を減らすのにかなり効果的だったと記憶している
    1- http://mikeindustries.com/blog/
    2- https://en.wikipedia.org/wiki/Newsvine

    • その基準なら、新しい Reddit モバイル UI は全員を荒らし扱いしているようだ
    • Twitter/X のようなサービスで米国政府関係者とやり取りする個人まで考えると、どう適用されるのか気になる
      まったく別の理由でバックエンド上で荒らしとしてマークされた人が、政府関係者とやり取りするときに遅延を受ける可能性がある。遅延はブロックと同じではないが、連邦判事から見てもユーザー体験の毀損が十分に似ているのかは疑問だ
    • Newsvine は好きだった。本当に革新的で、歓迎されている感じがした
    • スパムや荒らし行為は、紙の新聞、ラジオ、テレビ、本、雑誌でも起きる。ただ、そこではお金を払わないとできないだけだ
      歴史的に富裕層、儀礼階層、有閑階層はより多くの注目を買うことができたので、頭に浮かぶあらゆるノイズを撒き散らし続けてきた。今ではコンテンツの生産量が消費量を上回り、どんなものにも十分な注目が残っていない
      HN のコメントやリンクの 99% を誰も読んでいないとしたら、HN を運営する優秀な天才たちはそれを教えてくれるだろうか。プラットフォームは、自分たちが何を作っているのかも分からないまま全員に無料の放送権を与え、その結果、今では金持ちだけでなく誰もが無料でスパムや荒らしをするようになった。残るのはノイズだけなので、国連のアテンション・エコノミー報告書を読めばいい
      単線的なソフトウェアエンジニアたちがシステムを高速化しスケールさせられるようになったことが、すべての人の時間とエネルギーを浪費するこうした無意味なシステムが生まれた唯一の理由のように見える
  • Akismet の内部で 6 年以上働いていた
    Akismet はコメントスパム検出には非常に優れているが、登録スパムの検出がうまくできていたなら、wordpress.com にあれほど多くのスパムブログは生まれなかったはずだ
    検索エンジン、選別した用語リスト、開発者が作ってくれたツールを使ってスパムブログを追跡し、本物のスパムブログを何千件も停止した。ミスもたまにはあったが、まれだった
    その後、自動化ツールがいくつか作られたが、こうした探索と停止は優先順位が下がった。初期には wordpress.com がクリーンに見えなければ成長できなかったが、十分に大きくなったと判断されると止まった、ということだ。燃えている車を水鉄砲で消すようなものだとは分かっていたが、時間はそれほどかからず、かなり満足感があった
    この時期になるとハロウィンスパムブログを漁り、クリスマスのスパムブログも見え始めていた

  • サードパーティのフィルターなしでメールスパムをなくす簡単な方法を使っている
    メール用の個人ドメインを持っていて、そのドメイン宛てのすべてのメールを受け取るキャッチオールアカウントを置いている。その代わり、サイトやサービスごとに sitea@mydomain.com、site2@mydomain.com のように別々のアドレスを渡す
    こうすれば送信元に応じてメールを安定して自動分類できるし、自分が渡す名前の形式も一貫させているので、その形式に合わないランダムなメールは即削除され、目にすることもない
    スパムはほとんど来ないが、どこかのサービスがアドレスを漏らしたら、そのサービスのメールを変更するか解約し、そのアドレスを受信拒否リストに入れる。あまりに単純なので、すべてのメールプログラムがドメイン全体をこのように扱えるべきだと感じる

    • 個人ドメインがない場合の代替として、Fastmail masked emails(https://app.fastmail.com)、Firefox Relay(https://relay.firefox.com/)、SimpleLogin(https://simplelogin.io/) のようなものがあり、ほかにもたくさんある
    • 同じように外部の相手ごとに別アドレスを使っているが、フィッシングの見分けにも役立つ
      たとえば、あるショッピングサイト用に作ったアドレスに「銀行からのお知らせ」が来たら、本物のはずがない。悪用されたアドレスは /etc/aliases から削除して無効化できる
      そのほか、postfix サーバーは送信側に逆引き DNS マッピングがない場合、接続を拒否するよう設定している。20 年前にも通用したし、今でもログを見ると依然として有用だ
    • 似たようなシステムを使っている。ドメインはキャッチオールだが、すべての人に別々のアドレスを渡し、エイリアスの末尾にメールルールが何をすべきかを示す断片を付けている
      たとえば anything_s@mydomain.com 宛てに来たら、すぐスパムフォルダに行く。Google から小さなウェブサイトの登録まで、ほとんど全部これを使っている。どうせたいていはスパムしか送ってこないからで、たまにスパムフォルダを確認しても重要なものは一度もなかった
      一般的な企業が送ってくるメールも、ほとんど関心がないのでスパムと見なしている。Uber Eats も注文ごとに何通も送ってくるが、自分の基準ではただのスパムだ。本当に気にかけているサービスなら、スパムに行かない別のサフィックスを付けたアドレスを渡すだろうが、ほとんどそういうことはない
      ウェブサイトがアドレスを漏らしたときに来るフィッシングスパムだけでなく、ほとんどのウェブサイトが送ってくる「小さなやり取りに関する重要なお知らせ」系のメールもうまくフィルタできる
    • 似たシステムを使っているが、アドレスを先に .txt ファイルに「登録」している。形式は sitename-random-number@mydomain だ
      キャッチオールはスパマー側から見るとすべてのメールが正常に配信されたように見えるため、スパマーが送り直し続けてリソースを浪費させる可能性がある
    • 何年も同じようにしているが、自動削除はしていない
      観察したところ、スパムはブログで公開したメールアドレスと GitHub のアドレスにしか来ない。誰かが自分のアドレスをスパマーに売ったのではなく、公開アドレスだけがスクレイピングされたように見える
  • ソーシャルネットワークのスパムチームは、通常スパマーをシャドウバンする
    目的は、スパマーに自分が捕まったことをできるだけ気づきにくくすること。そのため、フラストレーションを誘発する手法や単純なアカウント停止は広く使われていないと思う
    スパム対策は本質的に、検出戦術を展開する企業と、検出を避けようとますます複雑な方法を使う巧妙なスパマーとの間の軍拡競争なので興味深い。スパマーに自分の手法を進化させる必要がないと思わせることができれば、企業側には得になる

    • 実在の人間が巻き込まれるのが問題。私のTikTokアカウントはシャドウバン状態なので、今は何を投稿しても再生数が0で、LIVEも視聴者が0人
      Instagramアカウントは、私が自分自身になりすましたという理由で永久停止された。アカウント全体を失ったのでさらに悪く、セルフィーまで送れと言われたのに、画像を提出したまさにその瞬間に永久停止された
    • 皮肉なことに、最高のスパム検出チームはスパマーのために働いている。広告はスパムであり、adtechが給料を払ってくれるときだけ例外になる
    • 文脈によっては、アカウント停止は武器化され得る。嫌いな人が怪しい行動をしているように見せかけて停止させるようなやり方だ
    • 私が見た現代的なスパムツールは、こうした理由で検証用の第二アカウントのリストを受け取る
      コメントが表示されるかをサンプル確認して、シャドウバンされたアカウントを自動で除外できる
  • Akismetにはまともに機能する異議申し立てプロセスがない。ずっと昔、自分のブログにコメントしていてAkismetにバンされた
    Akismetを使っている場所にコメントすると、黙ってフィルタリングされる。Disqusでも、知人のブログコメントに有用なリンクをたくさん投稿したという理由でバンされたが、そちらは2日で解決し、とても丁寧だった
    Akismetは少なくとも、数え切れないほど昔にバンされたWordPressユーザーを整理すべきだし、WordPressはもう少し正気な代替手段に切り替えるべきだ
    自分のWordPressブログで返信できないというのは実際かなり笑えるし、私は別のブログエンジンを使えばいいだけなので簡単だが、WordPressが自分のユーザーを「スパムを少し殺そう」式に扱うのはいただけない

    • Akismetの開発者です。support@akismet.com に情報を送っていただければ、コメントがなぜ引っかかっているのか調べられます
    • こういう状況では、たいていそのサイトを丸ごと諦める
      ドメインをuBlockのリストに追加して、タイトルをGoogleで検索するのはワンクリックで済む。どんな異議申し立て手続きも、それほど簡単で信頼できるものにはなり得ない
  • 元記事では、有効なユーザーをどう判定してフラストレーションループに入れないのかが抜けている
    Akismetで登録時のスパムを防ぐのはある程度うまくいったが回避は簡単で、一部のスパマーは正常なブログのように見せる方法を見つけたため、手作業で探して印を付ける必要があったという。その後、スパムが検出されると時間を無駄にさせて諦めさせる「Frustration Loop」を作った、と説明している
    しかし正常なユーザーに対してトリガーされないのかという点では、3か月運用して問題を報告したユーザーが1人だけだった、という程度しか書かれていない。個人的には、この部分が記事で最も興味深い箇所だ
    スパマーを苛立たせる施策そのものは素晴らしいが、スパマーと実ユーザーの分離、誤検知と見逃しの把握といった内容がもっとあればと思った。検出の詳細を公開しにくいことや、記事の主題がFrustration Loopであることは理解している

    • Akismetに料金を払い、ユーザー登録情報を渡す。記事のGIFでどんなデータを送っているか確認できる
      Akismetがスパムだと返したらフラストレーションループをオンにする方式なので、かなり賢いと思った
    • Akismetは登録時点のスパマーも検出するのか? 私の理解では、主機能は与えられたコメントがスパムかどうかを判定するAPI
      https://akismet.com/developers/comment-check/
    • まさにそこだ。誰も問題を解決したがっていないように感じる
      解決すれば指標と収益を損なうだけだから、今ではそう考えるようになった
  • メールの連絡フォームで最も効いたスパム対策は、「blindcopy」「bcc」「cc」「additional address」のような名前の隠しテキスト入力フィールドを複数置くことだった
    すべてにデフォルト値を入れておき、送信ハンドラがこれらのフィールドの値がデフォルトと違っていることを検知したら送信を拒否した。そのフォームから偽メールを一通も受け取らなかったと思う

    • スパムスクリプトはそれよりはるかに賢くない
      連絡フォームにテキストなしの隠しフィールドを1つ入れ、アクセシビリティのためにヒントテキストとして丁寧な警告を付けた。そのフィールドに何か入力されていたら黙って捨て、入力内容は私にCC送信されるようにしていたが、フォームを置いていた約8年間でスパムメールは0通だったと思う
    • この概念はハニーポットフィールドと呼ばれると聞いたことがあり、言われているようにかなりよく機能する
      ただ、パスワードマネージャーやオートコンプリートがどうやって引っかからないのかが気になる。フィールドが見えていないことを検出できるのだろうか?
    • Hacker Newsもこういうものを使っていないか? ログインページに隠し入力フィールドがある
    • 私もまったく同じことをしたが、本当に効果が高かった
  • 「フラストレーション」対象のユーザーが入れるコンテンツをサンプリングして、本当に正常か確認しているのか? 誤検知率と見逃し率はあるのか? 正常な登録総数が減ったのか増えたのかも見たのか?
    この方式は単独で使われているわけではない。多くのページはVPNを使うとエラーも表示せず、静かでありながら苛立たしい形で失敗する。VPNを切ると魔法のようにすべて動く。Etsyも一時期、VPNを使うと空白ページを返していて、極めて苛立たしかった

  • Instagramにはフラストレーション・ループがある。自分のアカウントで発動するので分かる。
    私が何か操作するたびに、どんなに些細なことでも再ログインさせられる。リンクを1つクリックするだけでも、何をするにも毎回ログイン画面を経由しなければならない。
    最初は「アカウントで不審なアクティビティが検出されました」から始まり、続いて「アカウントが無効になりました」と表示された。実際の理由は教えてくれないが、公式ルールに載っている現実的な理由としては、誰かを不快にさせる投稿をした、というものしかない。
    しかしその説明には問題がある。私は何も投稿したことがない。数人をフォローすることが、Instagramでしていることのすべてだ。コード入力や本人写真の送信まで経てアカウントへのアクセスは取り戻したが、今では何をするにも再ログインが必要になっている。これが偶然やバグだとは信じがたく、明らかに私を問題人物として識別したものの、処分する証拠が足りないため、想像上の違反について罰しているように見える。
    おそらく、ときどきInstagramの写真リンクをたどったことが原因だと思う。Metaの一部であることも問題で、Instagramを完全に閉じてしまうと、遠方の友人何人かと連絡を取るのに使っているFacebookアカウントへのアクセスも失ってしまう。
    世の中はFacebookから離れ、今ではみんなInstagramにいる。私もおそらくそうしていただろう。Instagramが許可してくれさえすれば可能だったはずだ。

    • クローラーかスクレイパーだと識別されたのだと思う。もう一つのCambridge Analytica事件は望んでいないのだろう。
  • スパム検知はスパマーと検知側の創造性の戦いだ、という話を見かけるが、Akismetならそうかもしれない。だが、スパマーが集まる場所を提供するWebサイトであれば、もはやそういう構図ではない。
    これは私のブログ/Webサイトと、他のブログ/Webサイトとの競争だ。自分のサイトが隣よりもしっかり守られていれば、スパマーは隣へ行く。特にボットではなくクリックファームを防ぐ場合はなおさらだ。
    冗談めかして言えば、森で熊より速く走る必要はなく、群れの中で一番遅くなければいい。