スパムボットによる編集でDiscourseフィルターを騙す手口

Some new spam bots appeared, which are intelligent enough to optimise for Discourse’s built-in spam filters. They first make a comment without any links, and later on they’ll edit and add the link. Discourse doesn’t catch them this way. For example the following revision:

I’ve experienced this too, the most insidious are burying links in punctuation with their edits. Instead of generating clicks from the victim site they seem mostly concerned with creating inlinks and are oblivious to the nofollow being applied to said links.

The other more worrying trend is wiki edits, unlike posts and post edits these don’t appear in the user activity, I can only tell that it has happened because they’ve received a wiki editor badge, without ever posting a wiki post.

Is this spam bot TL1 or TL0?

I don’t see a link in that post. I just see text. Can you show raw?

I deleted the user, and I don’t remember the TL.

The links were like the following:

 <a href="https://shareit.onl/">shareit</a>  <a href="https://mxplayer.pro/">MX player</a>

or

<a href="https://messenger.red/">https://messenger.red/</a>  <a href="https://kodi.software/download/">https://kodi.software/download/</a>

or

 <a href="https://viamichelin.onl/">viamichelin</a> <a href="https://putlocker.ooo/">putlocker</a>

(The end of three different posts from the same user)

TL is critical for diagnosis here, cause you can just disallow edits to TL0 which is fine, if the spam bot is smart enough to get to TL1 … well we have a diff problem.

It was able to comment 3 posts + add 6 links without triggering the spam system, I think it must have been TL1, but I might check it in a backup.

Honestly, these bots are really smart. They post a “thanks for your post” reply first. There is absolutely nothing suspicious about it, even their email address is similar to their user name. Only googling the email gives results on spam list, nothing else really.

They wait for you to approve the post. Only then they later activate their spam posting bits.

These are not bots, they are humans. There has been a vast increase in human spammers in the last 8 years.

That’s been my impression too. It’s borne out in a variant of the technique described in the OP that we’ve seen. In this case the spammer “replies” to a comment and uses the Discourse quote feature to copy some of the other person’s text into their message. Then they insert their link into the copied block, thus making it look like the other user did it. Not sure if this is supposed to spoof the system into thinking the link is from someone of a higher T level or what. Kinda stupid, really, but definitely seems like something that had to be done manually, not by a bot. In particular, they don’t just drop the URL into the quoted text either; they highlight some text and use the link tool, adding a further layer of disguise. We’ve seen a few of these over the last couple of months.

スパマーが本物らしい投稿をした後、数週間後に[無料 Netflix][技術ニュース] などのリンクを挿入していることに気づきました。

TL3 未満のすべての編集に対してリンクの挿入を防止する方法はありますか?TL4 未満のユーザーによる URL の挿入をブロックするだけでも構いません。

あるいは、この問題を解決する別の方法をご存知ですか?

管理者やモデレーター以外のすべての編集が投稿をアクティブにするようにすることは可能でしょうか?すべての編集を確認できると良いと思います。人間のスパマーはますます巧妙になっています。

追記:あるスパマーの投稿を見ていますが、完全に本物らしく、トピックに関連しています。挿入されたリンク以外に、スパマーであるという手がかりはありません。

最初のステップは、デフォルトの投稿編集時間制限を「1 日」程度に引き締めることです。ユーザーが数週間前の投稿を頻繁に編集する必要がある場合を除き、サイト設定で約 15 秒でこれを閉じることができます。

今夜はその設定を変更する予定ですが、それだと一部のユーザーを不快にさせるかもしれないので、別の方法があることを願っています。後で戻って編集できないとわかると、人々は自由に発言することに慎重になる傾向があります。(編集がロックされているフォーラムではあまり投稿せず、全体的にあまり居心地が良くありません。)

理想的には、編集の時間制限をなくし、編集するたびにトピックが更新されるようにしたいです。

これは難しい問題です。40 件の投稿があるトピックで投稿 #12 が編集された場合、その編集でトピックが最上部に移動すると、それを発見するのは驚くほど困難になります。すべての投稿をスクロールして確認する必要があります。

ここで一つの代替案として、一定の閾値を超えて行われたすべての編集をリスト化するモデレーションツールの導入が考えられます。ただし、これには多くの追加オーバーヘッドが生じます。

別の代替案として、TL2 以上のユーザーにより長い編集時間制限を設けることも考えられます。

なぜですか?「数週間後」に戻って何かを編集するのは非常に稀なケースです。特に編集可能であることを示したい場合は、ウィキ化することもできます。まずは「数日間」という適度な中間案を試してみるのが良いでしょう。

実際、この設定のデフォルト値を少し引き下げます。60 日から 30 日にします。なぜなら、はるかに後になって 編集するために戻ってくるというユースケースは、私にとってますます非現実的に思えるからです。

それは役立ちそうですね。

現時点では、リンクの追加や投稿の編集に必要な信頼レベルを変更し、TL1 に到達する条件を少し厳しくしました。

最後に目にしたスパム投稿は、いつものような明白なスパマーによるものではなく、通常のユーザーのように振る舞い、まともな質問を投稿してサイトになじんでいる人物によるものでした。

TL0 ユーザーが行ったすべての編集をクエリして、過去のスパム投稿を探してみます。

もし 1 つの投稿が「未読」にマークされた場合、その投稿の横に青いドットが表示され、ユーザーがそのトピックを訪れたときに自動的にその投稿までスクロールされるのではないでしょうか?

時には、自分から言いたくなかったことを言ってしまったと感じ、それを削除したいと思う人もいます。私たちは、過去に発言したすべてのことが人生の残りの間につきまとって問題を引き起こす可能性のある世界に生きています。人は生涯を通じて同じ人間ではなく、過去の自分(あるいは単に怒っていた瞬間)を永遠にオンラインに残したくないと考えるかもしれません。編集が制限されている場所では、私はオンラインで自由に発言しない傾向があります。

ちょうど思い出したのですが、「新しい返信、編集、削除、復元があったとき」のポスト用ウェブフックがあります。まだ確認していませんが、ヘッダーからアクション(「編集済み」など)を取得できれば、それらを外部ダッシュボードに投稿して手動でレビューするスクリプトを作成できます。それなら私のサイトの問題は解決します。

30 日(または設定している 1 日など)の制限を超えている場合、削除のためにフラグを立てることができます。

まだフォローされていない場合は、兄弟トピックの Human-driven copy-paste spam が参考になるかもしれません。

この種のスパムは、モデレーターやアクティブなコミュニティには見えないからこそ機能しています。それが唯一の理由です。もし、すべての編集が「最新の活動」ビューでスレッドをトップに押し上げるようにすれば(トピックが既読済みの場合、その編集された投稿への直接リンクが表示される)、スパムと無価値な初期のコピー&ペーストコンテンツという両方の問題を一度に解決できるかもしれません。

さらに単純な方法(完全に効果的ではありませんが)として、私のモデラー仲間たちも、編集された投稿を編集時刻でソートして表示する特別なビュー(必要に応じて信頼レベルで制限することも可能)を喜んで監視するでしょう。

おっしゃる通りだと思います、@sam。ここには2つのサイト設定が必要です。1つはTL0とTL1用、もう1つはそれ以上の信頼レベル用です。来週にそれを割り当てていただけますか?簡単だと思います。

編集可能な期間の設定を以下のようにすることをお勧めします。

  • TL0およびTL1 — 1日
  • TL2以上のすべてのユーザー — 30日(現在のデフォルト)