Çoğu işletme sahibi güvenlik duvarını satın alınıp bir kez açılan bir kutu sanır. Sunucu panelinde "WAF: Aktif" yazısını görür, yeşil tiki fark eder ve konuyu kapatır. Oysa senin işin sıradan bir kurumsal tanıtım sitesi değil; içinde anında teslim edilen kod, bakiye, cüzdan ve iade edilemeyen dijital stok duran bir e-pin satış scripti işletiyorsun. Burada bir güvenlik açığı "sitem yavaşladı" demek değil, "stoğum gitti, parası gelmedi" demektir.
Gerçek şu: saldırgan senin ana sayfanla hiç ilgilenmiyor. Onun ilgilendiği şey ödeme bildiriminin düştüğü adres, bakiye yükleme uç noktası, kupon doğrulama isteği ve yönetici girişi. Hazır kalıp kurallar bu adresleri tanımaz, çünkü bir dijital ürün satış scriptinin iş akışını bilmez. Bu yazıda, kendi kurallarını yazarken hangi katmanda neyi durdurman gerektiğini, hangi kuralın cironu koruduğunu ve hangisinin müşterini kapıda bıraktığını tek tek açacağım.
Saldırgan Neden Ana Sayfanı Değil, Doğrudan Ödeme Callback'ini Deniyor?
Otomatik tarayıcılar bir siteye girdiğinde önce yapı tahmini yapar. Kullandığın altyapının klasör mantığını, ödeme bildirim adresini, kur güncelleme betiğini ve yönetim paneli yolunu bilinen kalıplarla dener. Ana sayfayı sadece ayakta olup olmadığını anlamak için çeker. Değerli olan, doğrulanmadan çalıştırılabilecek bir uç noktadır.
Bir e-pin scriptinde en kritik yüzey, ödeme sağlayıcısının bildirim gönderdiği adrestir. Bu adres tanım gereği dışarıya açıktır, oturum istemez ve çoğu zaman sadece imza kontrolüyle korunur. Eğer WAF'ında bu adres için kaynak IP kısıtı yoksa, saldırgan sahte bildirim göndererek bakiye şişirmeyi dener. Dener demek başarır demek değil; ama denemesini binlerce kez ücretsiz yapabiliyorsa, bir gün imza mantığındaki küçük bir hatayı bulur.
Bu yüzden ilk kuralın şu olmalı: ödeme bildirim adreslerine sadece sağlayıcının ilan ettiği IP bloklarından erişim. Geri kalan her istek daha uygulamaya ulaşmadan, güvenlik duvarı katmanında ölür.
Güvenlik Duvarı Katmanları: Hangi Kural Tam Olarak Nerede Çalışır?
Kafa karışıklığının kaynağı, üç ayrı şeye aynı ismin verilmesidir. Ağ güvenlik duvarı port seviyesinde çalışır ve 3306 gibi veritabanı portlarını dünyaya kapatır. Kenar WAF (CDN tarafındaki katman) istek sunucuna ulaşmadan başlık, yol ve gövde analizini yapar. Uygulama içi kontroller ise iş mantığını bilen tek katmandır; "bu kullanıcı bu bakiyeyi çekebilir mi" sorusunu yalnızca o cevaplayabilir.
Bu üçünü birbirinin yerine koymaya çalışmak en sık gördüğüm hata. Kenar katmanına iş mantığı yazmaya kalkarsan kural devasa ve kırılgan olur. Uygulamaya kaba kuvvet filtresi yazarsan sunucu kaynaklarını boşa harcarsın, çünkü istek zaten PHP sürecini ayağa kaldırmıştır. Doğru yaklaşım işi bölmektir.
| Katman | Neyi durdurur | Maliyeti | Yanlış pozitif riski |
|---|---|---|---|
| Ağ / port filtresi | Veritabanı, önbellek, yönetim portlarına dış erişim | Sıfıra yakın | Yok |
| Kenar WAF (CDN) | Kalıp tarama, enjeksiyon imzası, coğrafi blok, yol kara listesi | Çok düşük | Orta |
| Sunucu WAF (modsec benzeri) | Gövde analizi, dosya yükleme türü, başlık tutarsızlığı | Düşük | Yüksek |
| Uygulama kontrolü | Yetki, bakiye, sipariş sahipliği, imza doğrulama | Orta | Çok düşük |
| Kayıt ve uyarı | Hiçbir şeyi; sadece görünürlük sağlar | Düşük | Yok |
Sadece On İki Kural Trafiğin Büyük Kısmını Neden Temizliyor?
Yüzlerce kural yazmaya gerek yok. Otomatik trafiğin ezici bölümü aynı birkaç davranışı tekrarlar: bilinen yönetim yollarını dener, uzantısı olmayan yedek dosyaları arar, sorgu dizesine tırnak ve yorum karakteri enjekte eder, kimlik doğrulama uçlarına listeyle vurur.
Bu yüzden bir e-pin satış yazılımında benim önerdiğim çekirdek kural seti kısadır: yedek ve sürüm dosyası uzantılarını tamamen kapat, kurulum ve yükseltme dizinlerini kalıcı olarak reddet, yönetici yolunu tahmin edilemez hale getir ve o yola sadece belirli ağlardan izin ver, ödeme uçlarını IP ile daralt, dosya yükleme alanlarında sadece beklenen görsel türlerini kabul et, uzun ve anlamsız sorgu dizelerini kes.
Bu kurallar dar ve net olduğu için müşteri trafiğine neredeyse hiç dokunmaz. Geniş, "her şüpheliyi engelle" tarzı imza paketleri ise tam tersine çalışır: gerçek alıcıyı keser, saldırganı yavaşlatmaz.
Engellenen isteklerin kaynak dağılımı
- Yol ve dosya taraması 45%
- Enjeksiyon denemesi 25%
- Giriş zorlaması 20%
- Diğer / tanımsız 10%
Yanlış Pozitif Korkusu Seni Neden Savunmasız Bırakıyor?
Pek çok satıcı bir kez agresif bir kural paketi açıp müşterilerinden şikâyet aldıktan sonra tüm WAF'ı kapatır. Bu, camını bir kez kırdın diye evi kapısız bırakmak gibi. Doğru yol iki aşamalıdır: kuralı önce sadece kaydet kipinde çalıştır, bir hafta boyunca neyi keseceğini izle, sonra gerçekten zararlı olanları engelleme kipine al.
Bir epin yazılım kurulumunda en çok yanlış pozitif üreten üç yer bellidir: ürün açıklaması gibi uzun metin alanları, toplu stok yükleme dosyaları ve destek talebine eklenen ekran görüntüleri. Bu üç uç nokta için kural gevşetmesi tanımlaman, kalan yüzeyde sert kalmanı sağlar. "Ya hep ya hiç" yaklaşımı en pahalı olanıdır.
Panel Girişini Coğrafi ve Kimlik Katmanıyla Nasıl Kilitlersin?
Yönetim paneli tek bir şifreye bağlıysa, güvenlik duvarı yazman bir şeyi değiştirmez. Buradaki mantık katman eklemektir. İlk katman yolun gizlenmesi: tahmin edilebilir bir yönetici adresi yerine tahmin edilemeyen bir yol. İkinci katman erişim kısıtı: panele yalnızca senin ve ekibinin bağlandığı ağlardan giriş. Üçüncü katman ikinci faktör.
Sahada çalışan basit bir düzen var: yönetim yolu için coğrafi olarak yalnızca faaliyet gösterdiğin ülkeye izin vermek, buna ek olarak başarısız giriş denemesinde artan gecikme uygulamak. Saldırgan için maliyet kat kat artar, senin için hiçbir sürtünme oluşmaz. Bayi paneli gibi dışarıya açık kalması gereken alanlarda coğrafi bloğu değil, oturum ve cihaz doğrulamasını tercih et.
Yönetim paneline giriş başarısız olduğunda cevabı 1, 2, 4, 8 saniye şeklinde kademeli geciktir. Bu tek değişiklik, liste denemelerini pratikte imkânsız hale getirir ve gerçek kullanıcıyı hiç rahatsız etmez.
Kuralı Yazdın, Peki O Kaydı Kim Okuyor?
Görünürlük olmadan güvenlik duvarı sadece bir umut. Haftada bir kez engellenen isteklerin en çok hangi yollara gittiğine bakman, o ay neyin hedef alındığını sana söyler. Aynı IP bloğundan gelen tekrarlı denemeler, bilmediğin bir uç noktanın dışarıya sızdığını gösterebilir.
İyi bir dijital ürün satış yazılımı bu kayıtları yönetici tarafında okunabilir hale getirir: hangi yönetici hangi IP'den girdi, hangi sipariş hangi kullanıcı tarafından iptal edildi, hangi bakiye düzeltmesi kim tarafından yapıldı. WAF dış kapıyı tutar; iç kayıt ise sorun çıktığında sana zaman kazandırır.
| Kontrol | Yapıldı mı | Sıklık | Öncelik |
|---|---|---|---|
| Veritabanı ve önbellek portları dışa kapalı | Tek seferlik doğrulama | Kurulumda | Kritik |
| Ödeme bildirim adresi IP ile daraltıldı | Sağlayıcı listesi güncel mi | 3 ayda bir | Kritik |
| Yönetim yolu gizli ve erişimi kısıtlı | Ekip ağları tanımlı mı | Personel değişiminde | Yüksek |
| Yedek / kurulum dosyaları erişilemez | Dizin listeleme kapalı mı | Her güncellemede | Yüksek |
| Dosya yükleme türü beyaz listede | Görsel dışı tür reddediliyor mu | Aylık | Yüksek |
| Engellenen istek kaydı gözden geçirildi | Rapor okunuyor mu | Haftalık | Orta |
| Kural değişiklikleri önce kayıt kipinde test edildi | Süreç var mı | Her kuralda | Orta |
Buraya kadar anlattığım kurallar tek başına bir liste. Asıl fark, bunların kullandığın altyapıyla uyumlu çalışmasında. Hazır kurulan bir e-pin yazılımı kendi uç noktalarını, ödeme akışını ve yönetici yollarını biliyorsa, güvenlik duvarı kurallarını sıfırdan keşfetmek zorunda kalmazsın. Panelin sana "şu adres dışa açık, şu adres kısıtlı olmalı" diye söylüyorsa, işin yarısı bitmiş demektir.
Güvenliği sonradan eklenen bir yama olarak değil, kurulumun parçası olarak al
Pinova, e-pin ve dijital ürün satan işletmeler için geliştirilen lisanslı satış yönetim yazılımıdır. Yönetim yolu gizleme, erişim kaydı, ödeme doğrulama ve rol bazlı yetki yapısı kutudan çıkar.
Kenar WAF kullanıyorsam sunucu tarafında ayrıca kural yazmam gerekir mi?
Gerekir. Kenar katmanı atlatılabilir; birisi sunucunun gerçek IP'sini bulursa doğrudan bağlanmayı dener. Sunucuda yalnızca CDN bloklarından gelen trafiği kabul eden bir kural, bu riski kapatır.
Coğrafi engelleme satışımı düşürür mü?
Müşteri tarafında uygularsan evet, düşürebilir. Bu yüzden coğrafi kısıtı sadece yönetim ve bayi girişi gibi iç yüzeylerde kullan; vitrin ve ödeme akışını açık tut.
Kural paketini açtım, bazı siparişler kayboluyor. Ne yapmalıyım?
Önce tüm paketi engelleme kipinden kayıt kipine al, sonra hangi kural kimliğinin tetiklendiğini kayıtlardan bul. Genelde suçlu tek bir gövde analizi kuralıdır; onu ilgili uç nokta için devre dışı bırakmak yeterli olur.
Güvenlik duvarı beni fidye yazılımından da korur mu?
Hayır. WAF gelen isteği filtreler; sunucu içi bir tehdit için ayrı bir savunma gerekir. Düzenli, sunucudan ayrı bir yerde tutulan ve geri yükleme testi yapılmış yedek, tek gerçek çözümdür.
Güvenlik duvarı kuralları, iyi kurulmuş bir satış altyapısının üstüne oturduğunda anlam kazanır. Hangi uç noktanın dışa açık kalması gerektiğini, yönetim tarafının nasıl ayrıştırıldığını ve erişim kaydının nasıl tutulduğunu kendi gözünle görmek istiyorsan, özellik listesine ve fiyat seçeneklerine bak; ardından canlı demo üzerinden panelin içinde dolaşıp bu katmanların gerçekte nasıl çalıştığını dene.

