Oturum Ele Geçirme
Session Hijacking
- İngilizcesi
- Session Hijacking
- Türkçe karşılığı
- oturum çalma
- Okunuşu
- seşın hayceking
Günlük kullanımda iki ad da yaygın.
Kısaca
Oturum ele geçirme, bir kullanıcının oturum kimliğini ya da token'ını çalarak veya tahmin ederek, parolasını bilmeden o kullanıcı gibi davranmaktır.
Oturum ele geçirme (session hijacking) nedir?
Oturum açtıktan sonra bir web sitesi genellikle tarayıcınıza bir çerezde oturum kimliği ya da JWT gibi bir token verir; böylece her istekte parolanızı sormak zorunda kalmaz. Bu değeri sunan kişi sizmişsiniz gibi işlem görür. Oturum ele geçirme, bu değeri elde etmek ve saldırganın kendi tarayıcısından kullanmaktır; bu da parolayı ve çoğu zaman çok faktörlü kimlik doğrulamayı tamamen atlar.
Saldırganlar oturum token'larını çeşitli yollarla elde eder: HttpOnly olarak işaretlenmemiş çerezleri okuyan XSS betikleri, çerezleri tarayıcıdan kopyalayan kurbanın cihazındaki kötü amaçlı yazılımlar, paylaşılan ağlarda şifresiz HTTP trafiğini dinleme, URL'lerde veya sunucu günlüklerinde sızan token'lar ve tahmin edilebilen zayıf, öngörülebilir oturum kimlikleri. İlgili bir varyant olan session fixation ise tersine çalışır: saldırgan, kurban oturum açmadan önce tarayıcısına bilinen bir oturum kimliği yerleştirir, kurban kimliğini doğruladıktan sonra da onu kullanır.
Savunmalar arasında her şeyi HSTS ile birlikte HTTPS üzerinden sunmak, oturum çerezlerini Secure, HttpOnly ve SameSite olarak işaretlemek, uzun rastgele oturum kimlikleri üretmek ve her oturum açmada ve ayrıcalık değişikliğinde yeni bir oturum kimliği vermek bulunur. Oturumlar hareketsizlik sonrasında sona ermeli ve mutlak bir ömre sahip olmalı, kullanıcılar etkin oturumlarını görüp iptal edebilmeli ve e-posta adresini değiştirmek gibi hassas işlemler yeniden kimlik doğrulaması gerektirmelidir. Bu, bir festival girişinde aldığınız bilekliğin kopyalanmasına benzer: görevliler biletinize değil bilekliğe bakar, bu yüzden kopya onları içeri sizmiş gibi sokar.
Oturum ele geçirme sıklıkla CSRF ile karıştırılır. CSRF'te saldırgan oturum token'ını hiç görmez; kurbanın tarayıcısını, onu otomatik olarak taşıyan bir istek göndermeye kandırır. Oturum ele geçirmede ise saldırgan token'a gerçekten sahiptir ve oturum geçerli kaldığı sürece onu her yerden kullanabilir.
Önemli noktalar
- Oturum ele geçirme, bir kullanıcının kimliğine bürünmek için oturum kimliğini veya token'ını çalar.
- Yaygın kaynaklar XSS, kötü amaçlı yazılım, şifresiz trafik, sızan URL'ler veya günlükler ve öngörülebilir kimliklerdir.
Secure,HttpOnlyveSameSiteçerezleri, HTTPS ve uzun rastgele kimlikler kullanın.- Session fixation'ı önlemek için oturum açıldığında yeni bir oturum kimliği verin.
- Oturumları sona erdirin, iptale izin verin ve hassas işlemler için yeniden kimlik doğrulaması isteyin.
Örnek
import { randomBytes } from "node:crypto";
// A long, random session ID that cannot be guessed
const sessionId = randomBytes(32).toString("base64url");
res.cookie("sid", sessionId, {
httpOnly: true, // scripts, including injected XSS, cannot read it
secure: true, // only ever sent over HTTPS
sameSite: "lax", // not sent on most cross-site requests
maxAge: 30 * 60 * 1000, // expires after 30 minutes
});
// After every successful sign-in, issue a brand-new session ID
// so an ID planted before sign-in (session fixation) becomes uselessSık sorulan sorular
Oturum ele geçirme ile session fixation arasındaki fark nedir?
Oturum ele geçirmede saldırgan, kurbanın zaten sahip olduğu bir oturum kimliğini çalar. Session fixation'da ise saldırgan, oturum açılmadan önce kurbana kendisinin zaten bildiği bir oturum kimliği verir; sunucuların kimlik doğrulamadan sonra yeni bir kimlik vermesi gerekmesinin nedeni budur.
İki faktörlü kimlik doğrulama oturum ele geçirmeyi önler mi?
Hayır. İki faktörlü kimlik doğrulama oturum açma adımını korur, ancak çalınmış bir oturum token'ı bu adımı zaten geçmiş bir oturumu temsil eder. Kısa oturum ömürleri, cihaza bağlama ve hassas işlemler için yeniden kimlik doğrulaması zararı sınırlar.
HTTPS oturum ele geçirmeyi önleyebilir mi?
HTTPS, token'ların ağdan okunmasını engeller ve bu, başlıca yöntemlerden birini durdurur. XSS, cihazdaki kötü amaçlı yazılım veya günlüklerde sızan token'lar yoluyla hırsızlığı durdurmaz; bu yüzden çerez bayraklarına ve iyi oturum yönetimine yine ihtiyaç vardır.
İlgili sayfalar
- OturumBackend ve API'ler, s. 33Oturum, sunucunun bir kullanıcıyı birçok istek boyunca hatırlama yöntemidir; genellikle veriler sunucuda tutulur ve tarayıcıya bir oturum kimliği verilir.
- CookieWeb Geliştirme, s. 7Cookie, bir web sitesinin tarayıcıdan saklamasını ve sonraki isteklerle geri göndermesini istediği, çoğunlukla oturum açık tutmak için kullanılan küçük veridir.
- XSSGüvenlik, s. 47XSS, saldırganın güvenilir bir siteye kötü amaçlı JavaScript enjekte edip bu kodu diğer kullanıcıların tarayıcısında çalıştırmasına yol açan zafiyettir.
- CSRFGüvenlik, s. 5CSRF, oturum açmış kullanıcının tarayıcısını güvenilir bir siteye istenmeyen istek göndermeye kandıran, sitenin de gerçek kullanıcı eylemi sandığı saldırıdır.
- HSTSGüvenlik, s. 14HSTS, tarayıcıya bir siteye belli bir süre yalnızca HTTPS ile bağlanmasını söyleyen, güvensiz HTTP'yi ve düşürme saldırılarını engelleyen güvenlik başlığıdır.
- JWTGüvenlik, s. 17JWT, kullanıcı kimliği ve son kullanma zamanı gibi bilgileri taşıyan, imzalı ve kompakt bir token'dır; sunucunun oturum aramadan istekleri doğrulamasını sağlar.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin