twitterのスパムアカウントを考察する [ltdd 01]
DESCRIPTION
[LT駆動開発 01]のスライドです。TRANSCRIPT
Twitterのスパムアカウントを 考察する
2014/03/01 LTDD #01 ねむねむ @nemumupoyo
自己紹介
• HN: ねむねむ
• Twitter: @nemumupoyo
• 情報系の学生です
Twitterスパムアカウントとは
• ここ最近増えている、無差別フォローアカウント
• リンク付きツイートを行い、そのリンクを踏むとアプリ認証ページへ飛ばされる
• 間違えてアプリ認証をするとあんなことやこんなことをされる(後述)
スパムアカウントの生成目的• アカウントそのものを売るため
• アプリ認証をさせて情報を取得するため
• アプリ認証でフォロワーを増やすため
• 情報操作 #知らんけど
• その他(トレンドねつ造、何らかの研究など)
アプリ認証するとどうなるか• 勝手にツイートされる
• 勝手に知らない人をフォローされる
• 勝手にDMを読まれたり送られたりする
• 勝手にプロフィール画像・ユーザー名を変更される
(́・ω・`)・ω・`) キャー / つ⊂ \怖いー
という話は置いておいて
本題
そんなに大量のアカウントを どのように生成しているのか?
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
クライアントを 確認してみました
クライアントを使わず Web・keitai WebなどWeb上から
ツイートしている
APIを経由せず公式のWebを使うことで アカウント全体の凍結を防ぐ
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
手作業でアカウントを 作成してみました
分かったこと• どのIPアドレス(国も問わず)でも1回目は画像認証が表示されない
• 2回目からは画像認証が表示される
• 8回目辺りでアカウント作成画面で弾かれる
• 約1日経つとカウントはリセットされる
分かったこと• どのIPアドレス(国も問わず)でも1回目は画像認証が表示されない
• 2回目からは画像認証が表示される
• 8回目辺りでアカウント作成画面で弾かれる
• 約1日経つとカウントはリセットされる
あれ? 画像認証が出ない
フォームのPOST内容パラメータ名 詳細
authenticity_token hiddenフィールドに表記されたTokenuser[name] 登録するユーザーのユーザー名user[email] 登録するユーザーのメールアドレス
user[user_password] 登録するユーザーのパスワードuser[screen_name] 登録するユーザーのID
user[remember_me_on_signup] ログイン維持の確認user[use_cookie_personalization] Cookieによるトラッキング機能の確認asked_cookie_personalization_setti
nghiddenフィールド(常に1)
user[send_email_newsletter] 最新情報をメールで受信するかuser[discoverable_by_email] メールアドレスからの友人検索機能context、ad_id、ad_ref 空文字・無くても良さそう?Cookie・Session レスポンスに含まれるCookie,Session
これなら 自動生成ができそう
1日1回までなら大量自動生成 とは言えない
でも
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
技術的に問題点がありそう
• APIがアプリケーションごと停止されたら終わりなのでは?
• 画像認証もあるのでは?
• アカウント作成数に制限とかあるのでは?
そこでEC2です
EC2はインスタンスを再起動する度に IPが変更される
(固定IPにすることも可能)
Twitterアカウント登録フォーム
PC
EC2 API Tools
EC2
起動・再起動
POST送信
EC2無料枠で計算するとEC2無料枠(月750時間)で計算すると
理論上では12×750 = 9000 (個) のアカウントを作成可能
1年(12ヶ月で)
あれ?
別にEC2使わなくてもFlashやJava Servletを使ってCookie・Sessionを管理できれば自動生成が可能なのでは?
POST送信にFlashや Java Servletを悪用された場合• FlashやJava Servletを用いてSession・Cookieを管理することで悪意のあるサイトにアクセスしただけでアクセスしたユーザーのIPアドレスでTwitterアカウントを作成することが可能
• バックグラウンドで動作し、ユーザーには目に見える影響が無いため被害に気づきにくい
• IPアドレスがランダムなため、アカウントを凍結することが難しい
まとめ・感想
• Twitterアカウントの自動生成は実現可能
• アカウント作成時に必ず画像認証を出さない理由は不明(ユーザー数を増やすため?)
• APIに対する規制を強化してもスパムに対しての効果は薄い
ご静聴ありがとうございました
@nemumupoyo