最近の暗号通貨マイニング攻撃の急増に応じて、GitHubは、悪用を防ぐために、パブリックフォークからのプルリクエストをGitHubアクションで処理する方法を変更した。
DevOpsプラットフォームLayerCIのCEOであるColin Chartier氏は、最近の記事で次のように説明している。
暗号通貨の時価総額が2020年1月の1,900億ドルから2021年4月の2兆ドルに急増したため、悪意のある人物がplatform-as-a-serviceプロバイダーの無料プランを攻撃することをフルタイムジョブとすることは利益になるものとなりました。
Chartierは、攻撃者がGitHub Actionsのcron
機能を悪用して、暗号通貨をマイニングする目的で1時間ごとに新しいコミットを作成する方法について説明している。
開発者はサーバ上で任意のコードを実行できるため、Webサイトの「ビルドステップ」として暗号通貨マイナーを実行するという利用規約に違反することがよくあります。
Chartier氏によると、検出される可能性を減らす戦略の1つで、人気が高まっているものは、これらの攻撃にヘッドレスブラウザを使用することである。
この結果、GitLabやTraviCIなど、無料プランのCIプラットフォームの主要プロバイダーは、悪用を防ぐために無料サービスの制限を発表した。
このような状況を踏まえ、GitHubは、プルリクエスト処理に2つの変更を加えたことを発表した。この変更では、シンプルにプルリクエストを送信することで、攻撃者がアップストリームリポジトリでマイニングコードの実行をトリガーしにくくする。
これは、リポジトリ所有者に悪影響を及ぼします。このアクティビティの結果として正当なプルリクエストとアカウントがブロックされる可能性があります。
最初の方法として、アップストリームリポジトリは、フォークされたリポジトリによって引き起こされた不正な攻撃に対して責任を負わない。
この施行は、アップストリームリポジトリに関連付けられているアカウントではなく、フォークをホストしているアカウントに向けられます。
これに加えて、寄稿者が初めてプルリクエストを送信する場合、GitHubアクションを実行する前に、書き込みアクセス権を持つリポジトリコラボレーターからの手動承認が必要になる。
複数のメンテナンス担当者と会話してみて、このステップは手動承認と既存の自動ワークフローのバランスが取れていると感じています。これがデフォルト設定になり、現時点では、この動作をオプトアウトする方法はありません。
GitHubはまた、このアプローチがメンテナンス担当者に悪影響を与える場合、将来的にはより柔軟になる可能性があると述べた。
GitHubの戦略は当面は機能し得るが、Chartier氏によると、攻撃はより高度になり、あらゆる対策を避けてくる可能性がある。彼のかなり悲観的な見方では、計算コストの高い概念実証マイニングを放棄することによってのみ、CIプラットフォームの無料プランを維持できる可能性がある。