OAuth ve Token Bazlı Kimlik İzleri: Yetkilendirme Akışlarında Bırakılan Dijital Parmak İzleri
Modern uygulamaların büyük bölümü kimlik doğrulama ve yetkilendirme için OAuth 2.0 ve token tabanlı mekanizmalara dayanır. Bu mimariler güvenliği ve ölçeklenebilirliği artırırken, adli bilişim açısından kısa ömürlü ama yüksek değerli izler üretir. Bu makalede OAuth akışlarında nerelerde iz bırakıldığını, token’ların nasıl suistimal edilebildiğini ve adli analizde hangi artefact’lerin kritik olduğunu örneklerle ele alıyoruz.
OAuth ve Token Tabanlı Kimlik Nedir?
OAuth 2.0 (Kısa Tanım)
OAuth, bir kullanıcının parolasını paylaşmadan, üçüncü taraf bir uygulamaya sınırlı yetki vermesini sağlar. Yetki, token’lar aracılığıyla temsil edilir.
Yaygın Token Türleri
Access Token: Kısa ömürlü, API erişimi sağlar
Refresh Token: Access token’ı yeniler
ID Token (OIDC): Kullanıcı kimliğini taşır (JWT)
OAuth Akışı: Nerelerde İz Var?
Delil Üreten Aşamalar
1 - Authorization Request (kullanıcı yönlendirme)
2 - Authorization Code üretimi
3 - Token Exchange (code → token)
4 - API Access (Bearer token ile)
5 - Token Refresh / Revoke
Adli Bilişim Açısından Neden Önemli?
1. Parola Olmadan Yetkisiz Erişim
- Token çalınırsa parola gerekmez
- MFA sonrası token reuse mümkün olabilir
2. Kimlik ve Niyet Ayrımı
- Kim login oldu?
- Kim token aldı?
- Kim token’ı kullandı?
Bu üçü farklı varlıklar olabilir.
3. Zaman Çizelgesi Kurma
- Token issuance zamanı
- İlk/son kullanım zamanı
- Refresh döngüsü
Hangi Loglar Kritik?
Identity Provider (IdP) Logları
- Auth success/failure
- MFA challenge
- Authorization code issuance
- Token issuance / refresh / revoke
API Gateway / Resource Server Logları
- Bearer token ile erişimler
- Scope’lar
- IP, User-Agent, response size
Audit & IAM Logları
- App registration değişiklikleri
- Scope/consent güncellemeleri
- Client secret/sertifika rotasyonu
Token İçeriği (JWT) Adli Analizi
JWT üç parçadan oluşur: header.payload.signature
İncelenmesi Gereken Alanlar
- iss (issuer)
- sub (subject / user)
- aud (audience)
- scope / scp
- iat, nbf, exp
- jti (token id)
1# JWT decode (imza doğrulamadan, inceleme amaçlı)2echo "<JWT>" | cut -d. -f2 | base64 -dYaygın Suistimal Senaryoları
1. Token Theft (Hırsızlık)
- XSS ile localStorage’dan
- Log’lara sızmış token
- Proxy/extension kötüye kullanımı
2. Token Replay
- IP/cihaz bağlamı zayıfsa
- Kısa pencerede tekrar kullanım
3. Aşırı Yetkili Scope’lar
- Gereksiz geniş scope
- “read” yerine “read/write/admin”
Adli Analize Nereden Başlanmalı?
1. Token Zincirini Kur
- Auth → Code → Token → API call
1# Mantıksal korelasyon2correlate(auth_logs, token_logs, api_logs)2. İlk ve Son Kullanımı Bul
- Token ilk ne zaman kullanıldı?
- Nereden?
- Hangi scope ile?
3. Bağlam Tutarlılığı Kontrolü
- IP/ASN değişimi
- User-Agent drift
- Coğrafi sıçrama
- Adli Senaryo Örneği
Olay:
Yetkisiz API erişimi tespit edildi.
Analiz:
- MFA ile giriş var
- 3 dk sonra token issuance
- Token, farklı ASN’den kullanılmış
- Scope: files.read.all
Sonuç:
- Token çalınmış
- Parola/MFA bypass yok
- Token replay ile erişim
Anti-Forensics ve Zorluklar
Yaygın Taktikler
- Kısa token TTL
- Log retention düşürme
- Refresh token ile sessiz uzatma
Adli Analistler İçin Pratik İpuçları
Token’ı Kimlikten Ayır
- “Kullanıcı yaptı” ≠ “kullanıcı token’ı kullandı”
Scope’ları Metin Gibi Oku
- İzinler niyeti ele verir
Refresh Döngüsünü İncele
- Sürekli yenilenen token = kalıcı erişim
Revocation Olaylarını İşaretle
- Ne zaman kesildi, neden?
Hukuki ve Adli Değer
Mahkemelerde:
- Issuance/use ayrımı
- Zaman ve bağlam tutarlılığı
- Scope analizi
özellikle etkilidir.
Kimlik, token ve kullanım bağlamı ayrılmalıdır
JWT alanları olay penceresini netleştirir
Token replay ve scope aşırılığı sık görülür
OAuth forensics, zincirleme korelasyon gerektirir
0 yorum