Rapid7がGitサービスの脆弱性を発見してから2ヶ月が経過するが、プロジェクトのメンテナーはいまだパッチを適用していない。
オープンソースのGogs Gitサービスで新たに発見された未修正の重大な脆弱性は、開発者にコードを保護するための即時対応を求めるだけでなく、小規模なメンテナーが提供するセルフホスト型コードプラットフォームを使用することの潜在的な問題にも光を当てている。
この脆弱性はRapid7の研究者が発見した重大な引数インジェクション脆弱性であり、認証済みユーザーであれば誰でも、マージ操作中に悪意のあるブランチ名を持つプルリクエストを作成することで、Gogsサーバー上でリモートコード実行が可能になる。
Rapid7は、2ヶ月以上前に最初に脆弱性を報告した後、Gogsのメンテナーが状況確認の依頼や開示延期の申し出に応じなかったため、本日この脆弱性の分析を公開した。
Rapid7のスタッフセキュリティリサーチャーであるRyan Emmons氏はメールの中で、「これは一般的にパブリックインターネットには公開されていないソフトウェアに存在する深刻な脆弱性です」と述べた。
「Gogsは通常、内部用途で使用されます。最も可能性の高い脅威シナリオは、すでに内部ネットワーク環境へのアクセスを取得した攻撃者がこの脆弱性を悪用し、Gogsサーバー上のソースコードリポジトリへの読み書きアクセスを獲得するというものです。攻撃者はこのアクセスを利用して、ソースコードを密かに改ざんしたり、ユーザーのパスワードハッシュや独自ソフトウェアなどの機密情報を窃取したりする可能性があります。」
迅速な防御措置が必要
セキュリティ意識向上プロバイダーBeauceron Securityの責任者であるDavid Shipley氏は、脆弱性の公表により「これまで知らなかった攻撃者が猛然と食いついてくる」ため、Gogsのメンテナーと開発者の両方が迅速に防御措置を講じなければならないと述べた。
木曜日の午後時点で数ヶ月間パッチが適用されていないという事実は、CSOや開発者がGitHubを好む理由のもう一つだと同氏は付け加えた。オープンソースプロジェクトでは、パッチがいつ、あるいはそもそも発行されるかについての懸念が常につきまとう。
Rapid7はレポートの中で「このエクスプロイトには管理者権限も他ユーザーとのやり取りも不要です」と述べている。「攻撃者は完全に自分のアカウント内で操作します。Gogsはデフォルトでオープン登録が有効(DISABLE_REGISTRATION = false)、リポジトリ作成に制限なし(MAX_CREATION_LIMIT = -1)という設定で出荷されるため、未認証の攻撃者はデフォルト設定のインスタンスに単純にアカウントとリポジトリを作成できます。リポジトリを作成した登録ユーザーは自動的にそのオーナーになります。そこからリベースマージを有効にするのは設定の一つのトグルを切り替えるだけで、エクスプロイト全体のチェーンは他のユーザーとのやり取りなしに実行できます。」
さらに、リベースがすでに有効になっているリポジトリへの書き込みアクセス権を持つユーザーであれば、誰でも直接悪用できる。リポジトリの作成が制限されているインスタンスでも、攻撃者はリベースマージが有効になっている(またはできる)任意のリポジトリへの書き込みアクセスさえあればよい。
この脆弱性が悪用された場合、Gogsサーバーの侵害にとどまらず、テナント間のデータ漏洩、認証情報の窃取、ITネットワーク内での横断移動、そして侵害されたGogsプラットフォームで開発中のコードを通じたソフトウェアサプライチェーン攻撃につながる可能性がある。
Emmons氏は、パッチがリリースされるまでの間、プラットフォームを使用している組織の開発者やCSOはGogsへのネットワークアクセスを厳格に制限し、アクセスが必要なユーザーのみがアプリケーションを使用できるようにすべきだと述べた。また、ユーザーのセルフ登録がまだ無効化されていない場合は、無効化する必要がある。新しいユーザーアカウントを作成できるのは管理者のみとすべきだ。
Rapid7によると、GogsはGoで書かれた軽量なセルフホスト型Gitサービスであり、Linux、macOS、Windowsを含むGoツールチェーンがサポートするあらゆるプラットフォームおよびARMベースのシステムで動作する。Rapid7は、Gogsはマイクロソフト傘下のGitHubに対するセルフホスト型の代替手段として最も人気のあるサービスの一つであり、企業、大学、オープンソースプロジェクトに広く導入されていると述べている。
開発者向けの他のセルフホスト型Gitサービスには、GitLab Community Edition、Gitea、Forgejo(Giteaのフォーク)、AtlassianのBitbucket Data Centerなどがある。
Gogsのメリットとデメリット
今月初めのブログ記事において、有料ソフトウェアを置き換えるセルフホスト型ツールのキュレーションディレクトリを自称するOpen Source Alternativesは、GitHubの障害を避けるためにgitサーバーをセルフホストすることを選ぶ開発者もいるかもしれないと指摘し、「GitHubがダウンしてもリポジトリはオンラインを維持でき、GitHub Actionsの利用料金もなくなり、ソースコードが自分のサーバーから外に出ることもない」と主張した。
Emmons氏は、Gogsが人気を持つ理由として、軽量でコンパクトなGitソリューションであることを挙げた。重い運用上のオーバーヘッドやIT管理が必要な他の多くのGitサーバーとは異なり、デプロイや運用が容易だと同氏は述べた。また、オンプレミスのセルフホスト型ソフトウェアであり、何らかの理由でソースコードをクラウドに保存したくない、あるいは保存できないチームに最適だと述べた。
Emmons氏は、主なメリットとして、Gogsが運用の簡潔さという観点から魅力的なソリューションであることを挙げた。その機能を十分に果たしており、動作を維持するための管理労力もほとんどかからない。しかし同氏は、「大きなデメリットは今回の開示で見えたこと、すなわちGogsはボランティアの人々が空き時間にメンテナンスするオープンソースソフトウェアであり、その背後にいる開発者たちは大企業の情報セキュリティチームのサポートを持っていないということです。そのため、十分な資金を持つエンタープライズ製品では通常見られないような形でセキュリティ上の問題が発生することがあります」と付け加えた。
この記事はもともとInfoWorldに掲載されたものです。