Güncelleştirmelerin dijital imzayla kontrol edilmesini destekleyen WordPress 5.2 sürümü

tanıtıldı web içerik yönetim sisteminin piyasaya sürülmesi WordPress 5.2. Sürümün tamamlanması dikkat çekiyor altı yıllık destan uygulama hakkında yetenekleri dijital imza kullanarak güncellemeleri ve eklemeleri kontrol etme.

Şimdiye kadar, WordPress'te güncellemeler yüklenirken ana güvenlik faktörü, WordPress altyapısına ve sunucularına güvenmekti (indirme sonrasında, kaynak doğrulanmadan hash kontrol ediliyordu). Projenin sunucularının güvenliği ihlal edilirse, saldırganlar bir güncellemeyi taklit edebilir ve otomatik güncelleme yükleme sistemi kullanan WordPress tabanlı siteler arasında kötü amaçlı kod dağıtabilirler. Daha önce kullanılan güven sağlama modeline göre, böyle bir değişiklik kullanıcıların gözünden kaçacaktı.

Şu gerçeği dikkate alarak Göre w3techs projesi kapsamında ağdaki sitelerin %33.8'inde WordPress platformu kullanılıyor olsaydı, olay bir felaket ölçeğine ulaşacaktı. Aynı zamanda, altyapının tehlikeye girmesi tehlikesi varsayımsal değil, oldukça gerçekti. Örneğin birkaç yıl önce güvenlik araştırmacılarından biri gösterdi Bir saldırganın kodunu api.wordpress.org'un sunucu tarafında çalıştırmasına izin veren bir güvenlik açığı.

Dijital imzalar söz konusu olduğunda, güncelleme dağıtım sunucusu üzerinde kontrolün ele geçirilmesi, kullanıcı sistemlerinin tehlikeye girmesine yol açmayacaktır; çünkü bir saldırı gerçekleştirmek için ayrıca, güncellemelerin imzalandığı ayrı olarak saklanan bir özel anahtar almanız gerekecektir.

Güncellemelerin kaynağının dijital imza kullanılarak kontrol edilmesinin uygulanması, standart PHP paketinde nispeten yakın zamanda gerekli şifreleme algoritmaları için desteğin ortaya çıkması nedeniyle sekteye uğradı. Kütüphanenin entegrasyonu sayesinde gerekli kriptografik algoritmalar ortaya çıktı libsodyum ana takıma PHP 7.2. Ancak WordPress'te desteklenen minimum PHP sürümü olarak belirtilmiş 5.2.4 sürümü (WordPress 5.2 - 5.6.20'den). Dijital imza desteğinin etkinleştirilmesi, desteklenen minimum PHP sürümü gereksinimlerinde önemli bir artışa veya harici bir bağımlılığın eklenmesine yol açacaktır; ancak geliştiriciler, barındırma sistemlerindeki PHP sürümlerinin yaygınlığı göz önüne alındığında bunu yapamazlardı.

Çözüm şuydu: gelişme ve Libsodium'un kompakt bir versiyonunun WordPress 5.2'ye dahil edilmesi - Sodyum UyumluluğuPHP'de dijital imzaları doğrulamak için minimum bir algoritma kümesinin uygulandığı. Uygulama, performans açısından arzulanan çok şey bırakıyor ancak uyumluluk sorununu tamamen çözüyor ve ayrıca eklenti geliştiricilerinin modern şifreleme algoritmalarını uygulamaya başlamasına olanak tanıyor.

Dijital imzalar oluşturmak için bir algoritma kullanılır Ed25519, Daniel J. Bernstein'ın katılımıyla geliştirildi. Güncelleme arşivinin içeriğinden hesaplanan SHA384 hash değeri için dijital imza oluşturulur. Ed25519, ECDSA ve DSA'dan daha yüksek bir güvenlik düzeyine sahiptir ve çok yüksek doğrulama ve imza oluşturma hızı sergiler. Ed25519'un hacklenmeye karşı direnci yaklaşık 2^128'dir (ortalama olarak Ed25519'a yapılan bir saldırı 2^140 bit işlem gerektirir), bu da NIST P-256 ve RSA gibi 3000 bit anahtar boyutuna sahip algoritmaların direncine karşılık gelir. veya 128 bitlik blok şifre. Ed25519 aynı zamanda karma çarpışmalarından kaynaklanan sorunlara ve önbellek zamanlama saldırılarına veya yan kanal saldırılarına karşı da duyarlı değildir.

WordPress 5.2 sürümünde, dijital imza doğrulama şu anda yalnızca büyük platform güncellemelerini kapsıyor ve varsayılan olarak güncellemeyi engellemiyor, yalnızca kullanıcıyı sorun hakkında bilgilendiriyor. Tam kontrol ve bypass ihtiyacı nedeniyle varsayılan engellemenin hemen etkinleştirilmemesine karar verildi olası sorunlar. Gelecekte, temaların ve eklentilerin kurulum kaynağını doğrulamak için dijital imza doğrulamasının da eklenmesi planlanıyor (üreticiler, sürümleri anahtarlarıyla imzalayabilecek).

WordPress 5.2'deki dijital imza desteğine ek olarak aşağıdaki değişiklikler de not edilebilir:

  • Sık karşılaşılan yapılandırma sorunlarının ayıklanması için “Site Sağlığı” bölümüne iki yeni sayfa eklendi ve geliştiricilerin hata ayıklama bilgilerini site yöneticilerine bırakabilecekleri bir form da sağlandı;
  • Ölümcül sorunlar durumunda görüntülenen ve özel bir kilitlenme kurtarma moduna geçerek yöneticinin eklentiler veya temalarla ilgili sorunları bağımsız olarak çözmesine yardımcı olan "ölümün beyaz ekranı" uygulaması eklendi;
  • Eklentilerle uyumluluğu kontrol etmek için, kullanılan PHP sürümünü dikkate alarak eklentinin mevcut yapılandırmada kullanılma olasılığını otomatik olarak kontrol eden bir sistem uygulandı. Bir eklentinin çalışması için PHP'nin daha yeni bir sürümü gerekiyorsa, sistem bu eklentinin eklenmesini otomatik olarak engelleyecektir;
  • Kullanarak JavaScript kodunu kullanarak modülleri etkinleştirme desteği eklendi webpack и Babil;
  • Gizlilik politikası sayfasının içeriğini özelleştirmenize olanak tanıyan yeni bir gizlilik politikası.php şablonu eklendi;
  • Temalar için, body etiketinden hemen sonra kod eklemenize olanak tanıyan bir wp_body_open kanca işleyicisi eklendi;
  • PHP'nin minimum sürümü için gereksinimler 5.6.20'ye yükseltildi, eklentiler ve temalar artık ad alanlarını ve anonim işlevleri kullanma yeteneğine sahip;
  • 13 yeni simge eklendi.

Ek olarak şunları belirtebilirsiniz bulma WordPress eklentisindeki kritik güvenlik açığı WP Canlı Sohbet (CVE-2019-11185). Güvenlik açığı, sunucuda rastgele PHP kodunun çalıştırılmasına izin veriyor. Eklenti, IKEA, Adobe, Huawei, PayPal, Tele27 ve McDonald's gibi şirketlerin siteleri de dahil olmak üzere bir ziyaretçiyle etkileşimli sohbet düzenlemek için 2 binden fazla sitede kullanılıyor (Canlı Sohbet genellikle can sıkıcı açılır pencereleri uygulamak için kullanılır) şirket sitelerinde çalışanla sohbet teklifleri içeren sohbetler).

Sorun, dosyaları sunucuya yükleme kodunda kendini gösterir ve geçerli dosya türlerinin kontrolünü atlamanıza ve bir PHP betiğini sunucuya yüklemenize ve ardından onu doğrudan web üzerinden yürütmenize olanak tanır. İlginç bir şekilde, geçen yıl Canlı Sohbet'te (CVE-2018-12426) benzer bir güvenlik açığı zaten tanımlanmıştı; bu güvenlik açığı, İçerik türü alanında farklı bir içerik türü belirterek PHP kodunun bir resim görünümü altında yüklenmesine izin veriyordu. Düzeltmenin bir parçası olarak beyaz listeler ve MIME içerik türü için ek kontroller eklendi. Görünen o ki, bu kontroller yanlış uygulanıyor ve kolayca atlatılabiliyor.

Özellikle “.php” uzantılı dosyaların doğrudan yüklenmesi yasaktır ancak birçok sunucuda PHP yorumlayıcısı ile ilişkilendirilen “.phtml” uzantısı kara listeye eklenmemiştir. Beyaz liste yalnızca resim yüklemelerine izin verir, ancak çift uzantı belirterek bunu atlayabilirsiniz, örneğin ".gif.phtml". Dosyanın başındaki MIME tipi kontrolünü atlamak için PHP kodlu etiketi açmadan önce “GIF89a” satırını belirtmeniz yeterliydi.

Kaynak: opennet.ru

Yorum ekle