Twitter連携アプリの権限について

あらすじ

先日、「ツイート数カウントくん」というTwitter連携アプリを認証していた12万アカウントから一斉にブロック・フォロー処理が実行される事件がありました。

その件の詳細に関しては以下のまとめ記事等をお読みください。

ツイート数カウントくんのトークンが盗まれたようです – Togetterまとめ

関連して注意を呼びかけるツイートが増えています。これについて補足説明の形で説明させて頂きます。


こちらがリプライ数チェッカ―で頂いている権限です。

ReplyCheckerPermission

 

「新しくフォローする」と「プロフィールを更新する」権限を余分に取得しているように見えてしまいますが、これは必要最低限の権限になっています。

Twitter連携アプリというのはTwitterにお願いして動かしているものなのですが、アプリが許可を貰い受け、アカウントを操作する合鍵を取得する部分はTwitter側が担当しています。

その合鍵で入れる範囲は以下の3つのみからの指定になります。

AccessTokenPermission

・Read only

タイムラインの取得などを行えます。アクションを起こす行為(つぶやき/フォロー/アンフォロー/ブロック/スパム報告/プロフィール変更など)は行えません。

・Read and Write

Read権限の他に、先ほどの自発的な行為の全てが行えます。

・Read, Write and Access direct messages

Read and Write権限の他にDirectMessageを取得することが可能です。

リプライ数チェッカ―の認証画面は、Read and Write権限となります。

各アプリに必要な”最小限の”権限

具体例を挙げてご紹介していきます。リプライ数チェッカーは4番に当てはまります。

  1. 占い・診断系アプリ(結果をツイートできる)
  2. フォロー関係を見やすくWebページで表示する
  3. フォローやブロックを通知する
  4. 定期的にツイートで通知する

1番のアプリに関しては、Read権限のみで問題ありません。1度ツイートするだけであれば、ユーザーが手動でツイートボタンを押さなければいけませんが、Twitter社が用意している専用のページがあります。一度使った後には認証を止めるのも良いでしょう。

次に2番のアプリに関しても同様です。フォローしている中で返されていない人数を調べる、等を一度見るだけであれば1番のアプリとなんら変わりありません。

3番のアプリでは、「通知」する為には定期的に状況を確認する必要があります。そして、その通知をツイートで行う場合にはRead and Write権限が必要でしょう。
1番の際に言及したページはツイート毎に手動でボタンを押さなければツイートされませんので使用できません。
通知をDirect Messageの送信で行う場合Read,Write and direct messages権限になるでしょうか。※1

最後に4番のアプリに関して。こちらもダイレクトメッセージで通知するかどうかで権限が変わりますが、3番と同様です。

※1.公式の英語での記述が分かりづらいですが、Direct Message権限がなくても今の所は送信ができています。

安全性について

今回の事件の原因について、不正アクセスから守る側の安全性について考えます。

個人で運営しているサーバーですと安全性は企業より劣るのは事実です。しかし、企業であれば絶対に安心だ、という割り切り方が正しいかといえば、そうではありません。

つい先日もTweetDeckに脆弱性が見つかりました。TweetDeckはTwitter社が提供しているクライアントですが、こういったこともあります。

TweetDeckにXSSの脆弱性、ワーム増殖の状態に – ITmedia ニュース

Twitter連携サービス提供側としましては、できる限りの対応をしているつもりです。それでもこういった事故は起こりえます。それは全てのWebサービスに言えることです。 それを理解した上で登録してください。

リプライ数チェッカで行っている操作

2014年6月28日現在、次の操作を自動的に行っています。機能追加等で将来変更される可能性があります。

  • リプライの一覧取得(リプライ数の取得の為)
  • 自分の発言の一覧取得(ツイート数の取得の為)
  • ツイートする(通知する為)
  • アカウントが有効か確認する(認証情報が有効か確認する為)
  • フォローしている一覧を取得する(関連ユーザーの表示の為)
カテゴリー: サービス関係のお知らせ タグ: パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です