Yazılım dünyasında genellikle sistem dışı saldırılara, yani dış tehditlere odaklanmaya alışkınız. Ancak yakın zamanda eski bir Jagex çalışanının, şirket veritabanlarına veya oyun içi ekonomiye erişim sağlayarak 400 bin dolar değerinde sanal varlık çalması, sektördeki en kritik güvenlik açıklarından birini yeniden gündeme getirdi: İç tehditler ve yetki yönetimi. Bir yazılım geliştiricisi veya sistem yöneticisi olarak, sistemin içindeki bir ismin sahip olduğu erişim düzeyinin suistimal edilmesini teknik bir perspektifle ele almalıyız.
Yetki Yönetimi ve ‘Least Privilege’ İlkesi
Teknik bir değerlendirme yapacak olursam; geliştirme süreçlerinde karşılaştığımız en büyük sorunlardan biri, çalışanlara gereğinden fazla yetki verilmesidir. En az ayrıcalık (Least Privilege) ilkesi, bir kullanıcının veya servisin görevini yerine getirmesi için ihtiyaç duyduğu minimum erişim seviyesine sahip olması gerektiğini savunur. Eğer bir geliştirici, canlı (production) veritabanına doğrudan okuma/yazma erişimine sahipse, bu durum ciddi bir güvenlik açığıdır.
Kurumsal Projelerde Erişim Kontrolü
Benim görüşüme göre, kritik sistemlerde şu mekanizmalar mutlaka bulunmalıdır:
- RBAC (Role-Based Access Control): Erişimler bireysel değil, rollere göre tanımlanmalı.
- Dual Approval (Çift Onay) Mekanizması: Kritik veritabanı değişiklikleri veya kod deployment işlemleri mutlaka ikinci bir yetkili tarafından onaylanmalıdır.
- Audit Logging: Tüm erişimler ve yapılan işlemler, değiştirilemez bir log sunucusunda (ELK stack veya merkezi bir loglama servisi gibi) saklanmalıdır.
Sistem Yöneticileri İçin Best Practice Önerileri
Bir Linux sunucu yöneticisi veya DevOps mühendisi olarak, bu tür durumlarda sadece kod düzeyinde değil, altyapı düzeyinde de önlemler almalısınız. Örneğin, Docker konteynerları içerisinde çalışan servislerinizin, host makinenin dosya sistemine veya veritabanı portlarına erişimini Network Policies ile kısıtlamanız gerekir.
Pratikte en çok karşılaşılan sorunlardan biri, geliştirme aşamasında kullanılan yetkilerin, projenin canlıya alınma (go-live) sürecinde de temizlenmemesidir. Bu, zamanla “artık yetkilerin” birikmesine ve bir gün kötü niyetli bir şekilde kullanılmasına neden olur.
Bu Neden Önemli ve Kimler Risk Altında?
Bu olay sadece oyun geliştiricilerini ilgilendirmiyor. SaaS geliştiren tüm girişimciler, finansal uygulamalarla ilgilenen yazılım ekipleri ve e-ticaret siteleri yöneten sistem yöneticileri için ders niteliğinde bir vaka. Eğer sisteminizde herhangi bir değer (dijital para, kullanıcı verisi, mülkiyet bilgisi) dönüyorsa, sistem mimarinizi mutlaka “insan faktörünün hata yapabileceği veya suistimal edebileceği” varsayımıyla kurgulamalısınız.
Hangi Durumlarda Tercih Edilmeli?
Eğer bir kurumda özel yazılım geliştirme veya altyapı yönetimi süreçlerini otomatize ediyorsanız, mutlaka GitOps yaklaşımlarını kullanın. İnsan elini koddan ve sunucu yönetiminden mümkün olduğunca çekin. API entegrasyonlarında ise sadece ilgili servise özel “scoped” tokenlar kullanmak, ileride yaşanabilecek bir veri sızıntısının etkisini minimize edecektir.
Sonuç: Güvenlik Bir Kültürdür
Özetle, teknoloji ne kadar gelişirse gelişsin, sistemin en zayıf halkası hala insandır. Yazılım geliştirme süreçlerinizi, sadece fonksiyonel kod yazmaya değil, bu tür “insan kaynaklı” güvenlik risklerini minimize edecek otomasyonlar kurmaya odaklamalısınız. Güvenlik, bir defalık bir konfigürasyon değil, sürekli denetlenen bir süreçtir.
Bu konu hakkında daha fazla teknik içerik için emrecb.com’u takip edebilirsiniz. İşletmeniz veya projeniz için profesyonel yazılım, Linux sunucu danışmanlığı, Docker çözümleri veya web geliştirme süreçlerinde profesyonel destek almak isterseniz benimle iletişime geçebilirsiniz.










Bir yanıt yazın