Saldırı altında mısınız? Olay müdahalesi için bize ulaşın

info@angelforce.eu
Kimlik ve erişim

Device code phishing: sahte sayfayı değil, akışı engelleyin

Saldırganlar OAuth device code akışını Microsoft Entra token'ları için nasıl kötüye kullanır; Conditional Access ile tespit, engelleme ve müdahale.

Diğer diller:EnglishDeutschFrançaisEspañolItalianoPolskiNederlandsEesti

İllüstrasyon: Device code phishing: sahte sayfayı değil, akışı engelleyin

Device code phishing işe yarar, çünkü kurban gerçek bir Microsoft sayfasında oturum açar. Fark edilecek sahte bir giriş sayfası da, engellenecek benzer görünümlü bir alan adı da yoktur. Pratik savunma, akışı ihtiyacı olmayan herkes için kapatmaktır. Microsoft'un kendi yönergesi, device code flow için mümkün olduğunca tek taraflı bir engellemeye yaklaşmaktır ve bunu tek bir Conditional Access politikası sağlar.

Device code flow ne için vardır?

Bu akış, tarayıcısı olmayan veya üzerinde yazı yazması zahmetli olan cihazlar için tasarlanmıştır. RFC 8628 akıllı televizyonları, medya konsollarını, dijital fotoğraf çerçevelerini ve yazıcıları örnek verir. Cihaz bir oturum açma sayfası göstermez. Kullanıcıya, telefon gibi başka bir cihazda bir URL'yi ziyaret etmesini ve kısa bir kod girmesini söyler.

İstemci, client identifier değerini authorization server'a gönderir ve karşılığında device_code, user_code, verification_uri ve expires_in değerlerini alır. Kullanıcı ikinci cihazda oturum açarken istemci, device_code ile token endpoint'ini yoklar (polling). Bu işlem, bir access token, bir hata ya da beklemeye devam etme talimatı gelene kadar sürer.

Microsoft identity platform'da endpoint'ler /devicecode ve /token olarak geçer. Microsoft dokümantasyonu, kullanıcıya oturum açması için varsayılan olarak 15 dakika tanır. İstenen scope içinde offline_access varsa bir refresh token da verilir.

Neden phishing olarak işe yarıyor?

Kodu isteyen taraf istemcidir. Oturum açan taraf ise kodu elinde tutan kişidir. Protokol bunların aynı kişi olmasını şart koşmaz ve RFC 8628, "Remote Phishing" riskini bir güvenlik değerlendirmesi olarak listeler (bölüm 5.4).

Bu nedenle saldırgan cihaz rolünü üstlenebilir. Bir client_id ile (ve Microsoft'un endpoint'inin zorunlu tuttuğu bir scope ile) kod ister, user_code değerini bir bahane eşliğinde hedefe iletir. Hedef gerçek doğrulama sayfasını açar, oturum açar ve kodu girer. Başından beri yoklama yapan saldırganın istemcisi de token'ları alır.

Parola hiçbir zaman saldırganın kontrolündeki bir sayfaya ulaşmaz. Alan adı ve URL temelli kontrollerin, örneğin bağlantı denetleyicimizin, işaretleyecek bir şey bulamamasının nedeni budur.

Saldırgan yine de kurbana bağımlıdır. Hedef, expires_in süresi dolmadan (varsayılan 15 dakika) oturum açıp kodu girmelidir, aksi halde yoklama expired_token hatasıyla başarısız olur. Kişisel hesap kullanıcılarından ayrıca yeniden oturum açmaları ve istenen izinlere onay vermeleri beklenir.

Eğitim için faydalı bir ipucu var. Microsoft, kodu URL içinde taşıyan isteğe bağlı alan olan verification_uri_complete değerini desteklemez. Öğretilmesi gereken örüntü şudur: "Biri bana, bir Microsoft oturum açma sayfasına girmem için bir kod gönderdi."

Device code ile yapılan oturum açmaları tespit edin

Microsoft, akışın mevcut kullanımını denetleyen bir politika önerir ve report-only modu tam olarak bunu sağlar. Aşağıda anlatılan politikayı Report-only modunda oluşturun ve kimin, neyin engellenmiş olacağını görmek için politika etki sonuçlarını okuyun.

Sürekli tehdit avı için Entra sign-in loglarını device code ile yapılan oturum açmalara göre filtreleyin ve kullanıcı ile uygulama bazında gruplayın. Bu, uygulayıcı tavsiyesidir; burada atıf yapılan Microsoft sayfalarında yer almaz. Bu akışı kullanan hiçbir cihazı ya da aracı olmayan bir kullanıcının oturum açması veya kimsenin adlandıramadığı bir uygulama, bir görüşmeyi hak eder. Kullanıcıya hangi mesajı aldığını sorun.

Conditional Access ile akışı engelleyin

Adım adım yol, Microsoft'un Conditional Access yönergesinde yer alır. En az Conditional Access Administrator yetkisiyle oturum açın, Entra ID > Conditional Access > Policies bölümüne gidin ve yeni bir politika oluşturun. Tüm kullanıcıları ve All resources seçeneğini dahil edin. Conditions > Authentication Flows altında Configure değerini Yes yapın ve Device code flow'u seçin. Grant altında Block access'i seçin ve Enable policy ayarını Report-only yapın. Sonuçları inceledikten sonra On konumuna alın.

Aynı sayfa, kullanıcıların bir oturum açma işlemini PC'den mobil cihaza taşımasına olanak tanıyan authentication transfer'in engellenmesini de kapsar. Aynı Authentication Flows koşulunu kullandığı için buna da aynı oturumda karar verin.

Microsoft'un tavsiyesi, akışa yalnızca iyi belgelenmiş ve güvence altına alınmış kullanım senaryolarında, örneğin güncellenemeyen eski araçlar için izin vermektir.

Kalması gerekenler için, amacını adıyla belli eden özel bir dışlama grubu oluşturun. Her üye için bir sahip ve bir gerekçe kaydedin, Microsoft'un da önerdiği gibi listeyi düzenli olarak denetleyin. Politikanın yanlış yapılandırılması durumunda kilitlenmeyi önlemek için acil erişim (break-glass) hesaplarını da dışlanmış tutun.

Ayrıca Microsoft, service principal'lar tarafından yapılan çağrıların kullanıcı kapsamlı politikalarca engellenmediğini belirtir ve betiklerde veya kodda kullanılan servis hesaplarının managed identity'lerle değiştirilmesini önerir.

Bir code phishing saldırısı başarılı olduysa

Saldırganın yalnızca bir parolaya değil, token'lara da sahip olduğunu varsayın. Bir refresh token yeni access token'lar almak için kullanılabilir. Bu yüzden önce kullanıcının oturumlarını iptal edin (revoke), ardından parolayı sıfırlayın. Bu, uygulayıcı tavsiyesidir; yukarıdaki kaynaklardan gelmez.

Sonra hesapla ilişkili enterprise application'ları ve consent grant'leri inceleyin, tanımadıklarınızı kaldırın. Posta kutusunda sizin oluşturmadığınız kuralları, özellikle yönlendirme veya silme kurallarını kontrol edin.

Avı tek bir kullanıcının ötesine genişletmek için yukarıdaki device code filtresini diğer hesaplarda çalıştırın ve aynı uygulamayı arayın. Birden fazla hesap etkilenmiş olabilirse düzgün bir müdahale süreci izleyin; olay müdahale ekibimiz bu süreci sizinle birlikte yürütebilir. Blogumuzda ise eğitim tarafı için olay müdahalesi ve phishing rehberleri bulunur.

Nereden başlamalı?

  1. Kodla oturum açabilecek tüm cihazları, betikleri ve araçları listeleyin: yazıcılar, televizyonlar, IoT cihazları, komut satırı araçları. Her sahibine bunu yapıp yapmadığını sorun.
  2. Device code flow seçili, tüm kullanıcılar kapsamda ve break-glass hesapları dışlanmış olarak Conditional Access politikasını Report-only modunda oluşturun. Authentication transfer koşuluna da aynı anda karar verin.
  3. Report-only sonuçlarını ve loglardaki device code ile yapılan oturum açmaları okuyun. Meşru her kullanımı düzeltin veya devre dışı bırakın, geriye kalanı bir sahibi olan, adlandırılmış bir dışlama grubuna koyun.
  4. Politikayı On konumuna alın ve dışlama grubunu denetim için takvime işleyin.
  5. Müdahale adımlarını yazıya dökün (oturumları iptal etme, enterprise application'ları ve consent grant'leri inceleme, posta kutusu kurallarını kontrol etme). Çalışanlara, kendilerinin istemediği ve ellerinde tutmadıkları bir cihazdan gelen kodun bir phishing girişimi olduğunu anlatın.

Nasıl yardımcı olabiliriz

Olay müdahalesi

Bir şeyler ters gittiğinde olayı sınırlar, kök nedeni bulur ve toparlanmanıza yardım ederiz.

Oltalama bağlantısı analizi

Şüpheli bir bağlantıyı ya da mesajı yapıştırın; her bağlantının gerçekte nereye gittiğini açmadan görün.

Bize yazın
AngelForce ekibi

Bu yazıyı AngelForce ekibi hazırladı: Avrupa genelindeki kurumların sistemlerini test eden, izleyen ve koruyan; CEH, LPT Master ve CISA sertifikalı güvenlik danışmanları.

Aşağıda listelenen herkese açık kaynaklardan yapay zekâ desteğiyle yazıldı ve yayından önce AngelForce ekibi tarafından incelendi.

Kaynaklar

  1. www.rfc-editor.org/rfc/rfc8628.html
  2. learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-device-code
  3. learn.microsoft.com/en-us/entra/identity/conditional-access/policy-block-authentication-flows

Kimlik ve erişim hakkında yazılar

Neyi korumanız gerektiğini anlatın

Altyapınızı ve hedefinizi kısaca yazın, size e-postayla dönelim.

Bize yazın
info@angelforce.eu

AngelForce OÜ · Tallinn, Estonya