Bilim - Teknoloji

Website Güvenliğinde Altyapı Şart

Abone Ol

Bir web projesinin güvenliği, “bir tane SSL takalım, tamamdır” seviyesinde bitmiyor. Bugün saldırılar çoğu zaman tarayıcı ile sunucu arasındaki trafiği değil; sunucunun içindeki zayıf halkaları, güncellenmemiş bileşenleri, yanlış yapılandırılmış servisleri ve paylaşımlı kaynakların yarattığı yan etkileri hedefliyor. Bu yüzden güvenli hosting arayışı, pazarlama cümlelerinden çok altyapı gerçeğiyle ölçülmeli. Özellikle büyüyen projelerde vds sunucu tercihinin gündeme gelmesi de tesadüf değil: izolasyon, kontrol ve görünürlük, güvenliğin üç temel direği.

İşe doğru yerden başlamak için ilk soru şu olmalı: “Ben güvenliği nerede kaybediyorum?” Eğer hedefiniz gerçekten güvenlikse, temeli sağlam bir barındırma yaklaşımı seçmek gerekiyor. Bu çerçevede güvenlik odaklı hosting yaklaşımını bir “paket adı” gibi değil, işletim sistemi düzeyinden yedek stratejisine kadar uzanan bir disiplin olarak düşünün.

SSL tek başına yetmez: asıl risk nerede?

SSL/TLS, veri iletimini şifreler; yani ziyaretçi ile sunucu arasındaki trafiği “dinlenmeye” karşı korur. Bu önemli ama saldırıların çoğu artık farklı yerden geliyor. Saldırgan, şifreli trafiği kıramıyorsa trafikten içeri girmeye çalışır: zayıf bir parola, açık kalmış bir yönetim paneli, sızdırılmış bir API anahtarı, güncel olmayan bir eklenti, yanlış izinlerle yazılabilir bir dizin… Liste uzar.

Asıl risk genellikle “sunucunun kapısı” değil, “evin içi”dir. WordPress’te bir eklenti açığı, bir framework’teki RCE zafiyeti, panel tarafında zayıf iki faktör kurgusu, log dosyalarının dışarı sızması, debug modunun açık kalması… Bunların hiçbiri SSL ile çözülmez. SSL, güvenliğin başlangıç çizgisidir; bitiş çizgisi değil.

Bu noktada iki şey belirleyici olur: saldırı yüzeyini daraltmak ve oluşan olayı hızlı fark edebilmek. Fark edilmeyen ihlal, en pahalı ihlaldir. Bir site “çalışıyor” diye güvende sayılmaz; saldırgan bazen sadece içeride sessizce kalır, veri toplar, spam enjekte eder, mail kuyruğu üzerinden itibarınızı yakar, SEO’nuzu çökertecek bağlantılar basar.

Güncelleme disiplini: saldırıların çoğu buradan girer

Güncelleme konusu çoğu projede “boş vakte bırakılan” bir iş gibi yönetiliyor. Oysa saldırganların otomasyonla taradığı dünyada, geciken her güncelleme bir risk çarpanı demek. Buradaki kilit nokta, rastgele “update” yapmak değil; disiplinli bir güncelleme döngüsü kurmak.

Önce en temel: işletim sistemi paketleri, web sunucusu (Nginx/Apache), PHP sürümü, OpenSSL, kernel güncellemeleri… Bunlar geciktiğinde, saldırganın işi kolaylaşır. Üst katmanda ise CMS çekirdeği, tema/eklenti zinciri ve bağımlılıklar (composer/npm paketleri) var. En sık görülen senaryo şudur: “Bir eklenti yıllardır güncellenmemiş ama ‘şimdilik sorun çıkarmıyor’ diye duruyor.” İşte saldırıların çoğu tam oradan girer.

Güncelleme disiplininin temel prensibi: önce test, sonra canlı. Basit bir staging ortamı bile (aynı sunucu üzerinde ayrı bir instance veya ayrı bir alt alan adı) ciddi fark yaratır. Ayrıca “güncelleme sonrası geri dönüş planı” olmazsa güncellemeyi ertelersiniz; ertelendiğinde de açık büyür. Bu yüzden, yedek ve sürümleme (en azından dosya + veritabanı snapshot) güncelleme kültürünün parçası olmalı.

Bir de görünmeyen taraf var: otomasyon. Cron’lar, webhook’lar, entegrasyon anahtarları, ödeme altyapısı callback’leri… Bunlar güncel değilse veya gereksiz yetkilerle çalışıyorsa, saldırganın “içeriye geçiş bileti” olur. Güncelleme, yalnızca yazılım sürümü değil; yapılandırma ve yetki modelini de kapsar.

WAF ve rate-limit mantığı (kısa, net)

WAF (Web Application Firewall), çoğu zaman yanlış anlaşılıyor: “WAF kurdum, bitti.” Hayır. WAF bir kalkan değil, doğru ayarlanırsa işe yarayan bir filtre. Mantık basit: bilinen kötü kalıpları yakala, anomaliyi gör, şüpheli isteği yavaşlat ya da kes.

WAF tarafında en sık yapılan hata, “her şeyi blokla” hevesiyle false-positive üretmek. Bu hem kullanıcıyı kaçırır hem de ekipte WAF’a güveni düşürür. Doğru yaklaşım; kritik uç noktalar için (login, xmlrpc, wp-admin, api endpoint’leri, cart/checkout sayfaları) daha sıkı; içerik sayfaları için daha esnek bir kurgu kurmaktır. Ayrıca kural setlerini “körlemesine” değil, trafik davranışınıza göre uyarlamak gerekir.

Rate-limit (oran sınırlama) ise saldırganın hızını keser. Bruteforce, credential stuffing, bot taraması, endpoint abuse… Bu tür saldırılar genellikle hızlı ve tekrarlıdır. Oran sınırlama ile “deneme sayısını” kontrol altına alırsınız. Buradaki incelik şudur: IP bazlı limit tek başına yetmez; bazı saldırılar dağıtık gelir. Bu yüzden path bazlı, kullanıcı bazlı, hatta davranış bazlı limit daha akıllıdır. Basitçe söylemek gerekirse: WAF kötü isteği tanır, rate-limit kötü niyeti yorup etkisizleştirir.

Yedekleme stratejisi: 3-2-1 yaklaşımı

Güvenliğin en gerçekçi testi şu sorudur: “Bir şey olursa kaç dakikada ayağa kalkarım?” Yedek yoksa, bu sorunun cevabı genellikle “çok geç” olur. Yedek var ama yanlışsa, sonuç değişmez. O yüzden yedekleme, sadece kopya almak değil; doğru stratejiyi kurgulamaktır.

3-2-1 yaklaşımı basit bir omurga sunar: verinin üç kopyası, iki farklı ortam, bir kopya offsite. Pratikte bu; sunucu üzerinde hızlı geri dönüş için snapshot, farklı bir depolama alanında düzenli yedek (ör. obje depolama), bir de sunucudan tamamen bağımsız ve mümkünse erişimi kısıtlı (immutable/versiyonlu) bir kopya demek. Ransomware senaryosunda en değerli yedek, “silinmesi zor” olan yedektir.

Yedeklemede asıl kritik konu, geri yükleme testidir. Kimse “yedek alıyoruz” cümlesine karşı çıkmaz; ama geri yükleme test edilmemişse, yedek çoğu zaman sürpriz çıkarır: eksik veritabanı, bozuk arşiv, yanlış dizin, saatlerce süren restore… Düzenli aralıklarla küçük bir geri yükleme provası yapmak, gerçek olay anında panik yerine kontrol sağlar.

Ayrıca yedek stratejisi, sadece site dosyası ve veritabanı değildir. Konfigürasyon dosyaları, özel cron’lar, SSL sertifika anahtarları, uygulama secret’ları, DNS zone çıktıları, mail yapılandırması… Bunlar yedek planına dahil edilmezse “site açıldı ama servisler çalışmıyor” senaryosu yaşanır.

Paylaşımlı ortamda izolasyon riski nedir?

Paylaşımlı hosting, doğru yönetildiğinde birçok proje için ekonomik ve pratik bir çözümdür. Ancak güvenlik perspektifinden bakınca, paylaşımlı ortamın doğal bir gerçeği vardır: aynı fiziksel kaynak üzerinde birden çok müşteri çalışır. “Aynı sunucuda komşu olmak” bazen sadece performans değil, güvenlik açısından da anlam taşır.

İzolasyon riski denildiğinde, çoğu kişi “dosyalarıma başkası erişir mi?” diye düşünür. Bu en kaba hali. Daha kritik risk, sistem seviyesinde bir açık olduğunda ortaya çıkar: kernel veya altyapı bileşenlerindeki bir zafiyet, yanlış yapılandırılmış izinler, zayıf kullanıcı ayrımı, ortak servislerin yanlış izolasyonu… Bunlar nadir ama etkisi büyük senaryolardır.

Bir diğer mesele, “yan etkiler”dir. Komşu hesap spam saldırısına uğrar, sunucu IP itibarı düşer; siz mail atamaz hale gelirsiniz. Komşu aşırı kaynak tüketir, sizin siteniz yavaşlar ve siz bunu “saldırı mı, yoğunluk mu?” diye ayırt edemezsiniz. Paylaşımlı ortamın en zor tarafı budur: görünürlük ve kontrol sınırlıdır. Güvenlik olaylarında kontrolün sınırlı olması, müdahale hızını düşürür.

Bu yüzden paylaşımlı ortamda güvenlik, sadece sizin uygulama ayarlarınızla değil, ortamı yöneten altyapının izolasyon kalitesiyle de ilgilidir. Uygulama tarafı güçlü olsa bile, platform zayıfsa risk büyür.

VDS güvenliğe nasıl katkı sağlar? (izolasyon + kontrol)

Bir VDS sunucuya geçiş, güvenlik tarafında iki büyük avantaj getirir: izolasyon ve kontrol. İzolasyon, “komşu etkisi”ni azaltır; kontrol ise güvenliği bir tercih değil, uygulanabilir bir politika haline getirir.

İzolasyon tarafı net: kaynaklar size ayrılır, sistem davranışını daha öngörülebilir hale getirir. Güvenlikte bu öngörülebilirlik altın değerindedir. Log’ları daha sağlıklı yorumlarsınız, anomaliyi daha hızlı fark edersiniz, saldırı anında “başkası yüzünden mi oldu?” belirsizliği azalır.

Kontrol tarafında ise oyun değişir. Kendi firewall kurgunuzu yapabilirsiniz; SSH erişimini daraltabilir, yönetim panelini farklı portlara alabilir, sadece belirli IP’lere izin verebilir, fail2ban gibi mekanizmaları daha etkin kullanabilirsiniz. Ayrıca uygulama katmanı dışında, sistem katmanında da sertleştirme (hardening) uygulanabilir: gereksiz servisleri kapatma, minimum paket prensibi, doğru kullanıcı/izin modeli, düzenli log rotasyonu, izleme/uyarı mekanizmaları…

Elbette VDS tek başına “otomatik güvenlik” anlamına gelmez. Kontrol sizdeyse sorumluluk da sizdedir. Ama ciddi projelerde güvenliği büyütmenin yolu da buradan geçer: sorumluluğu sahiplenebileceğiniz bir ortam. Bu aşamada doğru paket seçimi de önemlidir. İhtiyacınız izolasyon ve kaynak garantisiyse, izole kaynaklı VDS paketleri gibi seçenekler, güvenliğin “altyapı şart” kısmını daha somut hale getirir.