PyTorch インフラストラクチャに対する攻撃、リポジトリとリリースの侵害

機械学習フレームワーク「PyTorch」の開発に利用されるインフラへの攻撃の詳細が明らかになり、GitHubやAWS上のプロジェクトリリースで任意のデータをリポジトリに配置するのに十分なアクセスキーの抽出やコードの置き換えが可能になったリポジトリのメイン ブランチに追加し、依存関係を通じてバックドアを追加します。 PyTorch リリース スプーフィングは、プロジェクトで PyTorch を使用している Google、Meta、Boeing、Lockheed Martin などの大企業を攻撃するために使用される可能性があります。バグ報奨金プログラムの一環として、メタ社はこの問題に関する情報提供に対して研究者に 16250 ドルを支払いました。

攻撃の本質は、リポジトリに送信される新しい変更をテストするための再構築とジョブの実行を実行する継続的統合サーバー上でコードを実行できることです。この問題は、GitHub Actions で独自の外部「セルフホスト ランナー」ハンドラーを使用するプロジェクトに影響します。従来の GitHub Actions とは異なり、セルフホスト ハンドラーは GitHub インフラストラクチャ上では実行されず、独自のサーバーまたは開発者が管理する仮想マシン上で実行されます。

サーバー上でアセンブリ タスクを実行すると、企業の内部ネットワークをスキャンしたり、ローカル FS で暗号化キーやアクセス トークンを検索したり、外部ストレージやクラウド サービスにアクセスするためのパラメータを使用して環境変数を分析したりできるコードの起動を整理できます。アセンブリ環境が適切に分離されていない場合、検出された機密データが、たとえば外部 API へのアクセスを通じて外部の攻撃者に送信される可能性があります。プロジェクトがセルフホスト ランナーを使用しているかどうかを判断するには、Gato ツールキットを使用して、公開されているワークフロー ファイルと CI ジョブ起動ログを分析できます。

PyTorch やセルフホスト ランナーを使用する他の多くのプロジェクトでは、変更が事前にピアレビューされ、プロジェクトのコードベースに含まれている開発者のみがビルド ジョブを実行できます。リポジトリのデフォルト設定を使用するときに「コントリビュータ」ステータスを取得すると、プル リクエストの送信時に GitHub Actions ハンドラーを起動でき、それに応じて、リポジトリまたはプロジェクトを監督する組織に関連付けられた GitHub Actions Runner 環境でコードを実行できます。

「貢献者」ステータスへのリンクは簡単にバイパスできることが判明しました。最初にマイナーな変更を送信し、それがコード ベースに受け入れられるのを待つだけで十分です。その後、開発者はアクティブな参加者のステータスを自動的に受け取ります。そのプル リクエストは、個別の検証なしで CI インフラストラクチャでテストすることが許可されています。アクティブな開発者ステータスを達成するために、実験にはドキュメント内のタイプミスを修正するための外観上の小さな変更が含まれていました。 PyTorch リリースのリポジトリとストレージにアクセスするために、「セルフホスト ランナー」でコードを実行中の攻撃により、ビルド プロセスからリポジトリへのアクセスに使用される GitHub トークンと、ビルド結果の保存に使用される AWS キーが傍受されました。 。

この問題は PyTorch に固有のものではなく、GitHub Actions の「Self-Hosted Runner」のデフォルト設定を使用する他の多くの大規模プロジェクトに影響します。たとえば、資本金数十億ドルの大規模な暗号通貨ウォレットやブロックチェーン プロジェクトにバックドアをインストールし、Microsoft Deepspeed と TensorFlow のリリースを変更し、CloudFlare アプリケーションの 20 つを侵害し、同様の攻撃を実行することが言及されています。 Microsoft ネットワーク上のコンピュータ上のコード。これらの事件の詳細はまだ明らかにされていない。既存のバグ報奨金プログラムでは、研究者が数十万ドル相当の報奨金を求めて XNUMX 件以上の申請を提出しています。

出所: オープンネット.ru

コメントを追加します