Twitter API有料化に伴う、非公式な自動化の危険性と仕様

この記事は野に放たれたTwitterの公式クライアントを模倣した、危険な行為やAPIの仕様を説明します。

この記事内で内部情報について解説しますが凍結の仕組みやロジック、対策についてはこの記事が有効です。

まず、自動化をしたい人はこれからGithubや非公式モジュールを探し回るでしょう
その際にソースコードを見て気を付けなければならないものとして簡単に言うと一部識別用や追跡用に作られたトークンやJavaScriptによる実行結果をそのままべた書きしているプログラムではそのプログラムを使用したアカウントが全て一斉に凍結される可能性があります。

例えば、2023/02/09日筆記時点で数日前に起きたVtuberや絵師を中心として質問箱に連携をしていて自動ツイートを有効にしていたユーザーが一斉に凍結されたものなどが関係してきます。

1, TwitterのAPIとはどういった仕組みなのか?

まず、TwitterAPIはTwitterの公式クライアントで使用されているエンドポイントと同一のもので、ただConsumer KeyとConsumer Secret(合わせてBearerも含まれます。)が公式から制限が無く一部隠されたエンドポイントへのアクセスなどを許可された全ユーザー向けのAPIキーを使用しているだけです。

そのため、公式クライアントを自動化したユーザーをスパム対策で凍結する際に公式クライアントとアプリ連携を使用してサーバーから一斉にツイートされたことを考慮せずにスパムで一斉凍結しています。
そのため今回のVtuberや絵師が中心として質問箱ユーザーが凍結された理由は、質問箱のサーバーのAPIが大量のアカウントを使用してツイートを大量に行いスパムを行っているという判定システムにより行われ、自動ツイートを設定していたユーザーは検知に引っかかり全員が凍結したのでしょう

何故、このようなことを行っているのか?
Twitterのスパム検知システムはInstagramやTikTokなどよりも古く単純なものであるため大きなふるいにかけて全員凍結させて、それからArkose Labsによって自動化対策がされたTwitter Support(問い合わせページ)に誘導し、そこで問い合わせをさせることで人間かを判断しています。
そのため、今回の質問箱連携での大量凍結は問い合わせ後にすぐ解凍されているユーザーが大半を占めています。

また、現在ではTwitterは以上の状態に気付き公式Web, Appクライアントではv1.1の仕様を取りやめ主にGraphQLやv2APIに切り替えてv1.1への許諾をキー単位で取り消しています。
そのため、v1.1を使用していたころの昔のTwitterのアプリは数ヵ月前(2022/10を目安)に動作しなくなりました

そして、アカウント乗っ取りの問題であるv1 APIの昔のログインAPIは未だに有効ですが、このログインAPIや最新のログインAPIには問題があり、何故かログイン時に2FAを有効にしておらずとも勝手にScreenNameのリタイプやEmailのリタイプなどを求めるセキュリティがありますが、そのチャレンジを入力する前にUserIDがResponse Bodyに含まれるためUserIDからScreenNameをAPIから取得することで完全に無意味な状況となっています。
そのためTwitterではTikTokなどよりも乗っ取りに対してかなり脆弱的であると考えられます。
最新のAPIでは多少良くなっており不審なログインという判定が存在しており、この判定を食らうとUserIDが帰ってくる前にScreenNameの入力を求められますがなんとこの仕様は数ヵ月前までメインで使用されていたv1のログインAPIではありませんでした。そしてこのAPIは未だに動きます。

私的にTikTokやInstagramのようにAPIを廃止することは良い流れのように見えます。
これまでの利用者を考えるとやり方が突発的でひどいような気はしますがSNSの情報操作力を考慮するとBotへの対策としては良い方向に言っているのかなと思います。

また、Twitterではなぜ誤凍結が頻繁に行われるのか、に関してですが、これはTwitterが未だにIPv4でIPv6に敢えて対応していないことに理由があります。
InstagramやTikTokでは難読化や内部計算により内部APIの仕様を困難にしており検知などを行っているためIPv6を有効にしており、誤凍結などが比較的少なくなっていると思われます。
Twitterでは以上、綴った様にシステム内での検知をほぼ一切行っておらず現在多少システム内での検知が行われ始めていますがそれでもまだ自動化は簡単な状況になっています。
そのためIPv4によるユーザーの凍結やスパム対策をしなければならない状況になっています。
これが問題になる理由はただでさえ枯渇しているIPv4なので動的IPの家庭ではそのIPが回ってきたり、Free Wi-Fiが意図的やたまたま汚染された際にそのIPで利用したユーザーは同一ユーザーと判断され凍結がされる場合が多くあります。
Twitterではユーザー単位でのBANではなく、IP単位でのBANということです。
これを指すのはまず共有サーバーなどで非公式に自動化している危険なユーザーが居た場合巻き込まれます。
また、家で自動化していた場合は所持しているサブアカウントや兄弟、親、同居している家族全てのアカウントが停止されます。
なぜ、IPv6をあえて避けているかという証拠はメディアのtwimg.comなどは既にIPv6に対応していたりすることからの状況判断ですがかなり有説かと思われます。

以上のことを踏まえて今私がぱっと見かけた中でかなり出来が良く、私の中学生のころに作成した過去のゴミみたいなモジュールを見て作ってくれたのかな?というもので一番良く出来ており使い勝手が良い物をここに張り付けておきます。

この方のGithubは私が考慮している中で一番良く出来ており、ログインでの検知もちゃんと対策しておりjs_instの計算やct0を内部で生成している点やセッションを使用して全てのクッキーを拾っているところがとても良いとあげられます。
このjs_instは最重要ポイントでこの値は検知に使用されていることが確認されています。
私は過去にTwitterアカウントの自動生成を、アカウント作成時にArkose Labsが要求されるまで行っており100万垢ほど生成してはいいねを増やしたりしてすぐ凍結されていましたが、まずjs_instの値を固定もしくはキーごと消し去っても動作します。
ですが、これらのまま動作を行ったところ見事に即凍結されたためおそらく間違いなくjs_instは動的に生成することが必要と考えられます。

(ここだけの話task.jsonはAPIキーをスマホの物に変えるだけでjs_instやauth_tokenやct0を考慮する必要はありません、普通にoauth_tokenとoauth_token_secretが帰ってくるのでAndroid用のConsumer KeyとConsumer Secretを使用して4つのキーを用いて使用することで従来のようにAPIを使用できます)

2, これから自動化をしたいならばどうするべきなのか?

個人的には$100を毎月払うことで安定したアクセスと凍結を避けることが可能となると踏んでいます。
おそらく今はまだ毎月$100を払っても従来通りの仕様なので公式クライアントを無理やり使いTweepyの認証などを公式クライアントで上書きするのが一番かと思われます。

また、罠としてログインで気を付けてもキーを取得してもTweepyで使用した時点でバレバレな可能性があるので一からリクエストを行った方が良いと思われます。

自動化する側としてはかなり危険性を伴うランキングでは1位になると思うほど凍結のリスクを伴いますが簡単なので今後これらを使用して凍結されるユーザーが増えていくと思われます。
自動化専用のアカウントを作ってそれだけを自動化しても同じ端末でログインしていれば端末はUUIDによって管理されており全てのアカウントを紐づけることが出来るためもちろん所持している別のアカウントも巻き込まれます。

また、公式クライアントではStreaming APIやActivity APIを行えないことからあまり使い勝手の良いものではないと考えます。
現在はTweetDeckのキーが比較的緩く設定されておりv1.1を使用可能なため、1アカウントだけ自動化していてどうしても続行させたい、等がある場合はTweetDeckを使用して自動化することが推奨されます。

3, 何故この記事を書いたのか?

Githubで数年前に中学生のころ、Twitterが好きで自動化やツイートされた瞬間にいいねをしたり自動化を楽しんでいました
そのころからAPIアクセスへ審査が必要になり出来ないことが増えていき、キーが停止されたりそのアプリに連携したアカウントが全て凍結されたりしたため非公式な自動化を始めて、初めて作ろう!と思ったモジュールなのであまりにもひどく恥ずかしいので今の状態を追記程度にNoteに書いて宣伝をさせていただくために書きました

正直言っちゃうとこれまで凍結を回避するためにいろいろしてきた身からするとDiscordの自動化の方が技術面で色々な物を必要とし、IPでの検知が行われないため楽しい上に大体なんでも出来るためとても楽しいです。

4, 宣伝

Twitterに関連して現在私はTwitterの日本人のフォロワーを増やすサービスを行っております。
そのためモジュール ( https://github.com/KohnoseLami/Twitter_Frontend_API ) など情報の提供はこれ以上行われません

海外では販売されていない日本人の自然なフォロワーやいいね数、リツイート数を増加させるにはこちらから問い合わせや注文を行ってください!

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?