Homebrew 監査レポート
(blog.trailofbits.com)Homebrew 監査
- Homebrew 監査の概要
- Homebrew/brew および関連する 3 つのリポジトリを含む、Homebrew のセキュリティ関連の側面を監査
- 発見された問題は致命的ではないが、攻撃者が予期しないタイミングで実行可能なコードを読み込み、Homebrew の完全性を損なう可能性がある
- Open Tech Fund の支援により実施
Homebrew
-
Homebrew の紹介
- macOS および Linux 向けのパッケージマネージャー
- ソフトウェア開発者に広く利用されており、数百万件のパッケージインストールを処理
- Golang、Node.js、OpenSSL などの重要なパッケージを含み、Homebrew のセキュリティはソフトウェアエコシステム全体の安全性にとって重要
-
Homebrew の歴史
- 2009 年の開始以降、複数のアーキテクチャ変更を経てきた
- バイナリビルド(bottle)をデフォルトのインストール方式として導入し、ローカルでのソースビルドを置き換えた
- CI/CD によってビルドの完全性を維持
監査範囲
- 監査項目
- ローカルアクターが
brew installなしで公式 DSL を実行できるか - ローカルアクターが
brew tapだけで公式 DSL を評価できるか - 名前空間の混同や衝突を引き起こせるか
- ローカルにインストールされた formula が Homebrew のビルド分離メカニズムを回避できるか
- 低権限の CI/CD アクターが高権限へ昇格できるか
- 低権限の CI/CD アクターが bottle ビルドを汚染できるか
- 低権限の CI/CD アクターが CI/CD 内で永続化できるか
- ローカルアクターが
主な発見事項
brew
- 主な発見事項
- formula が文字列挿入によってサンドボックスを脱出できる
- 衝突しやすいハッシュ関数(MD5)を使用して実行時の混同を引き起こせる
- formula が明示されていないネットワークリソースをビルドに含められる
- ソケットピボットを通じてサンドボックスを脱出できる
sudoトークンを通じて権限昇格を行える- ローカルではない URL から formula をインストールできる
Homebrew の CI/CD
- 主な発見事項
pull_request_targetトリガーを使うことで、サードパーティー PR が Homebrew の上位リポジトリでコードを実行できるworkflow_dispatch入力を通じてシェル挿入が可能- アーカイブ展開時のサンドボックス化/分離が不十分であり、高権限へ昇格できる
- ローカルではない URL から formula をインストールして任意コード実行を誘発できる
主な示唆
-
パッケージ管理エコシステム監査の課題
- パッケージ管理ツールは設計上、任意のサードパーティーコードをインストールして実行する
- Homebrew のようなパッケージングエコシステムでは、パッケージ形式(formula)自体が実行可能コードである
-
監査における協力
- Homebrew メンテナーおよび Homebrew PLC と緊密に連携
- Homebrew のセキュリティ管理者 Patrick Linnane に謝意を表明
GN⁺ のまとめ
- Homebrew は macOS および Linux で広く使われているパッケージマネージャー
- 監査の結果、致命的ではないものの複数のセキュリティ問題が見つかった
- Homebrew のセキュリティはソフトウェアエコシステム全体の安全性にとって重要
- パッケージ管理ツールの性質上、任意のサードパーティーコードを実行し得るため、セキュリティ監査が重要
- 類似機能を持つパッケージ管理ツールには apt や yum などがある
まだコメントはありません。