Blog'a Dön
GüvenlikWeb Tasarımİşletme

Web Sitesi Güvenliği: İşletmenizi Siber Tehditlerden Koruma Rehberi

Web sitenizi hack saldırılarından, veri ihlallerinden ve zararlı yazılımlardan nasıl korursunuz? İşletmeler için kapsamlı güvenlik rehberi.

KuloBayt20 Nisan 202512 dk okuma

Siber güvenlik artık yalnızca büyük kuruluşların gündemi değil. IBM'in 2024 Cost of a Data Breach raporuna göre bir veri ihlalinin küresel ortalama maliyeti 4,88 milyon dolara ulaştı; bu rakam bir önceki yıla kıyasla %10'luk bir artış anlamına geliyor. Verizon'un 2024 Data Breach Investigations Report (DBIR) verileri ise durumu daha da somutlaştırıyor: incelenen ihlallerin %68'inde insan kaynaklı bir hata veya sosyal mühendislik unsuru tespit edildi ve ihlallerin %62'sinde mali motivasyon ön plandaydı.

Küçük ve orta ölçekli işletmeler kendilerini güvende hissedebilir, ancak Verizon DBIR verilerine göre ihlallerin önemli bir bölümü 1.000'den az çalışana sahip kuruluşlarda gerçekleşiyor. Saldırganlar için hedef büyüklüğü değil, savunma zayıflığıdır.

Bu rehberde, web sitenizi korumak için bilmeniz gereken tehdit vektörlerini, savunma katmanlarını ve uygulamalı güvenlik adımlarını veriye dayalı bir yaklaşımla ele alıyoruz.

Güncel Tehdit Ortamı: Rakamlarla Gerçekler

Siber güvenlik alanındaki raporlar, tehdit ortamının yıldan yıla nasıl evrildiğini net bir şekilde ortaya koyuyor:

  • 4,88 milyon dolar: Bir veri ihlalinin 2024 küresel ortalama maliyeti (IBM Cost of a Data Breach Report 2024).
  • %68: İhlallerde insan faktörünün (hata, sosyal mühendislik) pay oranı (Verizon 2024 DBIR).
  • 194 gün: Bir ihlali tespit etmek için gereken ortalama süre (IBM 2024). Bu süre boyunca saldırganlar sistemlerde serbestçe hareket edebilir.
  • %15: İhlallerde üçüncü taraf yazılım ve tedarik zinciri zafiyetlerinin artan payı (Verizon 2024 DBIR).
  • %80+: Web uygulaması saldırılarında çalıntı kimlik bilgilerinin kullanıldığı oran (Verizon 2024 DBIR).

Bu istatistikler tek bir gerçeği vurguluyor: güvenlik bir lüks değil, iş sürekliliğinin temel bileşenidir.

OWASP Top 10: En Kritik Web Uygulama Güvenlik Riskleri

Open Worldwide Application Security Project (OWASP), web uygulamalarındaki en yaygın güvenlik risklerini düzenli olarak sınıflandırır. 2021 güncellemesiyle yayımlanan OWASP Top 10 listesi, sektörün referans standardı olarak kabul edilir.

A01: Broken Access Control (Kırık Erişim Kontrolü)

2021 listesinde birinci sıraya yükselen bu risk, kullanıcıların yetkileri dışındaki kaynaklara erişebildiği durumları kapsar. Bir kullanıcının URL parametresini değiştirerek başka bir kullanıcının verilerine ulaşması, IDOR (Insecure Direct Object Reference) olarak bilinen bu açığın klasik örneğidir.

A02: Cryptographic Failures (Kriptografik Hatalar)

Hassas verilerin (şifreler, kredi kartı bilgileri, kişisel veriler) şifrelenmeden veya zayıf algoritmalarla depolanması. MD5 veya SHA-1 gibi artık güvenli kabul edilmeyen hash fonksiyonlarının hala kullanılması bu kategoriye girer.

A03: Injection (Enjeksiyon)

SQL Injection, NoSQL Injection, OS Command Injection ve LDAP Injection gibi saldırılar bu kategoride yer alır. Saldırgan, güvenilmeyen veriyi bir yorumlayıcıya (interpreter) göndererek yetkisiz komutlar çalıştırır. Örneğin, bir giriş formuna ' OR '1'='1' -- gibi bir ifade yazıldığında, uygun korunma yoksa veritabanındaki tüm kayıtlara erişilebilir.

A04: Insecure Design (Güvensiz Tasarım)

2021'de listeye eklenen bu madde, güvenliğin tasarım aşamasında düşünülmediği sistemleri hedef alır. Tehdit modelleme yapılmadan, güvenlik gereksinimleri belirlenmeden geliştirilen uygulamalar bu risk altındadır.

A05: Security Misconfiguration (Güvenlik Yapılandırma Hataları)

Varsayılan şifrelerin değiştirilmemesi, gereksiz servislerin açık bırakılması, hata mesajlarında stack trace gibi hassas bilgilerin gösterilmesi ve güncellenmeyen yazılım bileşenleri bu kategoriye girer.

A06-A10: Diğer Kritik Riskler

  • A06 - Vulnerable and Outdated Components: Bilinen güvenlik açıkları olan kütüphane ve bileşenlerin kullanılması.
  • A07 - Identification and Authentication Failures: Zayıf kimlik doğrulama mekanizmaları, oturum yönetimi hataları.
  • A08 - Software and Data Integrity Failures: CI/CD pipeline'ları ve yazılım güncellemelerinin bütünlüğünün doğrulanmaması.
  • A09 - Security Logging and Monitoring Failures: Yetersiz loglama ve izleme nedeniyle saldırıların tespit edilememesi.
  • A10 - Server-Side Request Forgery (SSRF): Sunucunun, saldırgan tarafından kontrol edilen hedeflere istek göndermesinin sağlanması.

Derinlemesine Savunma (Defense in Depth) Stratejisi

Güvenlikte tek bir önlem yeterli değildir. ABD Ulusal Standartlar ve Teknoloji Enstitüsü (NIST) tarafından önerilen "defense in depth" (derinlemesine savunma) yaklaşımı, birden fazla güvenlik katmanının üst üste uygulanmasını ifade eder. Bir katman aşılsa bile diğer katmanlar korumaya devam eder.

Bu strateji şu katmanlardan oluşur:

  1. Ağ Katmanı: Güvenlik duvarı (firewall), DDoS koruması, ağ segmentasyonu
  2. Uygulama Katmanı: Güvenli kodlama, input doğrulama, WAF (Web Application Firewall)
  3. Veri Katmanı: Şifreleme, erişim kontrolü, veri maskeleme
  4. Kimlik Katmanı: Çok faktörlü kimlik doğrulama (MFA), sıfır güven (zero trust) politikaları
  5. Fiziksel Katman: Sunucu odası güvenliği, biyometrik erişim kontrolleri
  6. Operasyonel Katman: Güvenlik izleme, olay müdahale planları, çalışan eğitimleri

Tek bir güvenlik duvarı veya antivirüs yazılımı her tehdidi durduramaz. Derinlemesine savunma, "ya bu katman da aşılırsa?" sorusunu her adımda soran bir stratejidir.

SSL/TLS ve HTTPS: Şifrelemenin Teknik Temelleri

HTTPS, HTTP protokolünün TLS (Transport Layer Security) ile şifrelenmiş versiyonudur. Teknik süreç şöyle işler:

  1. TLS Handshake: Tarayıcı sunucuya bağlandığında, sunucu dijital sertifikasını (X.509) sunar. Bu sertifika, güvenilir bir Sertifika Otoritesi (CA) tarafından imzalanmıştır.
  2. Anahtar Değişimi: Tarayıcı ve sunucu, asimetrik kriptografi (genellikle ECDHE - Elliptic Curve Diffie-Hellman Ephemeral) kullanarak bir oturum anahtarı üzerinde anlaşır. Asimetrik kriptografide bir genel (public) ve bir özel (private) anahtar kullanılır.
  3. Simetrik Şifreleme: Oturum anahtarı oluşturulduktan sonra, tüm veri iletimi AES-256-GCM gibi hızlı simetrik şifreleme algoritmaları ile korunur.
  4. Forward Secrecy: ECDHE kullanımı sayesinde, sunucunun özel anahtarı ele geçirilse bile geçmiş oturumlar şifreli kalır.

HTTPS sadece veriyi şifrelemez; aynı zamanda veri bütünlüğünü (verinin aktarım sırasında değiştirilmediğini) ve sunucu kimlik doğrulamasını (bağlandığınız sunucunun gerçekten o sunucu olduğunu) garanti eder.

Google, 2014'ten bu yana HTTPS'yi bir sıralama sinyali olarak kullanıyor. Modern tarayıcılar ise HTTP sitelerini "Güvenli Değil" olarak işaretliyor. Let's Encrypt gibi ücretsiz sertifika otoriteleri sayesinde HTTPS'e geçişin teknik veya mali bir engeli kalmamıştır.

Kimlik Doğrulama ve Parola Güvenliği

Parola Hashleme: Neden ve Nasıl?

Parolaları düz metin (plaintext) olarak saklamak, en temel güvenlik hatalarından biridir. Parolalar, tek yönlü hash fonksiyonlarıyla saklanmalıdır; böylece veritabanı ele geçirilse bile orijinal parolalara ulaşılamaz.

Ancak her hash algoritması eşit güvenlikte değildir:

  • MD5 / SHA-1 / SHA-256: Bu genel amaçlı hash fonksiyonları çok hızlı çalıştığı için parola hashleme amacına uygun değildir. Bir saldırgan, modern GPU'larla saniyede milyarlarca MD5 hash'i deneyebilir.
  • bcrypt: 1999'dan beri kullanılan, kasıtlı olarak yavaş çalışan ve "cost factor" parametresiyle zorluk ayarlanabilen bir parola hashleme algoritmasıdır. Her hash işlemi otomatik olarak bir "salt" (rastgele değer) ekler.
  • Argon2: 2015 Password Hashing Competition kazananı olan Argon2, bellek yoğun (memory-hard) tasarımı sayesinde GPU ve ASIC tabanlı kaba kuvvet saldırılarına karşı bcrypt'ten daha dirençlidir. OWASP tarafından yeni projeler için önerilen ilk seçenektir.

Çok Faktörlü Kimlik Doğrulama (MFA)

Bir parolanın ne kadar güçlü olursa olsun ele geçirilme ihtimali vardır; phishing, veri ihlalleri veya keylogger yoluyla çalınabilir. MFA, kimlik doğrulamada birden fazla faktör kullanarak bu riski katmanlı biçimde azaltır:

  • Bildiğiniz bir şey: Parola veya PIN
  • Sahip olduğunuz bir şey: Telefon, donanım anahtarı (YubiKey gibi FIDO2/WebAuthn uyumlu cihazlar)
  • Olduğunuz bir şey: Parmak izi, yüz tanıma gibi biyometrik veriler

Microsoft'un yayımladığı verilere göre MFA, hesap ele geçirme saldırılarının %99,9'undan fazlasını engelleyebilir.

SMS tabanlı doğrulama, SIM swap saldırılarına karşı savunmasız olduğundan TOTP (Time-Based One-Time Password) uygulamaları (Google Authenticator, Authy) veya donanım anahtarları tercih edilmelidir.

Input Doğrulama ve Sanitizasyon

Güvenilmeyen kullanıcı girdileri, web uygulaması saldırılarının birincil vektörüdür. Etkili bir girdi güvenliği stratejisi iki aşamadan oluşur:

Doğrulama (Validation)

Gelen verinin beklenen formata, tipe ve aralığa uygun olduğunu kontrol etmek. Bir e-posta alanına girilen verinin gerçekten e-posta formatında olup olmadığını, sayısal bir alanın gerçekten sayı içerip içermediğini doğrulamak. Tercih edilen yaklaşım beyaz liste (allowlist) yöntemidir: Yalnızca izin verilen karakterleri ve formatları kabul edin, geri kalan her şeyi reddedin.

Sanitizasyon (Sanitization)

Gelen veri içindeki potansiyel olarak tehlikeli karakterlerin etkisiz hale getirilmesi. HTML etiketlerinin encode edilmesi (< yerine &lt;), SQL özel karakterlerinin kaçırılması (escaping) bu kategoriye girer. Parametreli sorgular (prepared statements) kullanmak, SQL injection'a karşı en etkili savunmadır.

Her iki adım da hem sunucu tarafında (server-side) hem de istemci tarafında (client-side) uygulanmalıdır. Ancak gerçek güvenlik katmanı her zaman sunucu tarafındadır; istemci tarafı kontroller kolayca atlanabilir.

HTTP Güvenlik Başlıkları

Modern web güvenliğinin önemli bir bileşeni, HTTP yanıt başlıklarıdır. Bu başlıklar tarayıcıya güvenlik politikalarını bildirir.

Content Security Policy (CSP)

CSP, tarayıcıya hangi kaynaklardan (script, stil, resim vb.) içerik yüklenmesine izin verildiğini bildirir. XSS saldırılarının etkisini önemli ölçüde azaltır.

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; frame-ancestors 'none';

Bu başlık, yalnızca kendi domaininizden ve belirttiğiniz güvenilir kaynaklardan script yüklenmesine izin verir. Saldırganın enjekte ettiği harici scriptler tarayıcı tarafından engellenir.

HSTS (HTTP Strict Transport Security)

Tarayıcıya, siteye yalnızca HTTPS üzerinden bağlanmasını söyler. Bu, SSL stripping saldırılarını önler.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Diğer Kritik Başlıklar

  • X-Frame-Options: DENY veya SAMEORIGIN: Clickjacking saldırılarını önler. Sitenizin bir iframe içinde yüklenmesini engeller.
  • X-Content-Type-Options: nosniff: Tarayıcının MIME type tahminini (sniffing) devre dışı bırakır.
  • Referrer-Policy: strict-origin-when-cross-origin: Hangi referrer bilgisinin paylaşılacağını kontrol eder.
  • Permissions-Policy: Kamera, mikrofon, konum gibi tarayıcı özelliklerine erişimi sınırlar.
  • Cross-Origin Resource Sharing (CORS): Hangi domainlerin API'nize istek gönderebileceğini belirler. Access-Control-Allow-Origin başlığını yalnızca güvendiğiniz domainlerle sınırlayın; * (wildcard) kullanımından kaçının.

Yedekleme Stratejisi: 3-2-1 Kuralı

ABD Bilgisayar Acil Durum Hazırlık Ekibi (US-CERT) tarafından önerilen 3-2-1 yedekleme kuralı, veri kaybına karşı kanıtlanmış bir stratejidir:

  • 3 kopya: Verilerinizin en az 3 kopyası olsun (orijinal + 2 yedek)
  • 2 farklı ortam: Yedekleri en az 2 farklı depolama ortamında tutun (yerel disk + bulut, veya NAS + harici disk)
  • 1 uzak konum: En az 1 yedek, fiziksel olarak farklı bir konumda olsun (farklı bir şehirdeki veri merkezi veya bulut depolama)

Yedekleme En İyi Uygulamaları

  • Otomatik ve zamanlanmış yedekleme: İnsan unutkanlığına bırakmayın
  • Şifreli yedekler: Yedekler de hassas veri içerir; AES-256 ile şifreleyin
  • Düzenli geri yükleme testleri: Hiç test edilmemiş bir yedek, yedek değildir. En az ayda bir geri yükleme testi yapın
  • Artımlı (incremental) yedekleme: Depolama ve bant genişliği tasarrufu için yalnızca değişen verileri yedekleyin
  • Saklama politikası: Günlük, haftalık ve aylık yedekleri farklı sürelerle saklayın

Olay Müdahale Planı (Incident Response Plan)

NIST SP 800-61 (Computer Security Incident Handling Guide) çerçevesine dayanan bir olay müdahale planı, her işletme için kritik öneme sahiptir. Bir güvenlik ihlali yaşandığında panik yerine sistematik bir süreç izlemek, hasarı en aza indirir.

1. Hazırlık

  • Olay müdahale ekibini belirleyin ve iletişim bilgilerini güncel tutun
  • Olay müdahale prosedürlerini yazılı olarak belgeleyin
  • Düzenli tatbikatlar yapın

2. Tespit ve Analiz

  • Güvenlik izleme araçlarından gelen uyarıları değerlendirin
  • Saldırının türünü, kapsamını ve etkilenen sistemleri belirleyin
  • Kanıtları koruyun (log dosyaları, sistem görüntüleri)

3. Sınırlama, Eradikasyon ve Kurtarma

  • Etkilenen sistemleri izole edin (ağdan ayırın)
  • Saldırı vektörünü tespit edip ortadan kaldırın
  • Temiz yedeklerden sistemleri geri yükleyin
  • Tüm kimlik bilgilerini sıfırlayın

4. İhlal Sonrası Aktiviteler

  • Ayrıntılı olay raporu hazırlayın
  • KVKK ve ilgili mevzuat gereğince etkilenen kişileri ve yetkili makamları bilgilendirin (Türkiye'de KVKK kapsamında 72 saat içinde Kişisel Verileri Koruma Kurulu'na bildirim zorunluluğu vardır)
  • Güvenlik açığının tekrarını önlemek için süreçleri iyileştirin
  • Çıkarılan dersleri (lessons learned) dokümante edin

Kapsamlı Güvenlik Kontrol Listesi

Aşağıdaki liste, web sitenizin güvenlik durumunu değerlendirmek için kullanabileceğiniz uygulamalı bir kontrol listesidir:

Temel Altyapı

  • SSL/TLS sertifikası aktif ve TLS 1.2+ kullanılıyor mu?
  • HSTS başlığı yapılandırıldı mı?
  • HTTP trafiği HTTPS'e yönlendiriliyor mu?
  • Sunucu yazılımları (OS, web server, runtime) güncel mi?
  • Kullanılmayan portlar ve servisler kapatıldı mı?

Uygulama Güvenliği

  • OWASP Top 10 riskleri için kontroller uygulandı mı?
  • Kullanıcı girdileri hem doğrulanıyor hem sanitize ediliyor mu?
  • Parametreli sorgular (prepared statements) kullanılıyor mu?
  • CSP, X-Frame-Options, X-Content-Type-Options başlıkları aktif mi?
  • CORS politikası yalnızca güvenilen domainleri kapsıyor mu?
  • Hata mesajları hassas bilgi sızdırmıyor mu?
  • Dosya yükleme alanları tip, boyut ve içerik kontrolü yapıyor mu?

Kimlik Doğrulama ve Erişim

  • Parolalar bcrypt veya Argon2 ile hashleniyor mu?
  • Çok faktörlü kimlik doğrulama (MFA) aktif mi?
  • Başarısız giriş denemeleri sınırlandırılmış mı (rate limiting / hesap kilitleme)?
  • Oturum (session) yönetimi güvenli mi? (Secure, HttpOnly, SameSite cookie bayrakları)
  • En az yetki prensibi uygulanıyor mu?

Veri Koruma ve Yedekleme

  • 3-2-1 yedekleme kuralı uygulanıyor mu?
  • Yedekler şifreli mi?
  • Geri yükleme testleri düzenli yapılıyor mu?
  • KVKK/GDPR uyumluluğu sağlanıyor mu?

İzleme ve Müdahale

  • Güvenlik logları merkezi olarak toplanıyor mu?
  • Olay müdahale planı yazılı ve güncel mi?
  • Düzenli güvenlik taramaları (vulnerability scan) yapılıyor mu?
  • Bağımlılıklar (dependencies) bilinen açıklara karşı taranıyor mu?

KuloBayt Güvenlik Yaklaşımı

KuloBayt olarak güvenliği geliştirme sürecinin her aşamasına entegre ediyoruz. "Shift left" prensibini benimsiyoruz: güvenlik testleri ve kontrolleri, projenin sonuna değil, en başına yerleştirilir.

  • Modern framework kullanımı: Next.js'in sunduğu otomatik XSS koruması, CSP desteği ve güvenli varsayılan yapılandırmalar
  • Varsayılan HTTPS: Tüm projelerimiz HTTPS ile dağıtılır
  • OWASP uyumlu geliştirme: Güvenli kodlama standartlarına uygun geliştirme süreçleri
  • Otomatik güvenlik taramaları: Bağımlılık güvenlik taraması (dependency audit) ve statik kod analizi
  • DDoS koruması ve CDN: Cloudflare altyapısı ile performans ve güvenlik bir arada
  • Bakım paketlerinde güvenlik izleme: Düzenli güncellemeler, güvenlik yamaları ve log analizi

Web sitenizin güvenlik durumunu profesyonel bir gözle değerlendirmek ister misiniz? Bizimle iletişime geçin ve siteniz için kapsamlı bir güvenlik analizi alalım.