Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma
Zayıf oturum yönetiminin, kimlik bilgisi doldurmanın ve güvenli olmayan serileştirme açma güvenlik açıklarının saldırganların hesapları ele geçirip kod çalıştırmasına nasıl olanak tanıdığını inceleyin.
Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Bozuk Kimlik Doğrulama Nedir?
Broken authentication, bir uygulamanın kullanıcı kimliğini doğrulama ve oturumları yönetme biçimindeki zayıflıkları ifade eder. Kimlik doğrulama bozuk olduğunda attacker'lar Password'ları, anahtarları veya oturum belirteçlerini ele geçirerek başka kullanıcıların kimliğine bürünebilir. Bu OWASP İlk 10 kategorisi; zayıf kimlik bilgileri, yetersiz oturum yönetimi, eksik MFA ve güvenli olmayan kimlik bilgisi depolama gibi çok çeşitli açıkları kapsar.
Kimlik Bilgisi Doldurma ve Password Saçma
Credential stuffing, önceki veri ihlallerinden elde edilen username/password çiftlerinden oluşan geniş listeleri kullanır ve Password tekrarından yararlanarak bunları başka sitelerde dener. Password spraying ise bunun tersini yapar: hesap kilitleme eşiklerine takılmamak için yaygın Password'lardan oluşan küçük bir kümeyi (ör. Password1!) çok sayıda hesapta dener. Her iki saldırı da zayıf Password politikaları ve MFA eksikliği nedeniyle başarılı olur.
# Password spraying concept (defensive awareness)
# Attacker tries 'Password1!' against 10,000 accounts
# rather than trying 10,000 passwords against 1 account
# This avoids triggering lockout policies (e.g., 5 attempts/account)
# Defense: MFA + adaptive authentication + rate limitingZayıf Oturum Yönetimi
Oturumlar, kimliği doğrulanmış kullanıcıları uygulama durumlarına bağlar. Weak session management açıkları şunları içerir: tahmin edilebilir oturum belirteci değerleri (attacker'ların tahmin edebileceği ardışık ID'ler), Never süresi dolan belirteçler, HTTPS yerine HTTP üzerinden iletilen belirteçler ve Logout sırasında belirteçlerin geçersiz kılınmaması. Geçerli bir oturum belirteci elde eden bir attacker, Password'u bilmeden kullanıcının kimliğine bürünebilir.
# Signs of weak session management:
# /login response sets:
# Set-Cookie: session=1042 (predictable, sequential)
# Missing: Secure; HttpOnly; SameSite flags
# Missing: session expiry / Max-Age
# Logout does NOT invalidate server-side sessionOturum Sabitleme ve Ele Geçirme
Session fixation, kurbanı attacker tarafından seçilen bir oturum ID'sini kullanmaya zorlar. Örneğin attacker, önceden ayarlanmış bir oturum çerezi içeren bir bağlantı gönderir; kurban kimliğini doğruladıktan sonra attacker hesaba erişmek için aynı oturum ID'sini kullanır. Session hijacking, mevcut bir oturum belirtecinin XSS, ağ dinleme (şifrelenmemiş bağlantılarda) veya çalınmış çerezler aracılığıyla ele geçirilmesidir. Çözüm: girişten sonra oturum ID'lerini yeniden oluşturun ve her yerde HTTPS kullanın.
Güvenli Olmayan Password Depolama
Password'ları düz metin olarak veya zayıf özetleme (MD5, SHA-1) kullanarak depolamak kritik bir kimlik doğrulama hatasıdır. Bir veritabanı ihlal edildiğinde düz metin Password'lar ve zayıf özetler hemen kullanılabilir. Secure password storage, Password'lar için tasarlanmış uyarlanabilir bir özetleme algoritması gerektirir: rastgele, kullanıcıya özel bir salt ile bcrypt, Argon2 veya PBKDF2. Bu algoritmalar kasıtlı olarak yavaştır ve çevrimdışı kırmayı hesaplama açısından maliyetli hale getirir.
# Python example — secure password hashing with bcrypt
import bcrypt
# Hash a password (includes random salt automatically)
password = b'UserSuperSecret123'
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Verify
bcrypt.checkpw(password, hashed) # returns TrueGüvenli Olmayan Serileştirme Nedir?
Serialization, bir nesnenin durumunu depolama veya iletim için bir biçime (JSON, XML, ikili) dönüştürür. Deserialization, nesneyi bu biçimden yeniden oluşturur. Insecure deserialization, bir uygulamanın attacker tarafından denetlenen verileri doğrulama yapmadan serileştirmeden çıkarması durumunda ortaya çıkar; bu, attacker'ların serileştirilmiş nesneleri değiştirerek uygulama mantığını yönlendirmesine, ayrıcalıkları yükseltmesine veya Server üzerinde rastgele kod çalıştırmasına olanak tanır.
Serileştirmeden Çıkarma Saldırısı Örneği
Yaygın bir saldırı pattern'ı, çerezlerde veya API parametrelerinde aktarılan serileştirilmiş nesneleri içerir. Örneğin, güvenilmeyen veriler üzerinde ObjectInputStream.readObject() kullanan bir Java uygulaması, popüler kitaplıklardaki (Apache Commons Collections) gadget zincirleri aracılığıyla Remote Code Execution (RCE) tetikleyebilir. Attacker, Malicious bir serileştirilmiş yük hazırlar, bunu uygulamaya gönderir ve kod serileştirmeden çıkarma sırasında, çoğu zaman herhangi bir kimlik doğrulama denetimi çalışmadan önce yürütülür.
# Insecure deserializing pattern (Python pickle — dangerous)
import pickle
# Attacker-controlled payload
class Exploit:
def __reduce__(self):
import os
return (os.system, ('id',)) # executes 'id' on server
payload = pickle.dumps(Exploit())
pickle.loads(payload) # RCE! Never deserialize untrusted data with pickleGüvenli Olmayan Serileştirmeyi Önleme
Güvenli olmayan serileştirmeden çıkarmaya karşı Defense yöntemleri şunları içerir: Java yerel serileştirmesi veya Python pickle gibi tehlikeli biçimlerle güvenilmeyen verileri asla serileştirmeden çıkarmamak. İkili serileştirme yerine yalnızca veri içeren biçimleri (JSON, XML) tercih edin. Serileştirmeden çıkarma gerekiyorsa bütünlük denetimleri uygulayın (serileştirilmiş nesneyi HMAC ile imzalamak), hangi sınıfların serileştirmeden çıkarılabileceğini kısıtlamak için izin listeleri kullanın ve serileştirmeden çıkarma kodunu yalıtılmış, düşük ayrıcalıklı ortamlarda çalıştırın.
# Safe approach: sign serialized data before transmitting
import hmac, hashlib, json
def serialize_safe(data, secret):
payload = json.dumps(data) # use JSON, not pickle
sig = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()
return payload + '.' + sigBir Denetim Olarak Çok Faktörlü Kimlik Doğrulama
Multi-Factor Authentication (MFA), bozuk kimlik doğrulamaya karşı tek başına en etkili denetimdir. Kimlik bilgileri kimlik avı, credential stuffing veya bir veritabanı ihlali yoluyla ele geçirilse bile ikinci faktöre sahip olmayan bir attacker kimliğini doğrulayamaz. Microsoft, MFA'nın otomatik hesap ele geçirme saldırılarının %99,9'undan fazlasını engellediğini bildirir. MFA, ayrıcalıklı hesaplar için zorunlu olmalı ve tüm kullanıcılar için teşvik edilmelidir.
Hesap Kilitleme ve Hız Sınırlama
Hesap kilitleme ilkeleri, tanımlanan sayıda başarısız giriş denemesinden sonra bir hesabı geçici olarak devre dışı bırakır ve kaba kuvvet saldırılarını yavaşlatır. Ancak kilitlemeler, meşru kullanıcıları hedef alan Denial of Service saldırılarını mümkün kılabilir; saldırganlar erişimi engellemek için kasıtlı olarak hesapların kilitlenmesini tetikler. Hız sınırlama (tekrarlanan başarısızlıklardan sonra üstel geri çekilme kullanarak yanıtları yavaşlatma) ve CAPTCHA doğrulamaları, daha düşük DoS riskiyle kaba kuvvet saldırılarını azaltır.
OWASP Top 10'da Bozuk Authentication
OWASP, Bozuk Authentication konusunu kritik bir risk olarak listeler; çünkü kimlik doğrulama açıkları hem yaygındır hem de etkileri büyüktür. Bozuk Authentication göstergeleri arasında şunlar bulunur: kimlik bilgisi doldurma gibi otomatik saldırılara izin verme, kaba kuvvet veya diğer otomatik saldırılara izin verme, varsayılan, zayıf ya da yaygın olarak bilinen Password değerlerine izin verme, zayıf kimlik bilgisi kurtarma süreçleri kullanma, düz metin veya zayıf şekilde özetlenmiş Password değerleri kullanma ve eksik ya da etkisiz çok faktörlü kimlik doğrulama.
Kısa Kontrol
Bu dersteki CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: bozuk Authentication; zayıf oturumları, kimlik bilgisi doldurmayı ve güvensiz Password depolamayı kapsar, güvensiz serileştirme, kötü amaçlı serileştirilmiş Object değerleri aracılığıyla Uzaktan Kod Çalıştırmaya yol açabilir ve MFA, bcrypt Password özetleme, girişten sonra oturumun yeniden oluşturulması ve imzalı serileştirilmiş veriler temel savunmalardır. Sırada güvenli SDLC, SAST ve DAST araçlarını inceleyeceğiz.
Sıkça Sorulan Sorular
“Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma” dersi ücretsiz mi?
Evet — “Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma” dersinde ne öğreneceğim?
Zayıf oturum yönetiminin, kimlik bilgisi doldurmanın ve güvenli olmayan serileştirme açma güvenlik açıklarının saldırganların hesapları ele geçirip kod çalıştırmasına nasıl olanak tanıdığını inceleyi… Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SQL Enjeksiyonu ve Komut Enjeksiyonu
- Siteler Arası Komut Dosyası Çalıştırma (XSS) ve CSRF
- Bozuk Kimlik Doğrulama ve Güvenli Olmayan Serileştirme Açma
- Güvenli SDLC, SAST ve DAST Araçları