GÜNCELLEME 5/21/24: Makalenin altına Atlassian ifadesi eklendi.
Tehdit aktörleri, Atlassian Bitbucket Artifact nesnelerinde düz metin olarak sızan kimlik doğrulama sırları kullanılarak AWS hesaplarını ihlal etti.
Sorun, aktörlerin AWS'ye erişmek için kullandığı Amazon Web Hizmetleri (AWS) sırlarının yakın zamanda maruz kalmasını araştıran Mantiant tarafından keşfedildi.
Sorun bir soruşturma bağlamında keşfedilmiş olsa da, daha önce nasıl güvence altına alındığı düşünülen verilerin, kamu depolarına düz metin olarak sızdırılabileceğini göstermektedir.
Bitbucket, geliştiricilere bir kod yönetimi ve işbirliği platformu sunan Atlassian tarafından işletilen git uyumlu bir web tabanlı sürüm kontrol deposu ve barındırma hizmetidir.
Bitbucket Boru Hatları, oluşturma, test ve dağıtım işlemlerini otomatikleştiren entegre bir sürekli dağıtım/dağıtım (CI/CD) hizmetidir.
Sistem yöneticileri genellikle uygulamaların hızlı bir şekilde dağıtılması ve AWS CLI, SDK ve diğer AWS araçlarını kullanarak kaynaklara erişmek için boru hatlarını doğrudan AWS'ye bağlar.
Bu otomasyonu kolaylaştırmak için Bitbucket, geliştiricilerin AWS kimlik doğrulama sırları gibi hassas bilgileri 'güvenli değişkenlerde', anahtarları diğer kişilere maruz bırakmadan kodlarındaki bu değişkenleri kolayca kullanmaları için depolamasına olanak tanır.
Bir değişken Bitbucket'te sabitlendiği gibi ayarlandığında, Bitbucket ortamındaki değerlerinin kamuya maruz kalmasını önlemek için şifreli formda saklanır.
Bitbucket belgelerini açıklar. "Bir değişkeni güvence altına alabilirsiniz, yani komut dosyalarınızda kullanılabilir, ancak değeri derleme günlüklerinde gizlenecektir (aşağıdaki örneğe bakın)."
"Güvenli bir değişkeni düzenlemek istiyorsanız, yalnızca yeni bir değer verebilir veya silebilirsiniz. Güvenli değişkenler şifreli değerler olarak saklanır."
Bununla birlikte, Mantiant, boru hattı çalışmaları sırasında üretilen artefakt nesnelerinin düz metindeki güvenli değişkenler de dahil olmak üzere hassas bilgiler içerebileceğini keşfetti. Geliştiriciler, bu sırların eser dosyalarında maruz kaldığının farkında olmayabilirler, kaynak kodu tehdit aktörlerinin onları çalabileceği kamu depolarına yayınlanabilir.
Artefaktlar, bir Bitbucket Project'in CI/CD işlemlerini belirtmek için kullanılan bitbucket-pipelines.yml yapılandırma dosyasında tanımlanır.
Bu dosyalardaki yönergelerden biri, yapı ve test sürecinin diğer adımlarında korunacak ve kullanılacak eser nesnelerine dışa aktarılan değişkenleri, dosyaları ve dizinleri belirlemek için kullanılan Artifacts :,'dir.
Mantiant, geliştiricilerin tüm çevre dosyalarını bir metin dosyasında depolamak için printenv komutunu kullanmasının yaygın olduğunu ve daha sonra yapı işleminde gelecekteki adımlar için bir eser nesnesine aktarıldığını söylüyor.
Bununla birlikte, bunu yapmak "güvenli değişkenlerin", şifreli formda değil, eser dosyasına düz metin olarak dışa aktarılmasına neden olacaktır.
Bu eser dosyaları daha sonra halka açık bir konumda saklanırsa, bir tehdit oyuncusu metin dosyasını açabilir ve tüm değişkenleri düz metin olarak görüntüleyebilir, verileri çalmak veya diğer kötü amaçlı etkinlikleri gerçekleştirmek için kullanılabilecek kimlik doğrulama sırlarını kolayca çalabilir.
Raporda, "Mantiant, geliştirme ekiplerinin sorun giderme amacıyla web uygulama kaynak kodunda bitbucket eserleri kullandığı durumları gördü, ancak geliştirme ekiplerinden habersiz olarak, bu eserler gizli anahtarların düz metin değerlerini içeriyordu."
Diyerek şöyle devam etti: "Bu, gizli anahtarların kamu internetine maruz kalmasına neden oldu ve daha sonra yetkisiz erişim elde etmek için saldırganlar tarafından bulundukları ve daha sonra kaldırıldı."
Mantiant'a göre bir başka olasılık, CI/CD boru hattını tanımlayan 'Bitbucket-Pipelines.yml' dosyasını, günlüklere veya eserlere güvenli değişkenleri içerecek şekilde yanlış yapılandırmaktır.
Boru hattı komut dosyaları, hata ayıklama amaçları için ortam değişkenlerini kaydeddiğinde, istemeden hassas bilgileri kaydedebilirler ve bu günlükler tipik olarak erişilebilir yerlerde saklandığından, yine gizli maruz kalma riski vardır.
Mantiant, geliştiricilere Bitbucket'in sırları yönetmek için tasarlanmadığını hatırlatır ve bunun yerine bu amaç için özel, özel bir ürünün kullanıldığını gösterir.
Geliştiricilerin, oluşturulan dosyaların içinde düz metin sırlarının bulunmadığından emin olmak için eserleri dikkatlice incelemeleri önerilir.
Son olarak, gizli pozlama olaylarını yakalamak ve prodüksiyona ulaşmadan önce bunları kaldırmak için tam boru hattı yaşam döngüsü üzerinden kod taramasının dağıtılması tavsiye edilir.
Güncelleme 5/21/24: Atlassian, BleepingComputer'a Google tarafından gösterilen yöntemin bir geliştiricinin performans göstermesi ve güvenlik en iyi uygulamalarına aykırı olduğunu söyledi.
"Bir kullanıcının bir boru hattı derlemesi sırasında bir dosyaya güvenli değişkenleri bir dosyaya yazdırması olağandışıdır ve bu eylem güvenlik en iyi uygulamalarına aykırıdır. Müşterilerin CI/CD için çeşitli kullanım durumlarına sahip olduğunu anlıyoruz ve Bitbucket kullanıcılarının güvenliği takip etmelerini şiddetle tavsiye ediyoruz. Boru hatlarını yapılandırırken, müşterileri Snyk ile kod taraması ve diğer desteklenen güvenlik entegrasyonları eklemeye teşvik ediyoruz. Sırlar. " - Atlassian.
Kaynak: Bleeping Computer