SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Rehberler

Bu rehber; web uygulamalarını kaba kuvvet giriş saldırılarından, kimlik bilgisi doldurmadan (credential stuffing) ve API kötüye kullanımından korumak isteyen geliştiriciler, DevOps mühendisleri ve teknik yöneticiler için hazırlanmıştır. Bu adımları izleyerek — hız sınırlama, hesap kilitleme, CAPTCHA ve izleme — otomatik saldırıların kullanıcı hesaplarınızı ele geçirme riskini önemli ölçüde azaltan katmanlı savunmalar uygulayacaksınız.

01

Tüm Saldırı Yüzeylerini Belirleyin

Herhangi bir kontrol eklemeden önce, uygulamanızda kaba kuvvet veya otomatik kötüye kullanıma hedef olabilecek her uç noktayı haritalayın. Kamuya açık bir giriş veya API uç noktasını gözden kaçırmak bile saldırganlara bir kapı açar.

  • Her kimlik doğrulama uç noktasını listeleyin: giriş, kayıt, şifre sıfırlama, e-posta doğrulama ve sihirli bağlantı giriş noktaları.
  • Kimlik bilgisi veya token kabul eden API uç noktalarını belirleyin (OAuth token değişimi, API anahtarı doğrulaması vb.).
  • Yönetici panellerini, hazırlama ortamlarını ve kullanıcıların kimliğini doğrulayan üçüncü taraf entegrasyon geri çağrılarını (callback) dahil edin.
  • Kullanıcı adı numaralandırma (enumeration) güvenlik açıklarını kontrol edin — geçerli ve geçersiz kullanıcı adları için farklı yanıtlar döndüren uç noktalar saldırganlara başlangıç noktası sağlar.
  • Makul hız sınırı eşikleri belirleyebilmek için her uç nokta için beklenen meşru trafik hacimlerini belgeleyin.
02

Hassas Uç Noktalara Hız Sınırlama Uygulayın

Hız sınırlama, tek bir istemcinin belirli bir zaman dilimi içinde yapabileceği istek sayısını kısıtlar. Otomatik saldırılara karşı ilk ve en geniş kapsamlı savunmadır — hem kaba kuvvet parola tahminini hem de kimlik bilgisi doldurmayı yavaşlatır.

  • Limitler uygulama sunucularınıza ulaşmadan önce zorlanacağı için hız sınırlamasını ters proxy veya yük dengeleyici düzeyinde uygulayın (ör. Nginx limit_req, HAProxy stick-table'ları, AWS WAF hız kuralları, Cloudflare Rate Limiting).
  • Giriş uç noktalarında sıkı limitler belirleyin — yaygın bir başlangıç noktası IP adresi başına dakikada 5–10 istektir.
  • Şifre sıfırlama ve e-posta doğrulama uç noktalarına ayrı ve daha sıkı limitler uygulayın (ör. IP başına 15 dakikada 3 istek).
  • Pek çok IP'ye yayılmış dağıtık saldırılara karşı savunmak amacıyla IP adresine ek olarak kullanıcı kimliğine (kullanıcı adı veya hesap kimliği) göre de hız sınırlaması yapın.
  • Meşru istemcilerin uç noktayı daha fazla zorlamadan zarif biçimde geri çekilebilmesi için Retry-After başlığıyla birlikte HTTP 429 (Too Many Requests) döndürün.
  • Hata mesajlarında bilgi sızdırmaktan kaçının — hız sınırlı istekler için başarısız girişlerle aynı genel mesajı döndürün.
  • API'ler için API ağ geçidi katmanında token-bucket veya kayan pencere hız sınırlaması uygulayın ve limitleri API spesifikasyonunuzda belgeleyin.
  • Sensagraph, açık uç noktalarınızı sürekli olarak hız sınırlama kontrollerinin varlığı açısından tarar ve sınırsız istekleri kabul edenleri işaretler.
03

Hesap Kilitleme ve Aşamalı Gecikmeler Uygulayın

Yalnızca IP başına hız sınırlama, dağıtık botnet'lere karşı yetersizdir. Hesap düzeyinde kilitleme ve aşamalı gecikmeler, saldırganın kaç farklı IP adresi kullandığından bağımsız olarak bireysel kullanıcı hesaplarını koruyan ikinci bir katman ekler.

  • Yapılandırılabilir sayıda başarısız giriş denemesinden sonra (ör. kayan 15 dakikalık pencerede 5–10 ardışık başarısız deneme) hesabı geçici olarak kilitleyin.
  • Meşru kullanıcılara karşı hizmet reddi yaratmaktan kaçınmak için kalıcı kilitler yerine geçici kilitlemeler (ör. 15–30 dakika) tercih edin; erken kilit açmak için e-posta onayı veya MFA gerektirin.
  • Alternatif veya tamamlayıcı olarak aşamalı gecikmeler (üstel geri çekilme) uygulayın — her başarısız deneme bir sonraki işlenmeden önce artan gecikme ekler (ör. 1 sn, 2 sn, 4 sn, 8 sn…).
  • Başarısız deneme sayaçlarını hızlı ve paylaşımlı bir veri deposunda (Redis veya Memcached) saklayın; böylece tüm uygulama örnekleri aynı sayacı paylaşır — yalnızca sunucu başına bellekte tutulmamalıdır.
  • Sayacı yalnızca başarılı girişte sıfırlayın; zaman tabanlı bir pencere de uygulamıyorsanız yalnızca zamanın geçmesiyle sıfırlamayın.
  • Bir kilitleme tetiklendiğinde hesap sahibine, zaman damgası ve denemelerin yaklaşık coğrafi kökeni dahil olmak üzere e-posta ile bildirim gönderin.
  • Kayıtlı e-posta adresine veya MFA cihazına erişim gerektiren self-servis kilit açma akışı sağlayın.
04

Eşik Başarısızlıklarından Sonra CAPTCHA Zorlukları Ekleyin

CAPTCHA zorlukları, her istekte değil, birkaç başarısızlıktan sonra devreye alındığında en etkilidir — bu sayede meşru kullanıcıların kullanıcı deneyimi olumsuz etkilenmez, ancak çözemeyen botlar engellenir.

  • Aynı IP'den veya aynı hesap için 3–5 ardışık başarısız giriş denemesinden sonra CAPTCHA zorluğu tetikleyin.
  • Meşru kullanıcılar için sürtünmeyi en aza indirmek amacıyla görünmez veya düşük sürtünmeli bir CAPTCHA çözümü kullanın (ör. Google reCAPTCHA v3, hCaptcha, Cloudflare Turnstile).
  • CAPTCHA token'larını sunucu tarafında doğrulayın — asla yalnızca istemci tarafı doğrulamaya güvenmeyin.
  • CAPTCHA'nın yalnızca giriş değil, kayıt ve şifre sıfırlama akışlarına da uygulandığından emin olun.
  • Erişilebilirlik gereksinimleri olan kullanıcılar için bir yedek seçenek sunun (sesli CAPTCHA, e-posta zorluğu).
  • CAPTCHA gizli anahtarlarını düzenli olarak değiştirin ve güvenli biçimde saklayın (kaynak kodu değil, ortam değişkenleri veya gizli yönetim sistemi).
05

Çok Faktörlü Kimlik Doğrulamayı (MFA) Zorunlu Kılın

Hız sınırlama ve kilitleme politikaları uygulanmış olsa bile, yeterli süre veya zayıf bir parola verildiğinde başarılı bir kaba kuvvet saldırısı teorik olarak mümkündür. MFA, doğru parolanın tek başına erişim sağlamaya yetmemesini garanti eder.

  • Tüm yönetici ve ayrıcalıklı hesaplar için MFA'yı zorunlu kılın — istisna olmaksızın.
  • Tüm kullanıcılara MFA sunun ve güvenlik avantajını açıkça ileterek uygulama içi istemler aracılığıyla benimsemeyi güçlü biçimde teşvik edin.
  • Minimum olarak zamana dayalı tek kullanımlık parolaları (Google Authenticator veya Authy gibi uygulamalar aracılığıyla TOTP) destekleyin.
  • En yüksek düzeyde kimlik avı ve kaba kuvvet direnci için donanım güvenlik anahtarlarını (FIDO2/WebAuthn passkey'ler) destekleyin.
  • SIM değiştirme riski nedeniyle yüksek değerli hesaplar için yalnızca SMS tabanlı MFA'dan kaçının; SMS'i birincil yöntem değil, yedek olarak değerlendirin.
  • MFA doğrulama girişimlerine de hız sınırlama ve kilitleme politikaları uygulayın — ikinci faktörü korumasız bırakmayın.
  • Güvenli hesap kurtarma kodları (tek kullanımlık, hash'lenmiş olarak saklanan) sağlayın ve kullanıcıları bunları güvenli biçimde saklamaları konusunda bilgilendirin.
06

Parola Politikalarını Sertleştirin

Kullanıcıların kolayca tahmin edilebilir parolalar belirlemesine izin verilirse güçlü hız sınırlama etkisiz hale gelir. Hız sınırlama kontrollerini sağlam parola politikalarıyla birleştirerek saldırganın her tahmininin değerini azaltın.

  • En az 12 karakter uzunluğunda parola zorunluluğu getirin; yeni uygulamalar için 16+ karakter önerilir.
  • Yeni parolaları bilinen ihlal edilmiş parolalar listesiyle karşılaştırın (ör. Have I Been Pwned Pwned Passwords API'si veya yerel bir veri seti kopyası kullanarak) ve eşleşenleri reddedin.
  • Kullanıcıları öngörülebilir kalıplara yönlendiren keyfi karmaşıklık kuralları (ör. zorunlu semboller) uygulamayın — uzunluk ve ihlal denetimi daha etkilidir.
  • Parolaları güçlü, yavaş bir algoritmayla hash'leyin: bcrypt (maliyet faktörü ≥ 12), Argon2id veya scrypt. MD5, SHA-1 veya tuzlanmamış hash'ler kesinlikle kullanmayın.
  • Bir ihlal şüphesi yoksa sık zorunlu parola rotasyonu uygulamayın — bu durum artımlı, öngörülebilir değişikliklere yol açar.
  • Parola içinde kullanıcı adı, alan adı veya ardışık karakter kullanımı gibi yaygın kalıpları tespit edip engelleyin.
07

Coğrafi Engelleme ve IP İtibar Filtrelemesi

Uygulama düzeyindeki hız sınırlamasının üzerine ağ düzeyinde kontroller eklemek, özellikle bilinen kötü amaçlı altyapıdan kaynaklanan büyük ölçekli otomatik saldırılara karşı ek bir bariyer sağlar.

  • Botnet'ler, Tor çıkış düğümleri veya bilinen kötü aktörlerle ilişkili IP'lerden gelen istekleri otomatik olarak engellemek için bir IP itibar akışı veya tehdit istihbaratı hizmeti entegre edin (ör. WAF veya CDN'niz aracılığıyla).
  • Yöneticileriniz öngörülebilir ağ konumlarından (ofisler veya VPN) çalışıyorsa yönetici panellerine IP beyaz listesiyle erişimi kısıtlamayı değerlendirin.
  • Kullanıcı tabanınız coğrafi olarak belirli bir bölgede yoğunlaşmışsa, beklenmedik ülkelerden yapılan girişleri sorgulayabilir veya engelleyebilirsiniz — ancak seyahat eden meşru kullanıcıların erişimi yeniden kazanabileceği net bir mekanizma sağlayın.
  • Kaba kuvvet girişim kaynaklarının otonom sistem numaralarını (ASN) günlüğe kaydedin ve inceleyin; sıkça kötüye kullanılan barındırma sağlayıcılarını tespit ederek gerekirse sağlayıcı düzeyinde engelleme uygulayın.
  • Aşırı engelleme yapmamaya dikkat edin — paylaşılan NAT ortamları (kurumsal proxy'ler, mobil operatörler) pek çok meşru kullanıcının aynı IP'nin arkasında görünmesine neden olabilir.
08

Kimlik Doğrulama Olaylarını Günlüğe Kaydedin ve Uyarı Kurun

Kontroller yalnızca çalıştıklarını doğrulayabildiğinizde ve atlatıldıklarında bunu tespit edebildiğinizde etkilidir. Kapsamlı günlükleme ve gerçek zamanlı uyarı, hem olay müdahalesi hem de eşiklerinizin sürekli ayarlanması için zorunludur.

  • Her kimlik doğrulama girişimini — başarı, başarısızlık, kilitleme ve hız sınırı tetiklemesi — zaman damgası, kaynak IP, kullanıcı ajanı ve hesap tanımlayıcısıyla (asla parolanın kendisiyle değil) günlüğe kaydedin.
  • Kimlik doğrulama günlüklerini uygun saklama politikalarıyla merkezi bir günlük yönetimi veya SIEM sistemine iletin (ör. ELK Stack, Splunk, Datadog, AWS CloudWatch).
  • Şunlar için uyarılar oluşturun: birden fazla hesapta ani başarısız giriş denemesi artışı (kimlik bilgisi doldurma); tek bir hesap için tekrarlanan kilitleme tetiklemeleri; ardışık başarısızlıklardan hemen sonra yeni bir ülke veya cihazdan başarılı giriş.
  • Uyarı eşiklerini normal trafik temel çizginize göre belirleyin — üç ayda bir gözden geçirip ayarlayın.
  • Hazırlama ortamında başarısızlık senaryolarını simüle ederek uyarı hattınızı düzenli olarak test edin.
  • Kimlik doğrulama günlüklerini en az 90 gün saklayın (PCI-DSS veya ISO 27001 gibi uyumluluk çerçeveleri tarafından gerekli kılınıyorsa daha uzun süre).
09

Hız Sınırlama ve Kilitleme Kontrollerinizi Test Edin

Test edilmemiş savunmalara güvenilmemelidir. Kontrollerinizin tüm ortamlarda ve her önemli kod veya altyapı değişikliğinden sonra beklendiği gibi davrandığını düzenli olarak doğrulayın.

  • Hızlı ardışık başarısız giriş denemelerini simüle eden ve 429 yanıtı ile kilitlemenin doğru eşiklerde tetiklendiğini doğrulayan otomatik entegrasyon testleri yazın.
  • Dağıtık sayacınızın (Redis vb.) tüm uygulama örnekleri arasında doğru biçimde paylaşıldığından emin olmak için hız sınırlamasını aynı anda birden fazla IP adresinden test edin.
  • Hız limitlerinin dağıtım sonrasında da devam ettiğini doğrulayın — sayaçlar yeniden başlatmalar ve kayan güncellemeler boyunca kalıcı olmalıdır.
  • Hesap kilit açma akışını uçtan uca test edin: kilitleme tetikleyin, bildirim e-postasını alın, kilit açma bağlantısını takip edin ve erişimin yeniden sağlandığını onaylayın.
  • Üretim ortamına girmeden önce regresyonların yakalanması için CI/CD hattınıza hız sınırlama ve kilitleme kontrollerini dahil edin.
  • Atlatmaları (ör. IP'leri döndürmek için X-Forwarded-For sahteciliği gibi başlık manipülasyonu) ortaya çıkarmak amacıyla özellikle kimlik doğrulama mekanizmalarını hedefleyen periyodik sızma testleri veya kırmızı takım egzersizleri gerçekleştirin.
  • IP tabanlı hız sınırlamasını atlatmak için X-Forwarded-For ve benzeri başlıkların yalnızca bilinen, meşru proxy adreslerinden güvenildiğinden emin olun — uygulamanız bu başlıklara körü körüne güveniyorsa saldırgan onları sahteleyebilir.
  • Sensagraph, hız sınırlama ve kaba kuvvet koruma kontrollerinin etkin ve doğru yapılandırılmış olduğunu doğrulamak için giriş ve hassas uç noktalarınızı otomatik olarak araştırır.
10

Kontrolleri Güncel Tutun ve Düzenli Olarak Gözden Geçirin

Hız sınırlama ve kaba kuvvet koruması bir kez kurulup unutulacak kontroller değildir. Saldırı teknikleri gelişir, trafik kalıpları değişir ve yeni uç noktalar eklenir. Düzenli bir gözden geçirme döngüsü, savunmalarınızın zaman içinde etkili kalmasını sağlar.

  • Üç ayda bir veya kullanıcı trafik hacminde önemli bir değişiklikten sonra hız sınırı eşiklerini gözden geçirin.
  • Yeni atlatma tekniklerini ortaya çıktıkça öğrenmek için teknoloji yığınınızla ilgili tehdit istihbarat akışlarına ve güvenlik uyarılarına abone olun.
  • Kimlik doğrulamaya dayalı akış veya API kimlik doğrulaması sunan her yeni özellik için geliştirme sürecinizde güvenlik şampiyonu veya güvenlik inceleme sürecine kimlik doğrulama güvenliğini dahil edin.
  • Kimlik doğrulamayla ilgili herhangi bir güvenlik olayından sonra olay sonrası analiz yapın ve kontrolleri buna göre güncelleyin.
  • Aktif bir olay sırasında görevdeki mühendislerin ayarları hızlıca anlayıp düzenleyebilmesi için hız sınırlama ve kilitleme yapılandırmanızı güvenlik çalışma kitabınızda belgeleyin.

Sıkça sorulan sorular

Hız sınırlama, bir kaynaktan (IP adresi, kullanıcı) belirli bir zaman diliminde gelen istek sayısını kısıtlayarak otomatik saldırıları genel olarak yavaşlatır. Hesap kilitleme ise belirli sayıda başarısız giriş denemesinden sonra belirli bir hesabı devre dışı bırakır veya kısıtlar. Her iki kontrol tamamlayıcıdır: hız sınırlama dağıtık saldırıları yavaşlatırken, hesap kilitleme saldırı birçok farklı IP adresinden gelse bile bireysel hesapları korur.

Yaygın bir başlangıç noktası, 15 dakikalık kayan pencerede 5–10 ardışık başarısız denemedir. Doğru sayı, kullanıcılarınızın sürtünmeye toleransına ve hesapların hassasiyetine bağlıdır. Yüksek değerli veya yönetici hesaplar için daha düşük bir eşik (3–5 deneme) önerilir. Meşru kullanıcıları süresiz kilitlemekten kaçınmak için her zaman kalıcı kilitler yerine geçici kilitlemeler kullanın.

Evet. Büyük botnet'ler veya proxy ağları kullanan saldırganlar, istekleri binlerce IP adresine dağıtarak IP başına limitleri atlatabilir. Bu nedenle IP tabanlı hız sınırlamasını hesap düzeyinde kilitleme, CAPTCHA, MFA ve IP itibar filtresiyle birleştirmeniz gerekir. Ayrıca X-Forwarded-For başlığı sahteciliğine dikkat edin — uygulamanız bu başlıklara körü körüne güveniyorsa saldırgan IP'leri döndürmek için onları sahteleyebilir.

Eşikler normal trafik temel çizginize göre uygun biçimde ayarlanırsa meşru kullanıcılar üzerindeki etki minimal olmalıdır. İyi davranan istemcilerin zarif biçimde geri çekilebilmesi için Retry-After başlığıyla birlikte net bir HTTP 429 yanıtı döndürün. Sınır durumlarda zor engeller yerine aşamalı gecikmeler kullanmak, zaman zaman hızlı istek yapan meşru kullanıcılar için sürtünmeyi azaltabilir.

İdeal olarak her ikisinde de. Hız sınırlamasını ters proxy, yük dengeleyici, CDN veya WAF düzeyinde uygulamak daha verimlidir; çünkü trafik uygulama sunucularınıza ulaşmadan durdurulur ve yük azalır. Uygulama düzeyindeki hız sınırlama (ör. çerçevenizde ara yazılım) ise altyapı araçlarının sağlayamadığı hesap düzeyinde ayrıntı ekler. Altyapı için geniş IP tabanlı limitler, uygulama için kullanıcı düzeyindeki limitler şeklinde katmanlı bir yaklaşım en sağlamlısıdır.

Kesinlikle. Şifre sıfırlama uç noktaları kötüye kullanım için birincil hedeflerdir: saldırganlar bunları geçerli e-posta adreslerini numaralandırmak, spam tetiklemek veya hesap ele geçirme girişimleri için kullanabilir. Şifre sıfırlama akışlarına giriş uç noktalarından daha sıkı limitler uygulayın (ör. IP başına 15 dakikada 3 istek) ve sıfırlama e-postasının kısa ömürlü, tek kullanımlık bir token içerdiğinden emin olun.

Sensagraph, giriş, şifre sıfırlama ve API kimlik doğrulama uç noktaları dahil web uygulamanızın açık uç noktalarını sürekli ve otomatik olarak tarayarak hız sınırlama ve kaba kuvvet koruma kontrollerinin etkin ve doğru yapılandırılmış olduğunu doğrular. Herhangi bir koruyucu yanıt tetiklemeden sınırsız hızlı istek kabul eden uç noktaları işaretleyerek ekibinize eyleme geçirilebilir bulgular sunar.