Informe de auditoría de Homebrew
(blog.trailofbits.com)Auditoría de Homebrew
- Resumen de la auditoría de Homebrew
- Se auditaron los aspectos de seguridad de Homebrew, incluyendo Homebrew/brew y tres repositorios relacionados
- Los problemas encontrados no son críticos, pero podrían permitir que un atacante cargue código ejecutable en momentos inesperados y comprometa la integridad de Homebrew
- Se realizó con el patrocinio de Open Tech Fund
Homebrew
-
Introducción a Homebrew
- Gestor de paquetes para macOS y Linux
- Es ampliamente utilizado por desarrolladores de software y procesa millones de instalaciones de paquetes
- Incluye paquetes importantes como Golang, Node.js y OpenSSL, por lo que la seguridad de Homebrew es importante para la seguridad de todo el ecosistema de software
-
Historia de Homebrew
- Desde su inicio en 2009, ha pasado por varios cambios de arquitectura
- Introdujo las compilaciones binarias (
bottles) como mecanismo de instalación predeterminado, reemplazando las compilaciones locales desde código fuente - Mantiene la integridad de las compilaciones mediante CI/CD
Alcance de la auditoría
- Preguntas de la auditoría
- Si un actor local puede ejecutar el DSL oficial sin usar
brew install - Si un actor local puede evaluar el DSL oficial solo con
brew tap - Si es posible provocar confusión o colisiones de espacios de nombres
- Si una fórmula oficial instalada localmente puede eludir el mecanismo de aislamiento de compilación de Homebrew
- Si un actor de CI/CD con bajos privilegios puede escalar a privilegios más altos
- Si un actor de CI/CD con bajos privilegios puede contaminar compilaciones de botellas
- Si un actor de CI/CD con bajos privilegios puede mantener persistencia en CI/CD
- Si un actor local puede ejecutar el DSL oficial sin usar
Hallazgos principales
brew
- Hallazgos principales
- Las fórmulas pueden escapar del sandbox mediante interpolación de cadenas
- El uso de una función hash propensa a colisiones (MD5) puede provocar confusión en tiempo de ejecución
- Las fórmulas pueden incluir recursos de red no declarados en la compilación
- Es posible escapar del sandbox mediante un socket pivot
- Es posible realizar escalamiento de privilegios mediante un token de
sudo - Se pueden instalar fórmulas desde URL no locales
CI/CD de Homebrew
- Hallazgos principales
- Al usar el trigger
pull_request_target, PRs de terceros pueden ejecutar código en el repositorio principal de Homebrew - Es posible hacer inyección de shell a través de entradas de
workflow_dispatch - La falta de sandboxing/aislamiento durante la extracción de archivos permite escalar a privilegios más altos
- Instalar fórmulas desde URL no locales puede inducir la ejecución de código arbitrario
- Al usar el trigger
Implicaciones principales
-
Desafíos de auditar ecosistemas de gestión de paquetes
- Las herramientas de gestión de paquetes, por diseño, instalan y ejecutan código arbitrario de terceros
- En ecosistemas de empaquetado como Homebrew, el formato del paquete (la fórmula) es en sí mismo código ejecutable
-
Colaboración en la auditoría
- Se trabajó en estrecha colaboración con los mantenedores de Homebrew y Homebrew PLC
- Se expresa agradecimiento a Patrick Linnane, administrador de seguridad de Homebrew
Resumen de GN⁺
- Homebrew es un gestor de paquetes ampliamente utilizado en macOS y Linux
- La auditoría encontró problemas de seguridad que no son críticos, pero sí relevantes
- La seguridad de Homebrew es importante para la seguridad de todo el ecosistema de software
- Debido a la naturaleza de las herramientas de gestión de paquetes, que pueden ejecutar código arbitrario de terceros, las auditorías de seguridad son importantes
- Herramientas de gestión de paquetes con funciones similares incluyen apt y yum
Aún no hay comentarios.