Günümüzün dijital çağında siber güvenlik giderek önem kazanmaktadır. Bu alanda yapılan çalışmaların odak noktası genellikle ağ altyapısı, kullanıcılar veya sistem yöneticileridir. Ancak siber saldırganlar, hedeflerini belirlerken sıklıkla geliştiricilere yönelmektedir. Geliştiricilerin, yazılımın temelini oluşturan kodlama ve uygulama altyapısıyla ilgilenmeleri, saldırganlar için cazip bir hedef olmalarını sağlamaktadır.
Siber saldırganlar, tedarik zinciri sistemlerine erişim elde etmek için geliştirici ekiplerini hedef almaktan daha fazlasını yapıyor. Bu, önemli bir risk taşısa da, geliştiriciler genellikle ayrıcalıklı hesaplara engelleyici olmayan erişime sahiptir ve geliştiricilerin sistemleri genellikle işletmelerdeki çok güvenli olmayan sistemlerdir. Geliştiriciler, güvenliği az olan geliştirme ortamlarında kod denemeleri yapar, sistemlerine istedikleri uygulamaları indirebilme esnekliğine sahiptir ve sistemleri ağ üzerinde erişim için bir Grand Central Station gibi kullanılır.
Modern yazılımın bu gerçekleri, geliştiricileri sürekli olarak siber suçlulara fırsat sunan bir hediye haline getiriyor. Siber suçlular, geliştiricilerin makinelerini ve hesaplarını ele geçirmenin yollarını bulmak için giderek daha fazla yöntem geliştiriyor. Bir geliştirme ortamını ele geçirmek, yazılım tedarik zinciri saldırıları da dahil olmak üzere çeşitli amaçlara ulaşmaya yardımcı olabilir. Ancak bu, ortak bir paydada bulunan birçok saldırı senaryosundan sadece biri.
TrendMicro tehdit araştırmacıları, geçen ay yaptıkları bir analizde BlackCat fidye yazılımının imzalı çekirdek sürücülerini kaçınmak için kullandığını belirtti. Analiz, fidye yazılımı saldırılarının, Microsoft kod imzalama gereksinimlerine uyum sağlamak için kullanılabileceğini gösterdi. Saldırganlar, ele geçirilen ortamlardan sızdırılan kod imzalama sertifikalarını aradılar ve “imzalama sertifikası almak için Microsoft’un sürecini taklit ederek meşru bir varlık olarak kılık değiştirmeyi” amaçladılar. Bir geliştirici hesabının ele geçirilmesi, bu tür planların çoğunda ortak payda olarak görülüyor. Ve bu, bu ortak paydadan etkilenen birçok saldırı senaryosundan sadece biri.
SANS Enstitüsü, RSA Konferansı 2023’te “hedef olarak geliştiricilerin” en tehlikeli beş saldırı arasında yer aldığını belirtti. SANS Teknoloji Enstitüsü’nün araştırma dekanı ve grup Internet Storm Center’ın kurucusu Johannes Ullrich, bu hafta SANS tarafından sunulan bir takip analizinde özellikle geliştiricilere yönelik saldırı riskinin artmasından bahsetti.
“Her zaman tedarik zinciri saldırılarından bahsederiz ve tedarik zinciri genellikle biraz anonim ve opak olarak görülür. Ancak aslında geliştiriciler şimdi özellikle onlara hedeflenen belirli kötü amaçlı yazılımlara, dolandırıcılık girişimlerine ve sosyal mühendislik saldırılarına maruz kalıyor.”
—Johannes Ullrich
İşte siber saldırganların geliştiricileri sevmesinin beş nedeni ve buna ne yapılması gerektiği:
Geliştiriciler ayrıcalıklı hesapları kullanır
Geliştiriciler, işlerini yapabilmek için sistemlere yüksek düzeyde erişime sahip olmak zorundadır ve saldırganlar, çoğu kuruluşun bu ayrıcalıklı hesapların izinlerini ve erişimini nasıl kontrol ettiğine dair çok disiplinli olmadığını fark etmektedir. Saldırganlar, geliştirici hesaplarını ele geçirebilirse son derece hassas sistemlere ve verilere kolaylıkla erişebilirler.
Geçtiğimiz yıl LastPass’in ihlalleri, saldırganların geliştiricilere olan ilgilerini ve hesap erişiminin değerini gösteren çarpıcı bir örnektir. LastPass saldırganı muhtemelen şirket tarafından depolanan müşteri güvenlik kasasına erişmek istiyordu. Saldırganlar, şirketin geliştirme ortamına erişim sağlayan bir geliştiricinin ele geçirilmiş bir noktasından başladılar ve sonunda kötü niyetli kişiler bir miktar kaynak kodu ve teknik ayrıntı çalmayı başardı. Saldırganlar, o ilk bilgiyi kullanarak keşif ve araştırmaya devam ettiler ve daha değerli bir erişime sahip farklı bir DevOps mühendisini hedeflemek için bu bilgileri kullandılar. Bu mühendis, LastPass’in kurumsal kasasına erişimi olan sadece dört çalışandan biriydi.
Saldırgan, bu mühendisin ev bilgisayarını, zayıf bir Plex örneğini sömürerek anahtar kaydedici kötü amaçlı yazılım yüklemek suretiyle hedef aldı. Bu şekilde izlemeleri sayesinde, saldırganlar LastPass kurumsal kasasına erişebildi ve müşteri güvenlik kasası yedekleme verileri de dahil olmak üzere çok değerli verileri çalmayı başardı.
Geliştiriciler toplu olarak kimlik bilgilerini yönetir, arkadaşları ile paylaşır
Geliştiriciler sadece farklı sistemlere yüksek düzeyde erişime sahip olmakla kalmaz, aynı zamanda toplu olarak birçok diğer kimlik bilgisini de yönetir. Geliştiriciler, üretimde yazılım çalıştırmak için gerekli şifreler, API anahtarları, şifreleme anahtarları ve diğer birçok sırrı çekerler. Geliştiricilerin bu sırları düzgün bir şekilde yönettiğini sağlamak için bir seviyede süreç yönetimi ve otomatik kontroller olmadan, geliştiricilerin kimlik bilgilerini veya sır kasalarını saldırganlara açık bırakmaları çok kolay olur ve saldırganlar bu bilgileri kullanarak geniş bir altyapı ve veri yığınını tamamen ele geçirebilir.
NCC Group’un güvenlik danışmanı Viktor Gazdag, bir kuruluşun geliştiricileri ve çalışmalarını korumak için kullanabileceği bir numaralı CI/CD güvenlik en iyi uygulamasının erişim hijyeni ve sır yönetimi olduğunu söyledi.
“Her şey çok hızlı hareket ederse, iyi tanımlanmış bir ayarı veya organizasyon politikasını gözden kaçırma veya sapma şansı her zaman vardır, ancak geçici bir kolaylık veya geçici bir çözümle çalıştırmak için bir geçici kolaylık veya geçici çözüme ihtiyacımız var. Bir deyimle söylemek gerekirse, ‘şeytan asla uyumaz.’ Şifre politikası, ağ segmentasyonu, kimlikler için en az ayrıcalık ilkesi ve güncelleme gibi temel şeyler birçok saldırıyı önlemeye yardımcı olur.”
—Viktor Gazdag
Bir sır yönetimi stratejisi, gereken tüm unsurları içerebilmek için öngörü, planlama ve pratik gerektirir, bu da rotasyonu, anahtar yönetimini, denetlemeyi, gözden geçirmeyi, erişimi izlemeyi ve denetim kayıtlarına dayalı olarak uyarlamayı içerir. “Ve tüm CI/CD çözümlerinin tam sır yönetimi desteği olmadığını, bu nedenle başka bir araca veya sürece ihtiyaç duyulabileceğini” Gazdag.
Geliştiriciler doğrulanmamış bileşenleri kullanır
Geliştiriciler, projelerini hızlandırmak veya belirli bir işlevselliği sağlamak amacıyla sık sık üçüncü taraf bileşenleri ve kütüphaneleri kullanır. Ancak bu bileşenlerin güvenliği veya kökeni hakkında yeterli bilgiye sahip olmayabilirler. Siber saldırganlar, güvenlik açıkları içeren veya kötü niyetli bileşenleri dahil ederek geliştiricileri hedef alabilirler. Bu, yaygın bir saldırı vektörü olan Yazılım Tedarik Zinciri Saldırıları (Software Supply Chain Attacks) için bir yol olabilir.
NPM Advisory Board üyesi ve Snyk’ta Developer Advocate olarak görev yapan Liran Tal, geliştiricilerin yazılım geliştirme süreçlerinde güvenliği nasıl artırabileceklerine dair önemli bir tartışma yaptı. Ona göre, geliştiricilerin güvendikleri bir topluluğun üyeleri olarak, yazılım tedarik zincirindeki güvenlik açıklarını tespit etmek ve düzeltmek için harekete geçmeleri gerekiyor.
“Topluluk tarafından tanınan güvenlik uzmanlarının rehberliği ve açık kaynak projelerine odaklanan şirketlerin desteği ile güvenlik kültürünü nasıl güçlendirebileceğimizi düşünmeliyiz. Ek olarak, geliştiricilerin güvenlik açıklarını tespit etmek için otomatik araçlardan yararlanmaları, bileşen güncellemelerini otomatikleştirmeleri ve güncellemeleri yapılandırmaları önemlidir.”
—Liran Tal
Geliştiricilerin sistemleri genellikle diğerlerinden daha az güvenlidir
Geliştiriciler, sık sık kendi çalışma ortamlarını kurar ve yönetirler. Bu ortamlar, hızlı deneme yapma ve yeni yazılım sürümlerini hızla test etme esnekliği sağlamak amacıyla genellikle daha az güvenlik önlemine sahiptir. Bununla birlikte, saldırganlar bu zayıf halkayı hedef alabilir ve geliştiricilerin sistemlerine sızabilir. Ardından, daha büyük bir saldırıya veya daha fazla erişime yol açabilirler.
Geliştiricilerin sistem güvenliği konusunda farkındalığını artırmak ve uygun güvenlik önlemlerini uygulamak önemlidir. Eğitim, geliştiricilere güvenlik açıklarını tanıma ve önleme konusunda bilgi ve beceriler sunabilir. Ayrıca, geliştirme ortamlarının güvenliğini artırmak için ayrıcalık ayrıntılarının ve erişim kontrollerinin düzgün bir şekilde yönetilmesi gerekmektedir.
Geliştiriciler genellikle sosyal mühendislik saldırılarına maruz kalır
Sosyal mühendislik, insanları manipüle etmek veya kandırmak suretiyle bilgileri elde etmek amacıyla kullanılan bir saldırı taktiğidir. Geliştiriciler, projeleri hakkında halka açık bilgileri paylaşırken veya işbirliği yaparken sosyal mühendislik saldırılarına maruz kalma eğilimindedir. Saldırganlar, geliştiricilerin güvendikleri biri gibi davranarak bilgi veya erişim elde etmeye çalışabilirler.
Geliştiricilerin sosyal mühendislik saldırılarına karşı dikkatli olmaları ve bilinçli olmaları önemlidir. Saldırganların kimlik avı (phishing) e-postaları, sahte hesaplar veya yanlış bilgilerle geliştiricileri kandırmaya çalışabileceği bilinmelidir. Eğitim ve farkındalık, geliştiricilerin bu tür saldırılara karşı daha dirençli olmalarına yardımcı olabilir.
Geliştiriciler, yüksek erişim düzeyleri, kimlik bilgileri ve sırların yönetimi, güvenli olmayan bileşenlerin kullanımı, zayıf sistem güvenliği ve sosyal mühendislik saldırılarına maruz kalma gibi nedenlerle siber saldırganlar için çekici hedefler haline gelmektedir. Bu nedenle, geliştiricilerin güvenlik bilincini artırmaları, güvenlik önlemlerini uygulamaları ve güncel tehditler hakkında bilgili olmaları önemlidir. Ayrıca, kuruluşların geliştiricileri desteklemek ve güvenlik kültürünü teşvik etmek için uygun politikalar, süreçler ve araçlar sağlaması gerekmektedir.