Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
phantomstars — GitHub 上のフェイクエンゲージメントを自動検出・追跡 — 日次 CI、インフラ不要 | Kitploit
ツール/GitHubGitHub/tg12/phantomstars
OSINT (オープンソースインテリジェンス)偵察スクリプトと自動化情報収集脅威インテリジェンス学習と教育クローラー厳選リソースアンチボット
GitHubtg12/phantomstars

phantomstars

GitHub 上のフェイクエンゲージメントを自動検出・追跡 — 日次 CI、インフラ不要

743274ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

phantomstars Python 3.13 Apache 2.0 GitHub Actions Daily

phantomstars

GitHub 上での偽エンゲージメントの自動検出と追跡

JS Labs プロジェクト — AI Slop Intelligence イニシアチブの一部。
毎日実行。不審なアカウントをすべてスコアリング。協調的なボットキャンペーンを検出。
侵害されたリポジトリに直接 issue を登録し、メンテナーが対処できるようにします。


このプロジェクトを支援する

BTC   3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
ETH   0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZEC   t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B


なぜこれが存在するのか

GitHub のスターは信頼のシグナルです。開発者はそれを頼りに、何を評価し、何に依存し、何を推奨するかを決めます。そのシグナルは、組織的に改ざんされています。

2024年から2026年にかけてのAIブームの最中に、低品質でしばしば悪意のあるリポジトリのために信頼性を製造するボットファーム産業が出現しました。48時間で800スターを獲得したプロジェクトは、検索結果をスキャンする開発者には正当なものに見えます。そこがポイントです。偽エンゲージメントの目的はスターそのものではなく、そのスターが生み出す社会的証明(ソーシャルプルーフ)と、その社会的証明が影響を与える下流の意思決定です。

そのパターンは識別可能です。同じ週に作成され、自己紹介(bio)がなく、フォロワーもおらず、オリジナルのリポジトリもないアカウント群が、2時間の間に同じ15のリポジトリにスターを付けています。1つのキャンペーンではなく、毎日、何千ものアカウントにわたって、数十のキャンペーンが同時に実行されています。データは、185人中185人のエンゲージャーがボットであるリポジトリを示しています。100%の偽装率です。トレンド入りした全体が、何の根拠もなく構築されています。

phantomstars は、この問題が解決可能(tractable)だからこそ構築されました。GitHub の公開 API の信号対雑音比は、今のところ、協調キャンペーンが明確な指紋を残すほど十分に高いままです。このプロジェクトはその指紋を読み取り、生データを公開し、影響を受けたリポジトリのメンテナーに直接通知します。

これは、JS Labs におけるより広範な AI Slop Intelligence の取り組みの一部であり、低品質のAI生成コンテンツが開発者エコシステムに氾濫することの仕組みと測定可能な影響に関する継続的な研究です。偽エンゲージメントは周辺的な問題ではありません。それは、スロップ(低品質AI生成コンテンツ)を実際のユーザーの目に届ける流通メカニズムなのです。


何を行うか

phantomstars は、毎日の GitHub Actions ジョブを実行します。そのジョブは以下を行います:

  1. 今日スターを獲得しているリポジトリを GitHub Trending ページからスクレイピングします
  2. GitHub Search API をクエリして、直近 7日間 に作成され、急激なスター活動があるリポジトリを取得します(期間を広げることで、24時間のみのスキャンでは見逃される複数日にわたるキャンペーンを捕捉します)
  3. r/osinttools と r/coolgithubprojects の最近の Reddit 投稿から、直近 2日間 の GitHub リポジトリリンクを抽出して、追加の候補リポジトリをシードします
  4. Events API を介して最近のエンゲージメントイベント(スター、フォーク)を取得します(リポジトリごとに過去24時間)
  5. GraphQL を介してすべてのエンゲージアカウントの完全なプロフィールを取得します:アカウント作成日、フォロワー/フォロー数、自己紹介(bio)、リポジトリ履歴
  6. 複合ヒューリスティクスモデルに基づいてすべてのアカウントをスコアリングします:アカウントの年齢、プロフィールの充実度、リポジトリのパターン、活動履歴
  7. タイムスタンプのクラスタリングと union-find を使用して 協調キャンペーン を検出します:3時間の窓内でエンゲージした不審なアカウントのクラスタ
  8. 台帳への書き込み、リポジトリレベルの比率、ダッシュボード、通知の前に誤検知の許可リスト(allowlist)を適用し、表示されるすべてのメトリクスが同じ母集団を使用するようにします
  9. すべての被疑アカウントを追記専用の JSONL 台帳に追記し、このリポジトリにコミットし直します
  10. どのリポジトリが標的にされているか、どの発見ソースがそれらを見つけたか、Events API のウィンドウが完全(complete)か上限(capped)かを示す、リポジトリごとのインテリジェンスフィードを公開します
  11. 標的となったリポジトリに直接 GitHub issue を登録し、メンテナーが自分の issue トラッカーでキャンペーンデータを確認できるようにします
  12. 整形されたスキャンレポートを GitHub Actions のジョブサマリーに書き込みます

サーバー不要。データベース不要。インフラ費用なし。


よくある質問

標的のリポジトリに通知しますか?

はい。

リポジトリの偽装率が40%を超えるか、協調キャンペーンが検出された場合、phantomstars はそのリポジトリに直接 issue を開きます。issue には、完全な被疑者テーブル、キャンペーンへの参加状況、複合スコア、アカウント作成日が含まれます。メンテナーが調査して GitHub に報告するために必要なすべてが揃っています。

標的のリポジトリで issue が無効になっている場合、通知は静かにスキップされ、スキャンログに記録されます。

特定のリポジトリのチェックを依頼できますか?

はい。

  • 通常の一回限りのチェックでは、owner/repo 形式でリポジトリを提出し、対象を絞ったスキャンを実行します。
  • 生涯監査(lifetime audit)のリクエストでは、一回限りのライフタイムモードを使用します。これは毎日のスキャンとは別です。

なぜ分けているのか:

  • 通常のスキャンモデルは、最近の公開エンゲージメントと低い運用コスト向けに設計されています。
  • 生涯監査では、大きなリポジトリで数万のスターと数千のフォークを扱う場合があります。
  • これは一回限りの調査には実現可能ですが、デフォルトの毎日パスにはコストが高すぎ、遅すぎます。
  • そのため、生涯リクエストはガードレール付きの明示的な一回限りモードでのみ実行されます。

誤検知を報告できますか?

はい。自分のアカウントが data/suspects.jsonl に表示され、分類が正しくないと思われる場合は、提供されているテンプレートを使用して 誤検知の issue を開いて ください。報告は、許可リストへの追加前に手動でレビューされます。許可リストは data/allowlist.txt に保存されており、そこにリストされたアカウントは、将来のすべてのスキャンと被疑者台帳から除外されます。

キャンペーンIDとは何ですか?

キャンペーンID(例:c-a3f9b2e1)は、そのキャンペーンのメンバーログインのソート済みセットの SHA-256 ハッシュから導出される決定論的な8文字の16進数フィンガープリントです。同じアカウントグループは、独立したスキャン実行間で同じキャンペーンIDを生成するため、長期的な追跡が可能です。これはリポジトリ名でも、ユーザー名でも、外部識別子でもありません。

安定性: ID は、キャンペーンのメンバーセットが変わらない限り安定しています。スキャンの合間にボットが追加されたり停止されたりすると、メンバーシップが変わったため ID も変わります。これは想定どおりであり、ボットファーム構成の現実世界での変化を反映しています。

アカウント作成日をチェックしますか?

はい。すべてのアカウントの作成日は GitHub GraphQL API(createdAt フィールド)から取得され、各被疑者レコードに account_created_at として保存されます。また、これはアカウント年齢スコアへの主要な入力であり、偽アカウントにとって最も強力な単一シグナルです。エンゲージメントから2日以内に作成されたアカウントは、年齢だけでスコア1.0になります。

どの程度確信がありますか?

個々のスコアには、意味のある誤検知率が伴います。プロフィールが乏しい新しい開発者は、正当に0.75以上になることがあります。このツールは、issue を登録する前にキャンペーンレベルの証拠を要求することでこれを考慮しています。単一の不審なアカウントでは不十分です。同じ週に作成され、すべて0.75以上でスコアリングされ、90分以内にすべてエンゲージした40以上のアカウントの協調クラスタは、別物です。そこで確信が実行可能になります。

データは常に確率的です。issue の本文にもその旨が明示されています。目標は、メンテナーにシグナルと生の証拠を提供し、彼ら自身が判断できるようにすることです。


ライブダッシュボード

日付スキャン数偽装の可能性不審キャンペーン新規偽装 (24h)
2026-06-161846221162556190
2026-06-152274418185661397
2026-06-141953355159844310
2026-06-132012301171147251
2026-06-122298336196257300
2026-06-111957385157242356
2026-06-102043687135650665
2026-06-092199690150944632
2026-06-081913450146350424
2026-06-071797658113930618
2026-06-062625712191340620
2026-06-052403673173053617
2026-06-042237441179641367
2026-06-032331488184353431
2026-06-022795773202237616
2026-06-012490533195739355
2026-05-312302458184432280
2026-05-302576530204620356
2026-05-292838733210542369
2026-05-282748694205439396
2026-05-272193560163332491
2026-05-261930236169443190
2026-05-251526214131232158
2026-05-242170358181239265
2026-05-232548426212243317
2026-05-222318340197847247
2026-05-211981348163325277
2026-05-201613268134523163
2026-05-195463630412167442
2026-05-1888386707950128340

本日最も標的にされているリポジトリ

ツールをダウンロード