Geçtiğimiz Nisan ayında BT haber siteleri Ruby programlama dilinin kütüphanelerinin resmi dağıtım kanalı olan RubyGems’in zehirlendiği haberini yayınladı. Habere göre bir saldırgan, içerisinde kötü amaçlı bir komut dosyası bulunan sahte paketler yükledi ve bu kodu projelerinde kullanan programcılar farkında olmadan kullanıcıların bilgisayarına kripto para birimi cüzdan adreslerini değiştiren kötü amaçlı bir yazılım bulaştırdı.
Elbette bu saldırı herkese açık bir kaynağın istismar edildiği ilk tedarik zinciri saldırısı değil. Ama görünüşe göre bu tür senaryolar popüler olmaya başladı ve bu saldırılardan birinin başarılı olması, on binlerce ya da yüz binlerce kullanıcının tehlikeye atılması anlamına geliyor. Bu tehlikenin büyüklüğü, zehirlenen kaynaktan alınan kodu kullanan yazılımın ne kadar popüler olduğuna bağlı.
Kötü amaçlı paketler kaynaklara nasıl giriyor?
RubyGems olayının sorumlusu olan siber suçlu, ilgili kaynakta yayınlanan popüler meşru paketlere benzer isimde bir sürü proje oluşturmuş. Alan adı benzerliği (typosquatting) olarak bilinen bu yöntem, geliştiricilerin paketin adını yanlış yazmasına ve yanlışlıkla kötü amaçlı bir paket indirmesine ya da arama sonuçlarında çıkan bir dizi paket isminden hangisinin gerçek pakete ait olduğunu bilmemesine dayanıyor. Genel olarak en yaygın siber zehirleme yöntemlerinden biri olarak kabul edilen bu taktik, Python Package Index‘e yapılan saldırılarda ve Docker Hub‘a sahte görseller yüklemek için kullanıldı.
Copay kripto para birimi cüzdanı olayında ise saldırganlar, kaynağı GitHub’da bulunan bir kütüphane kullandı. Kütüphanenin yaratıcısı hevesini kaybedince yönetici haklarını devretti ve dolayısıyla birçok geliştiricinin ürünlerinde kullandığı bu popüler kütüphaneyi tehlikelere açık hale getirdi.
Bazı olaylarda siber suçlular meşru bir geliştiricinin hesabını kendisinin haberi olmadan kullanabiliyor ve gerçek paketleri sahteleriyle değiştiriyor. Bunun bir örneği, kütüphaneleri npm (Node Package Manager) çevrimiçi veri tabanında barındırılan ESLint‘e düzenlenen saldırıda yaşanmıştı.
Derleme ortamının zayıf bırakılması
Yazılım ürünleri geliştiren şirketler de APT saldırganlarının ilgisini çekebiliyor. Bu saldırganların yazılım geliştiren şirketlerin müşterilerini hedef aldığı olaylar zaman zaman güvenlik uzmanlarının dikkatini çekiyor:
- Ağustos 2017’de birkaç APT saldırganı, NetSarang tarafından geliştirilen yazılıma kötü amaçlı modüller eklemişti. Araştırmacılara göre saldırganlar yazılım oluşturma sunucularına da ulaşabiliyordu.
- 2018’de siber suçlular Piriform uygulama oluşturma sunucusunu ele geçirdi ve sonrasında temiz bir kaynak kodu olan CCleaner program yapıları derleme sürecinde kötü amaçlı unsurlarla donatıldı.
- 2019’da ise uzmanlarımız suçluların çeşitli şirketlerin yazılım ürünlerine gizli bir giriş yerleştirdiği ShadowHammer APT kampanyasını keşfetti. Yapılan araştırmada saldırganların kaynak koduna erişimi olduğu veya kötü amaçlı kodu derleme aşamasında yerleştirdikleri sonucuna ulaşıldı.
Derleme ortamının zayıf bırakılması sadece nihai ürünün “enfekte olmasına” neden olmakla kalmaz, kötü amaçlı kodun yerleştirildiği yazılımın güvenilir bir geliştiricinin meşru imzası altında dağıtılmasına da yol açar. Bu nedenle geliştirme sürecinin dış müdahalelere karşı gelişmiş özelliklerle korunması gerekir.
Sorunun özü
Buradaki asıl tehlike, herkese açık kaynakların kullanılması değil, günümüzde yazılım geliştirme alanında benimsenen yaklaşımdaki, yani DevOps yöntemlerindeki hatalardır. DevOps, program geliştirme döngüsünü kısaltmayı amaçlayan bir dizi uygulamadan oluşur. Geliştirme sırasında güvenlik ve kullanılabilirlik daima dengeli bir şekilde sunulmalıdır. Günümüzün kıyasıya rekabet ortamında tutunabilmek için geliştiricilerin yeni program sürümlerini mümkün olduğunca hızlı bir şekilde yayınlaması gerekir. Ancak programın kullanılabilirliğini arttırmak genellikle kalitenin düşmesine veya piyasaya sürülme süresinin (TTM) uzamasına neden olur. Bu nedenle geliştiriciler güvenlik personelinin yaptıkları işe dahil olma oranını en aza indirmeye veya tamamen ortadan kaldırmaya çalışır.
Sonuç olarak bilgi güvenliğinin alt yapının bu bölümünde hiçbir kontrolü kalmaz. Ancak geliştirme, BT ve güvenlik tek bir ortak amaca hizmet eder: Makul bir sürede sunulan kaliteli ve güvenli bir ürün. İçerisinde gizli bir giriş veya casusluk modülü bulunan program güncellemesinin kimseye faydası olmayacaktır. Bu nedenle sektörün bir DevSecOps metodolojisi içerecek şekilde evrilmesi gerektiğini düşünüyoruz.
DevSecOps, yazılım geliştirme süresinin tüm aşamalarında pratik bir kontrol uygulaması ve siber güvenlik kültürü sunarak esneklik ve hızdan ödün vermeden DevOps ve güvenlik arasında bir köprü oluşturur. Biz de bu sürecin teknik yönüne destek olacak araçlar sunuyoruz.
Çözümümüz
Piyasada özellikle yazılım geliştirme sürecinin güvenliğini sağlayacak yeterli sayıda araç bulunmuyor. Bu nedenle Kaspersky Hybrid Cloud Security ürünümüzü güncellerken programcıların ihtiyaçlarını dikkate aldık ve çözümümüzü, performansı etkilemeden geliştirme sürecine güvenlik araçları entegre edecek teknolojilerle donattık. Bu teknolojiler özellikle tedarik zinciri saldırılarını önlemek için taranması gereken kaynakları, görselleri ve kapsayıcıları taramaya yarıyor.
Kaspersky Hybrid Cloud Security; TeamCity ve Jenkins gibi sürekli entegrasyon (CI) ve sürekli dağıtım (CD) platformlarıyla birlikte çalışma arayüzlerine sahiptir. Çözümümüz komut satırı veya bir uygulama programlama arayüzüyle geliştirme sürecine entegre edilebilir.
Tabii, çözümümüzdeki yenilikler bunlarla sınırlı değil. Kaspersky Hybrid Cloud Security ve DevOps sürecinin korunması hakkında daha fazla bilgi almak için ürün sayfasını ziyaret edin.