Malicious PyPI Packages Exploit Instagram and TikTok APIs to Validate User Accounts
2025/05/20 TheHackerNews — Python Package Index (PyPI) リポジトリにアップロードされた悪意のパッケージを、サイバー・セキュリティ研究者たちが発見した。これらのパッケージは、盗み出したメール・アドレスを、TikTok/Instagram の APIで検証するための、チェッカー・ツールとして機能する。問題となっている3つのパッケージは、現時点の PyPI では提供されていない。それらの Python パッケージ名は、以下の通りである。
- checker-SaGaF:ダウンロード数 2,605
- steinlurks:ダウンロード数 1,049
- sinnercore:ダウンロード数 3,300

先週に公開された分析のなかで Socket 研究者である Olivia Brown は、「その名の通り、”checker-SaGaF” がチェックするのは、対象となるメール・アドレスと TikTok/Instagram アカウントとの関連付けの有無である」と述べている。
具体的には、このパッケージは、TikTok のパスワード復旧 API および、Instagra mのアカウント・ログイン・エンドポイントに HTTP POST リクエストを送信し、入力されたメールアドレスが有効かどうか、つまりそのメール・アドレスに対応するアカウント所有者が存在するかどうかを判定するように設計されている。
Olivia Brown は、「この種の情報をメール・アドレスから入手した脅威アクターは、ドクシングやスパム攻撃による脅迫や、偽の報告攻撃によるアカウントの停止、さらには、クレデンシャル・スタッフィングやパスワード・スプレー攻撃を実行する前の準備としての、標的アカウントに対する確認などを達成できる」と述べている。
さらに彼は、「検証済みのユーザー・リストは、ダークウェブ上で営利目的で販売されることもある。アクティブなメール・アドレス辞書の作成は、無害に思えるかもしれないが、この情報は、既知の有効なアカウントのみを標的とすることで検出を最小限に抑え、攻撃チェーン全体を加速させる」と付け加えている。
2つ目のパッケージ “steinlurks” も、同様の方法を用いることで、Instagram の Android アプリを模倣する、偽造 HTTP POST リクエストを送信することでInstagramアカウントを標的化し、検出を回避していく。この攻撃は、以下の複数の API エンドポイントを標的とすることで実現される。
- i.instagram[.]com/api/v1/users/lookup/
- i.instagram[.]com/api/v1/bloks/apps/com.bloks.www.caa.ar.search.async/
- i.instagram[.]com/api/v1/accounts/send_recovery_flow_email/
- http://www.instagram[.]com/api/v1/web/accounts/check_email/
その一方で “Sinnercore” は、特定ユーザー名のパスワード失念フローのトリガーを目的としており、APIエンドポイント “b.i.instagram[.]com/api/v1/accounts/send_password_reset/” を標的とし、対象のユーザー名を取り込んだ、偽の HTTP リクエストを送信する。
Brown は、「Telegram を標的とする機能もあり、名前/ユーザー ID/プロフィール/プレミアム・ステータスなどの属性を抽出する。”Sinnercore” の一部は、Binance のリアルタイム価格や通貨換算といった、暗号資産ユーティリティに重点を置いている。さらに、PyPI パッケージの詳細情報を取得することで、Python プログラマーを標的にしており、偽開発者プロフィールなどに悪用される可能性がある」と述べている。
ReversingLabs は、デバッグ・ユーティリティを装いながら、開発者のシステムにバックドアを埋め込み、コード実行とデータ窃取を容易にする “dbgpkg” と悪意のパッケージの詳細を明らかにしている。このパッケージも、現在はアクセスができないが、約350回もダウンロードされたと推定されている。
興味深いことに、この問題のパッケージに取り込まれたペイロードは、今月の初めに Socket によりフラグ付けされた、”discordpydebug” に埋め込まれたものと同じであることが判明している。ReversingLabs は、同じキャンペーンの一部と思われる “requestsdev” という3つ目のパッケージも特定したと述べている。このパッケージは、削除されるまでに76回ダウンロードされたという。
さらに分析を進めた結果として、この GSocket を用いるパッケージのバックドア手法は、2022年にロシア/ウクライナ戦争が始まった後に、Doctor Web などのロシアの組織を標的にしたことで知られる、ハクティビスト集団 Phoenix Hyena (別名DumpForums/Silent Crow) の手法に類似していると判明した。
ReversingLabs の指摘は、この活動が模倣犯によるものという可能性である。しかし、同一のペイロードが使用されていること、そして、2022年3月に “discordpydebug” が初めてアップロードされたという事実は、Phoenix Hyena との関連性を示唆している。
セキュリティ研究者の Karlo Zanki は、「このキャンペーンで使用される悪意の手法は、特定のバックドア埋め込みや Python 関数ラッピングの手法は、その背後にいる脅威アクターが高度な技術を持ち、検出を回避するために慎重であることを示している」と述べている。
この種の関数ラッピングや、Global Socket Toolkit のようなツールの使用は、この攻撃の背後にいる脅威アクターが、侵害したシステムに長期的な滞在を試みたことを示している。

今回の発見は、”koishi-plugin-pinhaofa” と呼ばれる、悪意の npm パッケージの発見とも一致している。このパッケージは、Koishi フレームワークを搭載するチャットボットに、データ窃取用のバックドアをインストールしている。このパッケージも、現時点では npm からダウンロードできない。
セキュリティ研究者の Kirill Boychenko は、「このプラグインは、スペル自動修正ヘルパーとして販売されており、すべてのメッセージをスキャンすることで、8文字の16進文字列を探し出す。それらの文字列が見つかると、秘密情報や認証情報を取り込んだ可能性のある、メッセージ全体をハードコードされた QQ アカウントに転送する」と述べている。
上記の8文字の 16進数は、多くの場合において、短い Git コミットハッシュ/切り捨てられた JWT や API のトークン/CRC-32チェックサム/GUIDリード・セグメント/デバイスのシリアル番号など表している。したがって、それら全てを、システムのロック解除や、内部資産マッピングなどに利用できる。つまり、脅威アクターたちは、メッセージ全体を収集することで、シークレット/パスワード/URL/認証情報/トークン/ID などを収集していることになる。
このところ、PyPI や npm で悪意のパッケージが、相次いで発見されています。一定量の悪意のパッケージが、ひとたびダウンロードされてしまうと、また、依存関係の中に紛れ込んでしまうと、なかなか収束しない脅威となってしまいます。この攻撃ベクターは、最も止めにくいものなのかもしれませんね。ご利用の開発チームは、十分に ご注意ください。よろしければ、PyPI で検索も、ご利用ください。
You must be logged in to post a comment.