Kodlamadan Önce: Siber Savunma Kontrolü

Geliştiricinin Savunma Hattı: Her Yazılım Projesinin Başlangıcında Olması Gereken 5 Güvenlik Kontrolü

Siber saldırıların büyük bir çoğunluğu, kodun ilerleyen aşamalarında değil, maalesef ilk satırları yazılırken atılan yanlış adımlardan kaynaklanır. Bir Güvenlik Analisti (ECSA, CHFI) ve aynı zamanda bir Geliştirici olarak, güvenliğin “sonradan eklenen bir özellik” değil, “projenin mimarisine dahil edilmesi gereken temel bir katman” olduğunu biliyorum.

Güvenlik açıklarını üretim ortamında (production) düzeltmenin maliyeti, kodlama aşamasında düzeltmenin maliyetinden kat kat fazladır. İşte “güvenliği sola kaydırma” (shift left) felsefesiyle her geliştiricinin projesinin başlangıcında uygulaması gereken 5 kritik kontrol:

1. Giriş Doğrulaması (Input Validation)

Kullanıcıdan gelen her veri parçası, potansiyel bir tehdit olarak görülmelidir. SQL Enjeksiyonu (SQLi) ve Siteler Arası Betik Çalıştırma (XSS) gibi en yaygın saldırıları önlemek için:

  • Verinin türü, uzunluğu ve formatı her zaman kontrol edilmeli.

  • Kullanıcıdan gelen tüm girdilere kaçış karakterleri (sanitization) uygulanmalıdır.

 

2. Güvenilir Kimlik Doğrulama Kütüphaneleri

 

Kendi kimlik doğrulama mekanizmanızı yazmayın! Şifreleri saklamak için modern, kanıtlanmış ve güçlü şifreleme algoritmaları (Bcrypt, Argon2) kullanan, endüstri standardı kütüphaneleri tercih edin. Kullanıcı kimliğini doğrulamanın (Authentication) yanı sıra, sadece gerekli kaynaklara erişim yetkisini (Authorization) verdiğinizden emin olun (Least Privilege Prensibi).

 

3. Bağımlılık Güvenliği (Dependency Security)

 

Hiçbir yazılım izole değildir. Projenizde kullandığınız tüm üçüncü taraf kütüphaneler ve paketler (NPM, Composer, vb.), bilinen güvenlik açıkları (CVE’ler) açısından düzenli olarak taranmalıdır. Bu taramaları otomatikleştirerek eski veya zayıf bağımlılıkların derleme aşamasında sisteme girmesini engelleyin.

 

4. Ortamların Sıkı Ayrıştırılması

 

Geliştirme (Dev), Test (Staging) ve Üretim (Production) ortamları kesinlikle ayrı tutulmalıdır. Geliştirme verileri asla gerçek kullanıcı verilerini içermemeli, üretim şifreleri geliştirme kodunda yer almamalıdır. Sırlarınızı (API anahtarları, veritabanı şifreleri) kaynak koddan tamamen ayırın (örneğin, Environment Variables kullanarak).

 

5. HTTP Güvenlik Başlıklarının Yapılandırılması

 

Web uygulaması katmanında, tarayıcıların güvenliğini artıran HTTP güvenlik başlıklarını (Content Security Policy (CSP), HSTS, X-Frame-Options) daha projenin temel yapılandırmasına ekleyin. Bu basit adım, birçok modern istemci tarafı saldırı vektörünü (client-side attack) kod çalışmadan önce engeller.


Güvenlik, bir ürünün kalitesinin ve profesyonelliğinin temel bir bileşenidir. Geliştirme sürecinin en başında uygulanan bu 5 kontrol, sizi pahalıya mal olacak krizlerden korur ve müşterileriniz nezdinde teknik güvenilirliğinizi pekiştirir. Kodu yazarken güvenlik düşünmek, uygulamanızı hacklemek isteyenlerden bir adım önde olmanız demektir.


"Bir yazılımın iki temel işlevi vardır: Beklediğiniz gibi çalışması ve beklenmedik bir şekilde hacklenmemesi."

Anonim
Siber Güvenlik Uzmanı

One Comment:

  • Hayley Raymond
    at 5 yıl ago

    Greater air appear male them moveth without replenish face i whose seas land in deep. Abundantly after brought firmament. Behold created two earth above isn\’t, doesn\’t face.

    Reply

Leave a Reply