← Tüm yazılar
Güvenlik

Rutin Bir Kontrolde Bulduğumuz Güvenlik Açığı ve Öğrettikleri

Bazen en önemli buluşlar, tam da onu aramadığınız anda çıkar karşınıza. Bir sağlık kliniği için geliştirdiğimiz bir yönetim sisteminde, bambaşka bir konuyu (fiyatlandırma güncellemesini) konuşurken, tesadüfen fark ettik: test ortamındaki bir API ucu, hiçbir kimlik doğrulaması yapmadan çalışıyordu.

Yani teoride, doğru adresi bilen herkes token'sız şekilde o uca istek atıp gerçek hasta verisine erişebilirdi. Bu, üretim ortamındaki gerçek hastaları etkilemedi — ama bir izole test ortamında haftalarca fark edilmeden durmuştu. Bunu görür görmez aynı gün kapattık ve tüm veri erişimini token bazlı kimlik doğrulamasına bağladık.

Açık, hiç kimse zarar görmeden bulundu ve kapatıldı. Ama bizi asıl rahatsız eden şuydu: bu tesadüfen bulunmuştu.

Bir güvenlik açığının “şans eseri” fark edilmesi, iyi bir süreç değildir — iyi bir süreç, onu sistematik olarak arayıp bulmaktır. O günden sonra yaklaşımımızı değiştirdik: artık her proje, canlıya alınmadan veya büyük bir değişiklik yapılmadan önce standart bir güvenlik taramasından geçiyor.

5
maddelik standart kontrol listesi

Bu kontrol listesi basit ama etkili sorular soruyor: Her API ucu gerçekten kimlik doğrulaması yapıyor mu (tahmin etmiyoruz, token'sız bir istek atıp test ediyoruz)? Varsayılan/zayıf bir şifre kaldı mı? Ortam değişkenleri her deploy hedefine doğru dağıtıldı mı? Hassas dosyalar (.env gibi) yanlışlıkla commit'lenmiş mi?

Küçük işletmeler için yazılım kurarken güvenlik genelde “sonra düşünülecek” bir konu gibi görülüyor — çünkü “bizim verimiz o kadar kritik değil ki” diye düşünülüyor. Ama bir klinikteki hasta kaydı, bir kooperatifteki üye bilgisi, bir işletmedeki müşteri verisi — hepsi birinin gerçek hayatına dokunuyor. Ölçek küçük olabilir, sorumluluk küçük değil.

“Küçük bir işletmeyiz, kimse bizimle uğraşmaz” düşüncesi, güvenlik için en tehlikeli varsayımdır.

Bu yüzden artık her Keyweber projesinde güvenlik taraması bir seçenek değil, bir standart adım. Tesadüfen bulunacak bir şey bırakmamaya çalışıyoruz.

Sıkça Sorulan Sorular

Küçük işletmeler için yazılım güvenliği neden önemli?

Ölçek küçük olsa bile işlenen veri (hasta kaydı, üye bilgisi, müşteri verisi) birinin gerçek hayatına dokunuyor. 'Küçük işletmeyiz, kimse bizimle uğraşmaz' varsayımı güvenlik açısından en tehlikeli düşüncedir.

Keyweber güvenlik taramasını nasıl yapıyor?

Her proje canlıya alınmadan veya büyük bir değişiklik yapılmadan önce standart bir kontrol listesinden geçiyor: her API ucunun gerçekten kimlik doğrulaması yapıp yapmadığı token'sız istekle test ediliyor, varsayılan/zayıf şifreler kontrol ediliyor, ortam değişkenlerinin doğru dağıtıldığı ve hassas dosyaların (.env gibi) commit'lenmediği doğrulanıyor.

Bu açık gerçek hasta verisini etkiledi mi?

Hayır. Açık, izole bir test ortamında bulundu ve üretimdeki gerçek hastaları etkilemedi. Fark edildiği gün aynı gün içinde kapatıldı ve token bazlı kimlik doğrulamasına geçildi.