Homebrew denetim raporu
(blog.trailofbits.com)Homebrew denetimi
- Homebrew denetimine genel bakış
- Homebrew/brew ve ilişkili üç depo dahil olmak üzere Homebrew'un güvenlikle ilgili yönleri denetlendi
- Bulunan sorunlar kritik değil, ancak saldırganlar beklenmedik anlarda çalıştırılabilir kod yükleyerek Homebrew'un bütünlüğünü zedeleyebilir
- Open Tech Fund sponsorluğunda gerçekleştirildi
Homebrew
-
Homebrew'a giriş
- macOS ve Linux için bir paket yöneticisi
- Yazılım geliştiricileri tarafından yaygın olarak kullanılır ve milyonlarca paket kurulumunu işler
- Golang, Node.js, OpenSSL gibi önemli paketleri içerdiğinden, Homebrew'un güvenliği tüm yazılım ekosisteminin güvenliği açısından önemlidir
-
Homebrew'un geçmişi
- 2009'da başladıktan sonra birden fazla mimari değişiklik geçirdi
- Yerel kaynak derlemelerinin yerine ikili derlemeleri (bottle) varsayılan kurulum mekanizması olarak benimsedi
- CI/CD aracılığıyla derlemelerin bütünlüğünü korur
Denetim kapsamı
- Denetim soruları
- Yerel bir aktörün
brew installolmadan resmi DSL'yi çalıştırıp çalıştıramayacağı - Yerel bir aktörün yalnızca
brew tapile resmi DSL'yi değerlendirip değerlendiremeyeceği - Namespace karışıklığına veya çakışmaya neden olup olamayacağı
- Yerel olarak kurulu bir formula'nın Homebrew'un derleme yalıtım mekanizmasını atlayıp atlayamayacağı
- Düşük ayrıcalıklı bir CI/CD aktörünün daha yüksek ayrıcalığa yükselip yükselemeyeceği
- Düşük ayrıcalıklı bir CI/CD aktörünün bottle derlemelerini zehirleyip zehirleyemeyeceği
- Düşük ayrıcalıklı bir CI/CD aktörünün CI/CD içinde kalıcılık sağlayıp sağlayamayacağı
- Yerel bir aktörün
Başlıca bulgular
brew
- Başlıca bulgular
- Formula'lar string ekleme yoluyla sandbox'tan çıkabilir
- Çakışmaya açık bir hash fonksiyonu (MD5) kullanılarak çalışma zamanı karışıklığına neden olunabilir
- Formula'lar belirtilmemiş ağ kaynaklarını derlemelere dahil edebilir
- Soket pivotu üzerinden sandbox'tan çıkılabilir
sudotoken'ı üzerinden ayrıcalık yükseltmesi yapılabilir- Formula'lar yerel olmayan URL'lerden kurulabilir
Homebrew'un CI/CD'si
- Başlıca bulgular
pull_request_targettetikleyicisi kullanılarak üçüncü taraf PR'lerin Homebrew'un üst depolarında kod çalıştırması mümkün olabilirworkflow_dispatchgirdileri üzerinden shell injection yapılabilir- Arşiv çıkarma sırasında yetersiz sandboxing/izolasyon nedeniyle daha yüksek ayrıcalığa geçilebilir
- Yerel olmayan URL'lerden formula kurularak keyfi kod yürütme tetiklenebilir
Temel çıkarımlar
-
Paket yönetimi ekosistemi denetimlerinin zorlukları
- Paket yönetim araçları tasarım gereği keyfi üçüncü taraf kodlarını kurar ve çalıştırır
- Homebrew gibi paketleme ekosistemlerinde paket biçimi (formula) başlı başına çalıştırılabilir koddur
-
Denetimde iş birliği
- Homebrew bakımcıları ve Homebrew PLC ile yakın iş birliği yapıldı
- Homebrew güvenlik yöneticisi Patrick Linnane'e teşekkür edildi
GN⁺ özeti
- Homebrew, macOS ve Linux'ta yaygın olarak kullanılan bir paket yöneticisidir
- Denetim sonucunda kritik olmayan ancak güvenlik sorunları tespit edildi
- Homebrew'un güvenliği, tüm yazılım ekosisteminin güvenliği için önemlidir
- Paket yönetim araçlarının doğası gereği keyfi üçüncü taraf kod çalıştırabilmesi, güvenlik denetimlerini önemli hale getirir
- Benzer işlevlere sahip paket yöneticileri arasında apt ve yum bulunur
Henüz yorum yok.