· kaynak dev.to (home feed)
Otonom ajan, Baseten'in Docker katmanlarından 25 dakikada aktif bir admin GitHub token'ı çıkardı
dev.to'da yayımlanan bir yazı, otonom bir pentest ajanının 13 milyar dolar değerindeki makine öğrenmesi altyapı şirketi Baseten'de, herkese açık bir container registry imajının build geçmişini okuyarak aktif, admin yetkili bir GitHub token'ına nasıl ulaştığını belgeliyor.

Ne oldu
Otonom bir güvenlik ajanı, yaklaşık 13 milyar dolar değerindeki makine öğrenmesi altyapı şirketi Baseten'in herkese açık container altyapısında canlı yönetici kimlik bilgileri bulmak için yalnızca 25 dakikaya ihtiyaç duydu. Anlatım, ajanın (adı Strix) olası bir tedarikçi değerlendirmesi öncesinde Baseten'in alt alan adlarına yönlendirildiğini anlatan bir dev.to yazısından geliyor.
O 25 dakikanın sonunda ajan, bir bot hesabına ait, üç çekirdek repository'ye yönetici ve push erişimi olan — aralarında cluster dağıtımlarında kullanılan bir GitOps repository'si de var — ayrıca müşteriye özel özel koda okuma/yazma erişimi bulunan bir GitHub personal access token elinde tutuyordu. dev.to'ya göre ne phishing vardı ne zero-day; ilk talimattan sonra hiçbir insan komut yazmadı.
Zincir, adım adım
Yazı sıralamayı şöyle aktarıyor:
Certificate transparency kayıtları,
gcp-us-east4-zlw.registry.baseten.coadresinde herkese açık, erişilebilir bir Harbor container registry ortaya çıkardı.Registry anonim erişime izin veriyordu: projeler oturum açmadan listelenebiliyor, anonim token'lar alınabiliyordu ve bazı projeler public olarak işaretlenmişti.
Ajan
baseten/baseten-appimajını pull etti, manifest'ini aldı ve imaj katmanlarını gezmeye başladı.Katmanların üzerinden TruffleHog çalıştırırken, dosya sistemi yerine imajın build geçmişi metaverisini — yani her RUN talimatının kayıtlı komut satırını — inceledi.
Bu geçmişte, 3 Mart 2023 tarihli bir build'e ait bir RUN komutunun içinde bir GITHUB_TOKEN değeri vardı. Yaklaşık üç buçuk yıl sonra hâlâ çalışıyordu.
GitHub'ın user endpoint'ine yapılan tek bir çağrı, token'ın
basetenbothesabına ait olduğunu, klasik repo kapsamı taşıdığını ve son kullanma tarihinin ayarlanmadığını doğruladı.
Sır oraya nasıl girdi
Yazıya göre temel hata, bir token'ın build argümanı olarak geçildiği (ARG GITHUB_TOKEN) ve ardından bir git clone komutuna yerleştirildiği bir Dockerfile kalıbı. ARG değerleri, klonlanan repository daha sonraki bir talimatla silinse bile, imajın build geçmişine düz metin olarak kalıcı şekilde yazılır. Docker 18.09'dan beri mevcut, köklü çözüm ise RUN --mount=type=secret kullanımı; bu yöntem bir sırrı yalnızca tek bir build adımında görünür kılar ve asla bir katmana kaydetmez.
Yazarın daha keskin argümanı şu: registry yanlış yapılandırması yalnızca token'ın nasıl bulunduğuyla ilgili, neden tehlikeli olduğuyla değil. Asıl hata, bir bot hesabına bağlı, süresi dolmayan, repo kapsamlı klasik bir personal access token'ın üç yılı aşkın süredir rotate edilmemiş olması. GitHub 2022'den beri son kullanma tarihli fine-grained token sunuyor; yazı, sızıntı nasıl gerçekleşirse gerçekleşsin, servis hesaplarındaki klasik PAT'lerin bir politika hatası olduğunu savunuyor.
Baseten'in yanıtı
Yazıya göre bulgu 13 Temmuz'da saat 23:10'da bildirildi. Harbor projesi ertesi sabah private'e alındı ve token aynı gün 16:34'e kadar rotate edildi — yazarın çoğu şirketin planlı bir yama için bile başaramadığı hızda, aynı gün içinde bir düzeltme olarak nitelediği bir süreç. Baseten ayrıca araştırmacılara tişört ve sweatshirt gönderdi; bu da 13 milyar dolarlık bir şirkette kritik bir bulgu için promosyon ürünlerinin yeterli bir takdir olup olmadığını, yoksa araştırmacıları küçük görmenin bir sonraki keşfediciyi bulguyu satmaya mı iteceği konusunda Hacker News'te bir tartışma başlattı. Yazı, bu tartışmayı teknik sonuçtan ayırıyor ve açığa çıkarmanın her iki taraf tarafından da temiz şekilde yürütüldüğünü belirtiyor.
Neden önemli
Buradaki güvenlik açığı sınıfı eski ve iyi belgelenmiş. Değişen şey, onu bulmanın maliyeti. dev.to yazarı, bir zamanlar yetenekli bir pentester'ın tam gün manuel çalışmasını gerektiren keşif ve kimlik bilgisi avının, gözetimsiz bir ajanın elinde 25 dakika sürdüğünü — ve aynı ajanın bir gecede bin alan adına yönlendirilebileceğini vurguluyor.
Bu, pratik tehdit modelini kaydırıyor: Unutulmuş bir 2023 build argümanını bulma kapasitesine sahip taraflar kitlesi, az sayıda güvenlik araştırmacısından, bir şirketin alt alan adlarına raflardan alınmış bir ajan çalıştıran herkese genişledi. Takip edilecek kontrol listesi cazipsiz ama acil: Dockerfile'larda sır gibi isimlendirilmiş build argümanlarını tarayın, bot hesaplarının token kapsamlarını ve son kullanma tarihlerini denetleyin ve container registry'lerin gerçekten kimlik doğrulaması istediğini doğrulayın.
- #docker
- #security
- #github
- #containers
- #machine-learning