Relatório de auditoria do Homebrew
(blog.trailofbits.com)Auditoria do Homebrew
- Visão geral da auditoria do Homebrew
- Foram auditados os aspectos relacionados à segurança do Homebrew, incluindo o Homebrew/brew e três repositórios relacionados
- Os problemas encontrados não são críticos, mas podem permitir que um atacante carregue código executável em momentos inesperados, comprometendo a integridade do Homebrew
- Realizada com o patrocínio do Open Tech Fund
Homebrew
-
Introdução ao Homebrew
- Gerenciador de pacotes para macOS e Linux
- Amplamente usado por desenvolvedores de software, processando milhões de instalações de pacotes
- Como inclui pacotes importantes como Golang, Node.js e OpenSSL, a segurança do Homebrew é importante para a segurança de todo o ecossistema de software
-
Histórico do Homebrew
- Desde seu início em 2009, passou por várias mudanças de arquitetura
- Introduziu builds binários (bottles) como mecanismo de instalação padrão, substituindo builds locais a partir do código-fonte
- Mantém a integridade dos builds por meio de CI/CD
Escopo da auditoria
- Perguntas da auditoria
- Se um ator local pode executar a DSL oficial sem
brew install - Se um ator local pode avaliar a DSL oficial apenas com
brew tap - Se é possível provocar confusão ou conflitos de namespace
- Se fórmulas oficialmente instaladas podem contornar os mecanismos de isolamento de build do Homebrew
- Se um ator de CI/CD com poucos privilégios pode escalar para privilégios mais altos
- Se um ator de CI/CD com poucos privilégios pode contaminar builds de bottles
- Se um ator de CI/CD com poucos privilégios pode manter persistência no CI/CD
- Se um ator local pode executar a DSL oficial sem
Principais descobertas
brew
- Principais descobertas
- Fórmulas podem escapar do sandbox por meio de interpolação de strings
- É possível causar confusão em tempo de execução usando uma função de hash propensa a colisões (MD5)
- Fórmulas podem incluir no build recursos de rede não declarados
- É possível escapar do sandbox por meio de socket pivoting
- É possível realizar escalonamento de privilégios por meio de tokens do
sudo - É possível instalar fórmulas a partir de URLs não locais
CI/CD do Homebrew
- Principais descobertas
- Usando o gatilho
pull_request_target, PRs de terceiros podem executar código no repositório principal do Homebrew - É possível fazer injeção de shell por meio de entradas do
workflow_dispatch - A falta de sandboxing/isolamento durante a extração de arquivos compactados pode permitir escalonamento para privilégios mais altos
- Instalar fórmulas a partir de URLs não locais pode levar à execução arbitrária de código
- Usando o gatilho
Principais implicações
-
Desafios de auditar ecossistemas de gerenciamento de pacotes
- Ferramentas de gerenciamento de pacotes, por projeto, instalam e executam código arbitrário de terceiros
- Em ecossistemas de empacotamento como o Homebrew, o formato do pacote (fórmula) é, por si só, código executável
-
Colaboração na auditoria
- Houve colaboração estreita com os mantenedores do Homebrew e a Homebrew PLC
- Agradecimento especial ao gerente de segurança do Homebrew, Patrick Linnane
Resumo do GN⁺
- O Homebrew é um gerenciador de pacotes amplamente usado no macOS e no Linux
- A auditoria encontrou problemas de segurança que não são críticos, mas existem
- A segurança do Homebrew é importante para a segurança de todo o ecossistema de software
- Devido à natureza das ferramentas de gerenciamento de pacotes, que podem executar código arbitrário de terceiros, auditorias de segurança são importantes
- Ferramentas de gerenciamento de pacotes com funções semelhantes incluem apt e yum
Ainda não há comentários.