Audit-Bericht zu Homebrew
(blog.trailofbits.com)Audit von Homebrew
- Überblick über das Homebrew-Audit
- Audit der sicherheitsrelevanten Aspekte von Homebrew, einschließlich Homebrew/brew und drei zugehöriger Repositories
- Die gefundenen Probleme sind nicht kritisch, können es Angreifern jedoch ermöglichen, zu unerwarteten Zeitpunkten ausführbaren Code zu laden und so die Integrität von Homebrew zu beeinträchtigen
- Durchgeführt mit Unterstützung des Open Tech Fund
Homebrew
-
Einführung in Homebrew
- Paketmanager für macOS und Linux
- Wird von Softwareentwicklern breit genutzt und verarbeitet Millionen von Paketinstallationen
- Enthält wichtige Pakete wie Golang, Node.js und OpenSSL; daher ist die Sicherheit von Homebrew für die Sicherheit des gesamten Software-Ökosystems wichtig
-
Geschichte von Homebrew
- Seit dem Start im Jahr 2009 mehrfach architektonisch verändert
- Führte Binär-Builds (Bottles) als Standard-Installationsmechanismus ein und ersetzte damit lokale Source-Builds
- Bewahrt die Integrität der Builds über CI/CD
Umfang des Audits
- Audit-Fragen
- Ob ein lokaler Akteur die offizielle DSL ohne
brew installausführen kann - Ob ein lokaler Akteur die offizielle DSL allein mit
brew tapauswerten kann - Ob Namespace-Verwechslungen oder -Kollisionen verursacht werden können
- Ob lokal installierte Formeln den Build-Isolationsmechanismus von Homebrew umgehen können
- Ob ein CI/CD-Akteur mit geringen Rechten zu höheren Rechten eskalieren kann
- Ob ein CI/CD-Akteur mit geringen Rechten Bottle-Builds verunreinigen kann
- Ob ein CI/CD-Akteur mit geringen Rechten in CI/CD Persistenz aufrechterhalten kann
- Ob ein lokaler Akteur die offizielle DSL ohne
Zentrale Erkenntnisse
brew
- Wichtigste Erkenntnisse
- Formeln können über String-Interpolation aus der Sandbox ausbrechen
- Eine kollisionsanfällige Hash-Funktion (MD5) kann für Runtime-Verwechslungen genutzt werden
- Formeln können nicht deklarierte Netzwerkressourcen in Builds einbinden
- Ein Ausbruch aus der Sandbox ist über Socket-Pivoting möglich
- Über
sudo-Tokens ist eine Privilegieneskalation möglich - Formeln können von nicht lokalen URLs installiert werden
CI/CD von Homebrew
- Wichtigste Erkenntnisse
- Durch den
pull_request_target-Trigger können Third-Party-PRs Code im übergeordneten Repository von Homebrew ausführen - Über
workflow_dispatch-Eingaben ist Shell-Injection möglich - Unzureichendes Sandboxing bzw. mangelnde Isolation bei der Archiv-Extraktion kann eine Eskalation zu höheren Rechten ermöglichen
- Durch die Installation von Formeln von nicht lokalen URLs kann beliebige Codeausführung ausgelöst werden
- Durch den
Zentrale Implikationen
-
Herausforderungen bei Audits von Paketmanagement-Ökosystemen
- Paketmanagement-Tools installieren und führen konstruktionsbedingt beliebigen Third-Party-Code aus
- In Paketierungs-Ökosystemen wie Homebrew ist das Paketformat (Formeln) selbst ausführbarer Code
-
Zusammenarbeit beim Audit
- Enge Zusammenarbeit mit den Homebrew-Maintainern und Homebrew PLC
- Dank an den Security Manager von Homebrew, Patrick Linnane
Zusammenfassung von GN⁺
- Homebrew ist ein weit verbreiteter Paketmanager für macOS und Linux
- Das Audit fand Sicherheitsprobleme, die zwar nicht kritisch sind, aber dennoch relevant
- Die Sicherheit von Homebrew ist für die Sicherheit des gesamten Software-Ökosystems wichtig
- Aufgrund der Natur von Paketmanagement-Tools, die beliebigen Third-Party-Code ausführen können, sind Sicherheitsaudits besonders wichtig
- Ähnliche Paketmanagement-Tools mit vergleichbarer Funktion sind unter anderem apt und yum
Noch keine Kommentare.