CircleCI – kod oluşturma hizmet müşterilerinin kimlik bilgilerinin ele geçirilmesi nedeniyle mağduriyet yaşıyor. Hatırlayacaksınız 2020 sonunda Solarwindste benzer bir siber güvenlik vakası yaşanmış ve bir çok şirket önemli ölçüde etkilenmişti. CircleCI’da yaşanan veri sızıntısı biraz daha vahim sonuçlar doğurabilir. CircleCI’in oldukça fazla müşterisi var ve bu müşteriler bu platform üzerinde yazılımlarını geliştiriyorlar. Bu nedenle bu platformdan çalınan müşterilerin bu yazılım platformlarına erişilebilecek yetkili erişim bilgilieri (kullanıcı adı, şifre, token,…) kötü niyetli kişilerin eline geçmiş ise ilgili şirketleri çok zor günler bekliyor. Umarız bu sızıntının etkisi çok yüksek olmaz. Konuyla ilgili Sophos’un yayınladığı haberi aşağıda bulabilirsiniz.
Eğer bir programcıysanız, ister hobi için ister profesyonel olarak kod yazıyor olun, projenizin yeni bir sürümünü – kendinizin, arkadaşlarınızın veya müşterilerinizin gerçekten yükleyip kullanacağı resmi bir “sürüm” – oluşturmanın her zaman biraz zor olduğunu bilirsiniz.
Sonuçta, bir sürüm tüm kodunuza bağlıdır, tüm varsayılan ayarlarınıza dayanır, yalnızca yayınlanmış belgelerinizle (ancak içeriden bilgi olmadan) çıkar ve daha önce hiç görmediğiniz bilgisayarlarda bile çalışması gerekir, uyumluluk için hiç test etmediğiniz diğer yazılımlarla birlikte hiç hayal etmediğiniz yapılandırmalarda kurulur.
Basitçe söylemek gerekirse, bir proje ne kadar karmaşık hale gelirse, üzerinde ne kadar çok geliştirici çalışırsa ve diğerleriyle sorunsuz çalışması gereken o kadar çok ayrı bileşen olursa…
…bütünün, parçaların toplamından çok daha az etkileyici olması daha olasıdır.
Kaba bir benzetme olarak, en hızlı bireysel 100m sprinterlerine sahip atletizm takımının her zaman 4x100m bayrak yarışını kazanmadığını düşünün.
CI (Continues Integration-Sürekli Entegrasyon) kurtarmaya geliyor
Bu tür bir “ama benim bilgisayarımda sorunsuz çalışıyordu” krizinden kaçınmaya yönelik bir girişim, jargonda Sürekli Entegrasyon veya kısaca CI olarak bilinen bir tekniktir.
Fikir basittir: herhangi biri projenin kendi bölümünde bir değişiklik yaptığında, o kişinin yeni kodunu alın ve tıpkı son sürüm versiyonunu oluşturmadan önce yaptığınız gibi, onları ve yeni kodlarını tam bir derleme ve test döngüsünden geçirin.
Erken derleyin, sık derleyin, her şeyi derleyin, her zaman derleyin!
Açıkçası bu, fiziksel dünyadaki projelerin sahip olamayacağı bir lükstür: örneğin bir Sydney Harbour Köprüsü inşa ediyorsanız, perçinleme sürecini değiştirmeye karar verdiğinizde veya zirveye daha büyük bayrak direkleri sığdırıp sığdıramayacağınızı görmek için her seferinde tamamen yeni hammaddelerle tüm bir test açıklığını yeniden inşa edemezsiniz.
Bir bilgisayar yazılımı projesini bir grup kaynak dosyadan bir çıktı dosyaları koleksiyonuna “inşa ettiğinizde” bile, elektrik gibi değerli kaynakları tüketirsiniz ve geliştiricilerin kendilerinin kullandığı tüm bilgisayarlarla birlikte çalışmak için bilgi işlem gücünde ani bir artışa ihtiyaç duyarsınız.
Sonuçta, CI kullanan yazılım mühendisliği süreçlerinde fikir, herkes hazır olana kadar beklemek ve ardından herkesin programlamadan geri çekilip son bir derlemenin tamamlanmasını beklemek değildir.
Derlemeler tüm gün, her gün gerçekleşir, böylece kodlayıcılar yanlışlıkla diğer herkesi olumsuz etkileyen “iyileştirmeler” yapıp yapmadıklarını çok önceden söyleyebilirler – jargonun söyleyebileceği gibi derlemeyi bozarlar.
Buradaki fikir şudur: erken hata yap, hızlı düzelt, kaliteyi artır, öngörülebilir ilerleme kaydet ve zamanında sevk et.
Elbette, başarılı bir test derlemesinden sonra bile yeni kodunuzda hala hatalar olabilir, ancak en azından bir geliştirme döngüsünün sonuna geldiğinizde, çeşitli bileşenler hizadan uzaklaştığı için herkesin yazılımı derlemek ve çalıştırmak için çizim tahtasına geri dönmesi gerekmeyecektir.
İlk yazılım geliştirme yöntemleri genellikle bir şelale modelini takip etmek olarak adlandırılırdı; bu modelde proje son sürüm tarihleri arasında nehrin aşağısına doğru yavaşça sürüklenirken herkes uyumlu ancak bağımsız bir şekilde çalışırdı, ta ki döngünün sonunda her şey yeni bir sürüm oluşturmak için bir araya gelene kadar, bir sürüm yükseltmesinin çalkantılı şelalesine dalmaya hazır, yalnızca daha fazla tasarım ve geliştirme için akıntının aşağısındaki başka bir yumuşak su dönemine çıkmaya hazırdı. Ancak bu “şelaleler” ile ilgili bir sorun, genellikle şelalenin tam kenarında, görünüşte sonsuz bir dairesel girdapta sıkışıp kalmanız, yerçekimine rağmen, uzun hack’ler ve modifikasyonlar (ve buna eşlik eden taşmalar) ileriye doğru yolculuğu mümkün kılana kadar uçurumun kenarından hiç geçememenizdi.
Tam buluta göre bir iş
Tahmin edebileceğiniz gibi, CI’ı benimsemek, geliştiricilerinizden herhangi biri bir derleme ve test prosedürünü tetiklediğinde, “şelalenin en ucunda takılıp kalma” durumuna geri dönmekten kaçınmak için emrinizde bir dizi güçlü, kullanıma hazır sunucuya sahip olmak anlamına gelir.
Bu bulut için bir iş gibi görünüyor!
Gerçekten de öyle, çok sayıda CI/CD bulut hizmeti (bu CD çalınabilir bir müzik diski değil, sürekli teslimatın kısaltmasıdır) size farklı ürünlerin sürekli değişen sayıdaki farklı dallarını aynı anda, hatta belki de farklı donanımlarda, farklı şekilde yapılandırılmış yapılardan geçirme esnekliği sunuyor.
CircleCI böyle bir bulut tabanlı hizmettir…
…ama ne yazık ki müşterileri için bir güvenlik ihlaline maruz kaldılar.
Teknik olarak ve bugünlerde yaygın olduğu üzere, şirket resmi bildiriminin hiçbir yerinde “ihlal”, “izinsiz giriş” veya “saldırı” kelimelerini kullanmadı: şu ana kadar sadece bir güvenlik olayı söz konusu.
Orijinal bildirim [2023-01-04] basitçe şunu belirtiyordu:
Şu anda bir güvenlik olayını araştırdığımızı ve soruşturmamızın devam ettiğini size bildirmek istedik. Bu olay ve verdiğimiz yanıtla ilgili güncellemeler elimize ulaştıkça size bildireceğiz. Bu noktada, sistemlerimizde aktif olan yetkisiz taraflar olmadığından eminiz; ancak, tedbirli olmak adına, tüm müşterilerimizden verilerini korumak için bazı önleyici tedbirler almalarını istiyoruz.
Ne yapmalı?
O zamandan bu yana CircleCI düzenli güncellemeler ve daha fazla tavsiyede bulundu: “Lütfen CircleCI’da saklanan tüm şifrelerinizi rotasyona tabi tutun.”
Daha önce de açıkladığımız gibi, ” rotasyon” jargonu burada kötü bir şekilde seçilmiştir, çünkü insanların şifreleri ve sırları az sayıda öngörülebilir seçenekle tam anlamıyla “döndürdüğü” tehlikeli bir geçmişin mirasıdır, sadece o zamanlar yenilerini takip etmek daha zor olduğu için değil, aynı zamanda siber güvenlik bugün olduğu kadar önemli olmadığı için.
CircleCI’nin kastettiği şey, muhtemelen ağı ihlal eden saldırganlar sizin parolalarınızı çaldığı ya da çalmadıkları kanıtlanamadığı için tüm parolalarınızı, gizli bilgilerinizi, erişim tokenlarınızı, ortam değişkenlerinizi, genel-özel anahtar çiftlerinizi ve benzerlerini DEĞİŞTİRMENİZ gerektiğidir.
Şirket, ihlalden etkilenen çeşitli özel güvenlik verilerinin bir listesini sunmuş ve CircleCI-Env-Inspector adında, ortamınızda değiştirmeniz gereken tüm CI sırlarının JSON biçimli bir listesini çıkarmak için kullanabileceğiniz kullanışlı bir komut dosyası oluşturmuştur.
Ayrıca, siber suçlular artık kendi ağınıza geri dönmelerini sağlayabilecek erişim belirteçlerine ve kriptografik anahtarlara sahip olabilirler, özellikle de CI derleme süreçlerinin bazen buluta yükleyemediğiniz veya yüklemek istemediğiniz kod veya verileri talep etmek için “evi araması” gerektiğinden (bunu yapan komut dosyaları jargonda koşucular olarak bilinir).
Bu yüzden CircleCI tavsiye ediyor:
Ayrıca müşterilerin 2022-12-21 tarihinden itibaren [2023-01-04 tarihine kadar ve bu tarih dahil] ya da [gizli bilgilerinizi değiştirme] işleminin tamamlanmasının ardından yetkisiz erişime karşı sistemlerinin dahili günlüklerini incelemelerini öneriyoruz.
Bazı müşterilerin, CircleCI tarafından bu ihlalin başladığı ima edilen tarihin [2022-12-21], şirketin son güvenilirlik güncellemeleriyle ilgili yayınladığı bir blog yazısıyla aynı zamana denk geldiğini belirtmesi ilginçtir.
Müşteriler, “İhlal bu güncellemede ortaya çıkan hatalarla mı ilgiliydi?” diye sordular.
Şirketin yayınladığı güncellemeye ilişkin makalelerin, belirli tarihlerde yapılan münferit değişikliklere ilişkin duyurulardan ziyade, haber özetleri niteliğinde olduğu düşünüldüğünde, bu soruya verilebilecek en açık yanıt “Hayır” olacaktır…
…ve CircleCI, yayınladığı blog yazısının tesadüfi tarihinin 2022-12-21 olmasının sadece bir tesadüf olduğunu belirtmiştir.
Kaynak:
Yorum yazabilmek için oturum açmalısınız.