こんばんは。ritouです。
なんの話?
ちょっと前にQiitaでこんなことがありました。
最近はこんなのも見かけました。
大量ユーザ登録攻撃による彼らのターゲットは俺個人ではなく、ユーザ登録確認メールを受け取る人々だ。なぜならそのメールにフィッシングURLが載るように仕向けているからだ。
— TAKUYA🐾個人開発で食うノウハウを書く (@craftzdog) 2020年6月13日
この場合、ユーザの名前欄に'http'が入っていたらリジェクトする施策を付ければある程度効果があるだろう。 https://t.co/FusQ3d1XEr
ということで、表題の通りSNSのユーザー名にURLやドメインを含み、通知用のメールが送られることで可能となる拡散行為について取り上げます。
拡散行為のターゲットは?
既存ユーザーをターゲットにした拡散行為
Qiitaの例では
- 悪意のある者は拡散させたいURL=ドメインを含む名前のアカウントを用意する
- 悪意のある者は既存ユーザーを次々とフォローしていく
- フォローされた人は、「〜さんからフォローされました」というような文言がメールで送られる
- メーラーによってドメイン部分がリンクとなりそこから誘導可能な状態となる
という流れのように見えます。
フォローやいいねを繰り返すことで、ドメインを拡散できる可能性があります。既にたくさんのユーザーを抱えるサービスなどでは注意が必要でしょう。
未登録ユーザーをターゲットにした拡散行為
後者のサービスの例では
- 悪意のある者は新規登録時にメールアドレスとURLを含む名前を入力する
- メールアドレス向けに「こんにちは ~ さん」のように名前を含むメールが送られる
- メールアドレスを持っている人のメーラーによってURL部分がリンクとなりそこから誘導可能な状態となる
新規サービスだからと言って安心してはいけません。 ターゲットのメアドリストを突っ込んでいくことで、URLやドメインを拡散できる可能性があります。
対策
いくつかあるでしょう。
メールで送られる可能性のある名前にURLやドメインが含まれないようにする
現実的に、こんにちは~さん、というメールはよく送られています。 登録時のユーザー名のバリデーションを厳密にやろうと思うとなかなか困難そうです。
URLやドメインを含む可能性がある"名前"を含むメールを送らない
新規登録時には、先にメールアドレスの確認を行うことで、登録完了してから名前入りのメールが行われるようになるなど、頻度は減らせるかもしれません。
URLやドメインがリンクとして扱われないようなメールにする
これも簡単ならやるべきかもしれませんが各メーラーの挙動はどうなんでしょう。
まとめ
URLの拡散行為への対策についてもう少し考えてみても良さそう(雑)
ではまた。
6/17追記
「リンクを拡散できる」ことと「たくさんアカウントが作られたこと」のそれぞれの事象について
- URLを弾く
- reCAPTCHA や js などで大量アクセスを防ぐ
という考察が行われていますが、それぞれについてより深い考察が行われることが他のサービスで似たような被害が行われることを防ぐことに繋がるでしょう。