LittleBITS: メール配信の問題とスパムボットアカウントのブロック

LittleBITS: メール配信の問題とスパムボットアカウントのブロック

オンラインサービスを開発・維持する人々は、すべてを正常に動作させ続けることがどれほど大変かについてあまり語りませんが、現実には、ウェブサイトやその他のインターネットベースのサービスは相当な管理を必要とします。最近、皆様もお気づきかもしれませんが、いくつかインシデントが発生しました。

TidBITS#1683 電子メールの配信問題

先週の TidBITS#1683 の電子メール版で、解決も再現もできない配送問題が発生しました。約 19,000 人に送信した後、WordPress サーバーのアドレスに基づいて送信メールを管理するアプリ Sendy が、個々のメッセージを Amazon の Simple Email Service (SES) に渡して配送させる際に 403 または 503 エラーを受け取るようになりました。Amazon SES に問題は見つかりませんでしたし、残りの 5,500 件のアドレスにも異常はありませんでした。その後、TidBITS 会員への個々の記事の送信や、オランダ語版と日本語版の翻訳記事の送信は正常に動作しました。ほぼ一週間が経過し、これ以上試す方法がなくなったため、Sendy がドライブをエラーログでいっぱいにしてしまうのを防ぐため、残りの TidBITS#1683 の送信をキャンセルしました。

先週のメール配信を受け取っていなかった方には、大変申し訳ございません!TidBITS#1683は、他のバックナンバーと同様にウェブサイトでご覧いただけます。TidBITS#1684では、全てがうまくいくことを心から願っています。前号までは何も変わっていませんし、その後も何も変えていませんから。近々Sendyのアップデートをインストールする予定ですが、これまで問題が発生したことがないので、先週号で問題を引き起こした宇宙線が修正されるとは思えません。

新規アカウントのメール認証

数ヶ月前、新規アカウントにメールアドレス認証を導入しました。長年、WordPressシステムに何千もの偽アカウントを作成するスパムボットとの戦いに敗れてきました。これらのアカウントには大した機能がないのに、なぜこのようなことをするのかは分かりません。おそらく、WordPressサーバーを検知した移動型スパムボットのランダムな被害者の一人だったのでしょう。

スパムボットがこのような行為を行えるのは、WordPressがデフォルトで潜在的なユーザーが即座にアカウントを作成できるからです。Stop Spammersプラグイン、非標準URL、reCAPTCHAなど、様々なセキュリティ対策を講じていましたが、スパムボットを阻止することはおろか、実際に速度を低下させることすらできませんでした。はっきり言って、状況はひどいものでした。ピーク時には、スパムボットは毎日数百ものアカウントを作成していました。数少ない正規のアカウントを特定し、偽アカウントを削除することさえ困難でした。

最終的に、WordPressプラグイン「User Verification」をインストールしました。このプラグインはスパムボットによるアカウント作成を阻止するわけではありませんが、新規アカウントはユーザーが確認メール内のリンクをクリックするまで「未確認」としてマークされます。スパムボットが不正に取得したメールアドレスで登録し、受信した確認メール内のリンクをクリックすることは考えられますが、ほとんどのスパムボットはそうしません。既存ユーザー全員を「確認済み」としてマークし、User Verificationに慣れた後、一定期間後に「未確認」のままになっているアカウントを自動的に削除するオプションを有効にできればと考えていました。

残念ながら、それは叶いませんでした。理由は分かりませんが、その機能をオンにしたところ、認証済みとしてマークされ、実際に人と繋がっているアカウントが17件も削除されてしまいました。またアカウントが削除されるのではないかと不安なので、スパムボットアカウントを手動で削除することにしました。

私が本当に求めているのは、登録フォームにメールアドレスを入力したユーザーにトークンで保護されたリンクをメールで送信し、ユーザーが手動でリンクをクリックするまでアカウントを作成しないシステムです。WordPressプラグインの世界ではそのようなシステムを見つけることができていませんし、私たちの開発者には今のところそのようなシステムを構築する時間がありません。ご提案をお待ちしております。

どのアカウントが未検証のままになっているかを確認できるため、スパムボット アカウントの削除プロセスが少し簡素化されました。その過程で、スパムボット アカウントに関連付けられている IP アドレスに共通点があることに気付きました (Stop Spammers は WordPress ユーザー リストにソース IP アドレスを表示します)。調べてみると、その多くが Biterika Group というロシアの ISP によって管理されていることが分かりました。Scamalytics は現在 Biterika Group を詐欺リスクは低いと見なしていますが、当時、私のサーバーを攻撃したスパムボットは間違いなくこのグループによるものでした。Stop Spammers を使用して特定のドメインとロシアをブロックしようと試みましたが、効果はほとんどなく、私は非常に苛立ち、憤慨したため、思い切って IP アドレス範囲全体をブロックすることにしました。これは通常、正当なユーザーに影響を与える可能性があり、リストの管理も難しいため、良い考えとは言えません。しかし、ロシアのことなので、仕方ありません。

(余談ですが、Biterika が管理する 46,000 個の IP アドレスの多くをブロックする秘訣は、CIDR 表記法でした。CIDR はClassless Inter-Domain Routingの略で、1 つの IP アドレスで CIDR を使用して多数の一意の IP アドレスを指定できるようにする IP アドレス指定スキームです。CIDR IP アドレスは、末尾にスラッシュがあり、その後にIP ネットワーク プレフィックスと呼ばれる数字が続く、通常の IP アドレスのように見えます。たとえば、Biterika の IP アドレスの一部は 109.248.204.0 前後でしたが、109.248.204.0/23 を Stop Spammers ブロックリストに追加すると、その IP 範囲のスパムボットがサイトで何も実行できなくなります。私は、使用する適切な IP ネットワーク プレフィックスを決定するために、この CIDR から IPV4 への計算機を使用しています。)

Biterika の IP アドレスをすべてブロックする作業が非常に成功したため、スパムボットアカウントの IP アドレスをチェックし、英語、オランダ語、日本語圏の国以外からの IP アドレスをブロックリストに追加するようになりました。このことの影響は十分に理解しており、ブロックされた TidBITS 読者からメールで連絡があった場合は、問題の IP アドレス範囲を削除します。

確認メッセージ内のリンクをクリックするようユーザーに求めることと、スパムボットのIPアドレスをブロックすることの組み合わせは、非常に効果的でした。少数のスパムボットアカウントが侵入してくることもありますが、1日に数百件のアクセスを許容する代わりに、週に数件程度なら対応できます。

WordPressのスパムボットアカウント

ユーザーの視点から見ると、これまでいくつかの問題に遭遇しました。ユーザーを助け、予期せぬ不具合を解明してくれた Lauri Reinhardt さんの協力と、インストールと設定全般を担当してくれた Eli Van Zoeren さんの技術的な仕事に、心から感謝しています。電子メール認証オプションを正しく設定し、CAPTCHA チェック機能を提供する複数のプラグインによって生じる競合を修正し、サイトの奥深くにある壊れた登録ボタンをなくし、TidBITS サイトと TidBITS Talk サイト (ログインシステムを共有) 間の相互作用を解明し、さまざまなエッジケースに対処するのに、かなりの時間がかかりました。今でも、ユーザー認証にバグがあり、手動でメンバーシップを更新した後に一部のアカウントが「未確認」とマークされるのではないかと心配していますが、原因を突き止めることができていません。

既存のユーザーの皆様には、今回の変更による大きな影響はございませんが、サイトご利用中に問題が発生した場合は、 [email protected]までご連絡ください。万全を期しております。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.