Bitbucket yapı dosyaları düz metin kimlik doğrulama sırlarını sızdırabilir


Veri sızdırma

Tehdit aktörlerinin, Atlassian Bitbucket yapı nesnelerinde düz metin olarak sızdırılan kimlik doğrulama sırlarını kullanarak AWS hesaplarını ihlal ettiği tespit edildi.

Sorun, tehdit aktörlerinin AWS’ye erişim sağlamak için kullandığı Amazon Web Hizmetleri (AWS) sırlarının yakın zamanda açığa çıkmasını araştıran Mandiant tarafından keşfedildi.

Her ne kadar sorun bir soruşturma kapsamında keşfedilmiş olsa da, daha önce güvence altına alındığı düşünülen verilerin nasıl düz metin halinde kamuya açık depolara sızdırılabileceğini gösteriyor.

BitBucket’in güvenli değişkenleri

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 Pipelines, derleme, test ve dağıtım süreçlerini otomatikleştiren entegre bir sürekli dağıtım/dağıtım (CI/CD) hizmetidir.

Sistem yöneticileri, uygulamaların hızlı dağıtımı ve AWS CLI’yi, SDK’ları ve diğer AWS araçlarını kullanarak kaynaklara erişmek için genellikle Pipelines’ı 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şkenler’de saklamasına olanak tanır ve bu değişkenleri, anahtarları başkalarına ifşa etmeden kodlarında kolayca kullanır.

Güvenli değişkenleri Bitbucket'te saklama
Güvenli değişkenleri Bitbucket’te saklama
​​​​​​Kaynak: Mandiant

Bir değişken BitBucket’te güvenli olarak ayarlandığında, değerlerinin Bitbucket ortamında kamuya açık olmasını önlemek için şifrelenmiş biçimde depolanır.

Bitbucket belgelerinde “Bir değişkenin güvenliğini sağlayabilirsiniz; bu, onun komut dosyalarınızda kullanılabileceği ancak değerinin derleme günlüklerinde gizleneceği anlamına gelir (aşağıdaki örneğe bakın),” diye açıklıyor.

“Güvenli bir değişkeni düzenlemek istiyorsanız ona yalnızca yeni bir değer verebilir veya silebilirsiniz. Güvenli değişkenler şifrelenmiş değerler olarak saklanır.”

Ancak Mandiant, işlem hattı çalıştırmaları sırasında oluşturulan yapay nesnelerin, 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 yapı dosyalarında açığa çıktığının farkında olmayabileceğinden kaynak kodu, tehdit aktörlerinin bunları çalabileceği halka açık depolarda yayınlanabilir.

Düz metindeki sırlar

Yapıtlar, bir Bitbucket projesinin CI/CD işlemlerini belirtmek için kullanılan bitbucket-pipelines.yml yapılandırma dosyasında tanımlanır.

Bu dosyalardaki direktiflerden biri eserler:yapı ve test sürecinin sonraki adımlarında saklanacak ve kullanılacak yapı nesnelerine aktarılan değişkenleri, dosyaları ve dizinleri belirtmek için kullanılır.

Mandiant, geliştiricilerin bu özelliği kullanmasının yaygın olduğunu söylüyor. printenv Tüm ortam dosyalarını bir metin dosyasında depolamak için komut; bu daha sonra derleme sürecindeki sonraki adımlar için bir yapıt nesnesine aktarılır.

Tüm ortam değişkenlerini bir yapıt nesnesine aktarma
Tüm ortam değişkenlerini bir yapıt nesnesine aktarma
Kaynak: Mandiant

Ancak bunu yapmak, “güvenli değişkenlerin” şifreli form yerine düz metin olarak yapı dosyasına aktarılmasına neden olacaktır.

Bu yapay dosyalar daha sonra halka açık bir konumda depolanırsa, bir tehdit aktörü 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.

Sırları düz metin olarak açığa çıkaran metin dosyası
Sırları düz metin olarak açığa çıkaran metin dosyası
Kaynak: Mandiant

Raporda, “Mandiant, geliştirme ekiplerinin sorun giderme amacıyla web uygulaması kaynak kodundaki Bitbucket yapıtlarını kullandığı ancak geliştirme ekiplerinin bilmediği bu yapıtların gizli anahtarların düz metin değerlerini içerdiği örnekleri gördü” deniyor.

“Bu, gizli anahtarların bulundukları yerde halka açık internete maruz kalmasına ve daha sonra saldırganlar tarafından yetkisiz erişim elde etmek için kullanılmasına neden oldu.”

Mandiant’a göre başka bir olasılık da, CI/CD hattını tanımlayan ‘bitbucket-pipelines.yml’ dosyasının, günlüklere veya yapılara güvenli değişkenleri dahil edecek şekilde yanlış yapılandırılmasıdır.

İşlem hattı komut dosyaları, ortam değişkenlerini hata ayıklama amacıyla günlüğe kaydettiklerinde, istemeden de olsa hassas bilgileri günlüğe kaydedebilirler ve bu günlükler genellikle erişilebilir konumlarda saklandığından, yine gizli bir açığa çıkma riski vardır.

Azaltma ipuçları

Mandiant, geliştiricilere Bitbucket’in sırları yönetmek için tasarlanmadığını hatırlatarak bunun yerine bu amaç için özel, özel bir ürünün kullanıldığını öne sürüyor.

Ayrıca geliştiricilerin, oluşturulan dosyaların içinde düz metin sırları bulunmadığından emin olmak için yapıtları dikkatle incelemeleri önerilir.

Son olarak, gizli açığa çıkma olaylarını yakalamak ve kod üretime ulaşmadan önce bunları kaldırmak için kod taramasının tüm işlem hattı yaşam döngüsü boyunca dağıtılması önerilir.



Source link