secaudit.eu
Sıkılaştırma

WordPress yöneticileri için iki faktörlü kimlik doğrulama (2FA)

WordPress'te iki faktörlü kimlik doğrulama: TOTP uygulamaları, geçiş anahtarları, yedek kodlar, SMS neden zayıf, kimler kullanmalı, devreye alma adımları ve NIS2.

Yazar: , AngelForce OÜ 6 dk okuma

Diğer diller: English Deutsch Français Español Italiano Polski Português

WordPress'te iki faktörlü kimlik doğrulama (2FA), yönetim panelinize artık yalnızca parolayla girilemeyeceği anlamına gelir. Parolanın ardından giriş ekranı ikinci bir kanıt ister; bu genellikle telefonunuzdaki bir uygulamanın ürettiği altı haneli bir koddur. Yönetici hesapları için en ucuz ve en etkili korumalardan biridir. WordPress çekirdeğinde yerleşik bir iki faktörlü kimlik doğrulama bulunmadığı için bu özelliği bir eklentiyle eklersiniz.

Bu rehberde kodların nasıl çalıştığını, hangi ikinci faktörü seçmeniz gerektiğini, ekibinizde kimlerin buna ihtiyaç duyduğunu, 2FA'yı kimseyi hesabının dışında bırakmadan nasıl devreye alacağınızı ve 2FA'nın GDPR (AB Genel Veri Koruma Tüzüğü) ve NIS2 Direktifi ile ilişkisini anlatıyoruz.

Parolalar tek başına neden yetmez?

Parolalar sızar. Başka bir hizmetin kullanıcı veritabanı çalındığında saldırganlar, ele geçirdikleri e-posta ve parola çiftlerini internetteki sayısız giriş formunda dener. Bu yönteme credential stuffing (kimlik bilgisi doldurma) denir ve aynı parolanın birden fazla yerde kullanıldığı her hesapta işe yarar. İkinci yol kimlik avıdır: inandırıcı bir sahte giriş sayfası parolayı doğrudan toplar.

Her WordPress sitesinin /wp-login.php adresinde herkese açık bir giriş formu vardır; varsayılan olarak açık gelen XML-RPC de parola kabul eder. Bir Administrator eklenti kurabilir, yani sunucunuzda kod çalıştırabilir. Kullandığınız eklentilere bağlı olarak bir Editor da form kayıtlarını veya müşteri verilerini görebilir. Bu yüzden sızan tek bir parola kişisel veri ihlaline dönüşebilir.

İkinci faktör bu zinciri kırar. Saldırganın elinde parolanız olabilir, ama telefonunuz ya da güvenlik anahtarınız yoktur.

WordPress'te iki faktörlü kimlik doğrulama nasıl çalışır?

En yaygın yöntem TOTP'dir (time-based one-time password, yani zamana dayalı tek kullanımlık parola). Standardı RFC 6238 ile tanımlanmıştır. Kısaca şöyle işler:

  1. 2FA'yı açtığınızda eklenti bir QR kodu gösterir. Bu kod, kimlik doğrulama uygulamanızın kaydettiği gizli bir anahtar içerir; sunucu da bu anahtarın bir kopyasını saklar.
  2. Uygulama bu gizli anahtarı o anki saatle birleştirerek kısa, genellikle altı haneli bir kod hesaplar. Standart ayarda her 30 saniyede bir yeni kod üretilir.
  3. Girişte, doğru paroladan sonra WordPress o anki kodu sorar. Sunucu aynı hesaplamayı yapar ve iki sonucu karşılaştırır.
Çalınmış bir parola ikinci adımda takılır: saldırganın elinde kullanıcının telefonundaki kod yoktur
Aynı parola, iki farklı sonuç: telefondaki kod olmadan giriş başarısız olur.

Kodu iki taraf birbirinden bağımsız olarak hesapladığı için telefonunuza hiçbir şey gönderilmez ve uygulama çevrimdışı da çalışır. Yine de telefonun saati önemlidir: kodlar sürekli reddediliyorsa telefonda tarih ve saatin otomatik ayarlandığını kontrol edin.

2FA'nın neyi yapmadığını da açıkça bilmek gerekir. Güvenlik açığı olan bir eklentiyi düzeltmez, çünkü bir eklenti hatasını istismar eden saldırgan giriş formundan hiç geçmez; WordPress güvenlik kontrol listemizde güncellemelerin en başta yer almasının nedeni de budur. Ayrıca sahte bir giriş sayfası, girilen TOTP kodunu saniyeler içinde gerçek siteye aktarabilir. Bu tür gerçek zamanlı kimlik avını yalnızca geçiş anahtarları (passkey) ve donanım güvenlik anahtarları gibi kimlik avına dayanıklı yöntemler durdurur.

İkinci faktörü seçmek: uygulama, geçiş anahtarı, SMS veya e-posta

İkinci faktörlerin hepsi aynı ölçüde güçlü değildir:

YöntemGüçNotlar
Geçiş anahtarı veya güvenlik anahtarıEn yüksekKimlik avına dayanıklı; eklenti desteği gerekir
Kimlik doğrulama uygulaması (TOTP)YüksekÜcretsiz, çevrimdışı çalışır, yaygın destek
E-postayla kodOrtaYalnızca e-posta kutusu kadar güvenli
SMS koduEn düşükSIM kartı değiştirme, mesajların yakalanması

Geçiş anahtarları WebAuthn standardına dayanır ve telefonunuzda, bilgisayarınızda veya bir donanım anahtarında saklanan bir anahtar çifti kullanır. Tarayıcı bir geçiş anahtarını yalnızca oluşturulduğu alan adında kullanır; bu yüzden gerçeğine benzeyen bir kimlik avı sitesi hiçbir şey elde edemez. 2FA eklentiniz geçiş anahtarlarını destekliyorsa bu seçeneği önce yöneticilere sunun.

Kimlik doğrulama uygulamaları pratikte varsayılan seçimdir. Her TOTP uygulaması iş görür: örneğin Google Authenticator, Microsoft Authenticator, Aegis veya 2FAS gibi açık kaynaklı uygulamalar ve birçok parola yöneticisi.

SMS kodları daha zayıftır: dolandırıcılar SIM kartı değiştirme (SIM swapping) yoluyla bir telefon numarasını ele geçirebilir, mesajlar da yolda yakalanabilir. ABD'nin NIST SP 800-63B yönergesi bu nedenle SMS gibi telefon şebekesi üzerinden gönderilen kodları "kısıtlı" (restricted) doğrulayıcılar olarak sınıflandırır. Hiç yoktan iyidir, ancak yönetici hesapları için önermiyoruz.

Yedek kodlar kapının yedek anahtarıdır. Çoğu eklenti tek kullanımlık bir kod seti üretir. Bu kodları parola yöneticinizde saklayın ya da yazdırıp güvenli bir yerde tutun; ama telefonunuzun yanında değil.

WordPress'te 2FA kimler için zorunlu olmalı?

İki faktörlü kimlik doğrulamayı şu hesaplar için zorunlu kılmanızı öneririz:

  • her Administrator ve Editor ile WooCommerce mağazalarında her Shop Manager;
  • form kayıtları, siparişler veya müşteri hesapları gibi kişisel verileri görebilen herkes;
  • ajans ve serbest çalışan girişleri: her kişiye kendi hesabı ve kendi ikinci faktörü verilmeli; tek bir kişinin telefonuna bağlı, ortak bir "ajans" hesabı asla kullanılmamalı;
  • WordPress'in çevresindeki hesaplar: barındırma paneli, SFTP veya SSH, alan adı kayıt firması ve parola sıfırlama e-postalarının gittiği e-posta hesabı.

Subscriber rolündeki kullanıcılar ve mağaza müşterileri için 2FA'yı isteğe bağlı olarak sunmak genellikle yeterlidir.

Altı adımda 2FA'yı devreye almak

  1. Önce hesapları temizleyin. Eski çalışanların ve ajansların hesaplarını kaldırın, gerekenden yüksek rolleri düşürün. Kimsenin kullanmadığı hesapları korumaya uğraşmanın anlamı yok.
  2. Bir eklenti seçin. TOTP, yedek kodlar, role göre zorunlu kılma ve mümkünse geçiş anahtarı desteği arayın. WordPress.org'daki ücretsiz Two Factor eklentisinin bakımını WordPress'e katkıda bulunan geliştiriciler üstlenir; eklenti TOTP ve yedek kodları kapsar, ancak role göre zorunlu kılma özelliği yerleşik değildir. secaudit.eu tarafından geliştirilen Security Audit & Compliance gibi güvenlik eklentileri de TOTP ile iki faktörlü giriş sunar.
  3. Kendi hesabınızla test edin. 2FA'yı kendi hesabınızda kurun, oturumu kapatın ve gizli bir tarayıcı penceresinde yeniden giriş yapın. Yedek çıkış yolu olarak 2FA'sı açık ikinci bir yönetici hesabı bulundurun.
  4. Bir tarih duyurun. Hangi uygulamanın kurulacağını ve son tarihi belirten kısa bir kılavuz gönderin.
  5. Zorunlu kılın. Yukarıda sayılan roller için 2FA'yı zorunlu hâle getirin; böylece kimse kurulumu atlayamaz.
  6. Yan kapıları kapatın. Hiçbir şey kullanmıyorsa XML-RPC'yi kapatın ya da eklentinizin onu da kapsadığından emin olun. Uygulama parolalarını (Application Passwords, WordPress 5.6'dan beri) gözden geçirin: bunlar API erişimi için tasarlanmıştır ve ikinci faktör adımından geçmez; bu yüzden yalnızca gerçekten ihtiyaç duyduklarınızı tutun.

Telefon kaybolursa: erişimi güvenle geri kazanmak

Telefonların kaybolması ya da yenisiyle değiştirilmesi olağan bir durumdur; bu yüzden hazırlığınızı bu iş başınıza gelmeden yapın.

  • Yedek kod: kullanıcı bir yedek kodla giriş yapar, 2FA'yı yeni telefonda yeniden kurar ve yeni yedek kodlar üretir.
  • Başka bir yönetici genellikle bir kullanıcının ikinci faktörünü sıfırlayabilir. Talebi zaten güvendiğiniz bir kanaldan doğrulayın; örneğin iş arkadaşınızı bildiğiniz bir numaradan geri arayın. "Telefonumu kaybettim, 2FA'mı sıfırlar mısın?" klasik bir sosyal mühendislik cümlesidir.
  • Tek yönetici olarak hesabınızın dışında kaldıysanız son çare: 2FA eklentisini sunucu üzerinden devre dışı bırakın, giriş yapın ve eklentiyi hemen yeniden etkinleştirin.

WP-CLI kullanıyorsanız two-factor yerine kendi eklentinizin klasör adını yazın:

wp plugin deactivate two-factor

WP-CLI yoksa eklentinin wp-content/plugins/ içindeki klasörünü SFTP ile yeniden adlandırmak aynı sonucu verir; eklentiyi yeniden etkinleştirmeden önce klasöre eski adını geri verin. Bu yol sunucu erişimi olan herkese açıktır; barındırma ve SFTP hesaplarının da güçlü biçimde korunması gerekmesinin nedeni tam olarak budur.

İki faktörlü kimlik doğrulama, NIS2 ve GDPR

NIS2 bu konuda açıktır: NIS2 Direktifi Md. 21(2)(j), çok faktörlü veya sürekli kimlik doğrulamayı kapsamdaki kuruluşlar için asgari önlemler arasında sayar. Şirketinizin kapsamda olup olmadığı büyüklüğüne, sektörüne ve ülkenizin ulusal yasasına bağlıdır; ayrıntıları NIS2 ve WordPress siteniz yazımızda anlatıyoruz. NIS2 size doğrudan uygulanmasa bile kapsamdaki müşterileriniz tedarik zinciri güvenliğini yönetmek zorundadır (Md. 21(2)(d)) ve ajanslara yönetici erişiminin korunup korunmadığını giderek daha sık soruyorlar.

GDPR, 2FA'yı adıyla anmaz; ancak Md. 32, teknolojinin son durumunu dikkate alan güvenlik önlemleri ister. Kişisel verilere erişimi olan yönetici hesaplarında 2FA hem ucuz hem de yaygın olarak erişilebilir durumdadır; bu da uygun bir önlem olmadığını savunmayı zorlaştırır. Ayrıntılar için WordPress için GDPR Madde 32 yazımıza bakın. 2FA'yı ne zaman ve hangi roller için zorunlu kıldığınızı kayda geçirin, çünkü Md. 5(2) aldığınız önlemleri kanıtlayabilmenizi bekler.

Sık sorulan sorular

2FA WordPress sitemi tamamen korur mu?

Hayır. 2FA girişi korur. Güvenlik açığı olan eklentiler, zayıf barındırma ve bir kullanıcının bilgisayarındaki zararlı yazılım için ayrı önlemler gerekir.

E-postayla gelen bir kod yeterli mi?

Hiç ikinci faktör olmamasından iyidir; ancak e-posta kutusunu kim ele geçirirse hem parola sıfırlama bağlantısını hem de kodu alır. Yöneticiler için bir uygulama ya da geçiş anahtarı kullanın.

2FA ile korunan tek bir hesabı birkaç kişi ortak kullanabilir mi?

Kullanmamalı. Herkese kendi hesabını verin; biri ayrıldığında erişimini temiz biçimde kaldırmanın tek yolu da budur.

Bu makale genel bilgi niteliğindedir, hukuki danışmanlık değildir.

Kendi sitenizi kontrol edin

Security Audit & Compliance, secaudit.eu’nun WordPress eklentisidir: zararlı yazılımları, gizli spam’i, değiştirilmiş çekirdek dosyalarını ve açıklı kodu tarar; bulguları GDPR Md. 32, NIS2 Md. 21 ve OWASP Top 10 ile eşleştirir.

Eklentinin neleri kontrol ettiğini görün
Melike Görel

Melike Görel, secaudit.eu’nun arkasındaki Tallinn merkezli yazılım şirketi AngelForce OÜ adına WordPress güvenliği ve AB uyumluluğu rehberlerini yazıyor.

Yapay zekâ desteğiyle hazırlanmış ve yayından önce doğruluğu kontrol edilmiştir. Bu makale genel bilgi niteliğindedir, hukuki danışmanlık değildir.