WordPress REST API Güvenlik Açığı İstismarları Devam Ediyor

Yayınlanan: 2017-02-14
fotoğraf kredisi: Ivana Vasilj'den Code & Martini - cc lisansı

WordPress güvenlik ekibinin 4.7 ve 4.7.1'de bir REST API uç noktasında kimliği doğrulanmamış bir ayrıcalık yükseltme güvenlik açığını açıklamasından bu yana yaklaşık iki hafta geçti. Güvenlik açığı sessizce yamalandı ve WordPress site sahiplerine 4.7.2'ye güncelleme konusunda avantaj sağlamak için açıklama bir hafta ertelendi. Geçen hafta yüz binlerce savunmasız site zaten tahrif edilmişti ve hasar raporları hala devam ediyor.

Hafta sonu boyunca saldırılar arttı ve WordPress güvenlik firmaları güvenlik duvarları tarafından engellenen daha fazla girişim gördü. WordPress'teki güvenlik açığını bildiren web sitesi güvenlik firması Sucuri, geçen hafta "Hacked by w4l3XzY3" kampanyasını izliyordu ve tahmini 66.000 tahribat vardı. Söz konusu kampanya artık Google tarafından dizine eklenen 260.000 sayfayı geçti. Bu, güvenlik açığını hedefleyen yaklaşık iki düzine tahrif kampanyasından biridir.

Wordfence CEO'su Mark Maunder Cuma günü yaptığı açıklamada, "Son 24 saat içinde kampanya başına tahrif edilmiş sayfalarda ortalama %44'lük bir büyüme gördük" dedi. "Google tarafından dizine eklendiği şekliyle tüm bu kampanyalar için tahrif edilmiş sayfaların toplam sayısı 1.496.020'den 1.893.690'a yükseldi. Bu, yalnızca 24 saat içinde toplam tahrif edilmiş sayfalarda %26'lık bir artış anlamına geliyor."

Maunder, tahrif kampanyalarının geçen hafta elde ettiği başarıyı gösterdiğini söylediği bir Google Trendler tablosuna atıfta bulundu. Artış, WordPress'in güvenlik açığını açıkladığı gün başladı.

Ancak, güvenlik hizmetleri sunan başka bir şirket olan White Fir Design, Wordfence'in 1.8 milyon sayfanın saldırıya uğradığı iddialarına itiraz ediyor. Yaklaşık 2 milyon sayfalık rakam BBC, The Enquirer, Ars Technica, CIO.com ve diğer yayınlardan alınan raporlarda belirtilmiştir. White Fir Design, Google tarafından dizine eklenen saldırıya uğramış sayfaların doğru bir temsil olmadığını iddia ediyor.

Sucuri CTO'su Daniel Cid de Wordfence'in duruma ilişkin değerlendirmesine tam olarak katılmıyor. Hafta sonu boyunca biraz araştırma yaptıktan sonra, Sucuri, site başına 20-30 sayfa tahrif edilmiş 50.000'den fazla sitenin saldırıya uğradığını tahmin ediyor. Bu, tahminin alt ucunda kabaca bir milyon olur ve 1,5 milyona kadar çıkar.

Sucuri ayrıca, gönderilerden ve sayfalardan PHP yürütülmesine izin veren eklentileri kullanan sitelerde uzaktan kod yürütme (RCE) saldırıları şeklinde REST API güvenlik açığı üzerinde daha ciddi girişimler görmeye başlıyor. Böyle bir kampanya, güvenliği ihlal edilmiş bir siteden içerik eklemek ve ardından /wp-content/uploads içinde gizlenmiş bir arka kapı eklemek için bir PHP eklentisi enjekte etmeye çalışır.

Cid, "Tasfiyeler ekonomik getiri sağlamaz, bu yüzden muhtemelen yakında ölecek" dedi. “Saldırganlara bir sitenin tam kontrolünü verdiği ve para kazanmanın birden fazla yolunu sunduğu için komutları yürütme girişimleri (RCE) ve SPAM SEO / bağlı kuruluş bağlantısı / reklam enjeksiyonları kalacak. Birkaç sitede denendiklerini görmeye başlıyoruz ve önümüzdeki günlerde, haftalarda ve muhtemelen aylarda bu güvenlik açığının kötüye kullanılacağı yön bu olacak."

Bilgisayar korsanları 4.7.2'ye güncellenmemiş siteleri hedefliyor - aralarında herhangi bir kalıp yok gibi görünüyor. En aktif kampanyalar için Google sonuçlarına hızlı bir bakış, güvenliği ihlal edilen sitelerin blogları, medyayı, hükümet, eğitim, spor, tıp ve teknoloji web sitelerini içerdiğini gösteriyor.

REST API Neden Varsayılan Olarak Etkinleştirildi?

Plan, gelecekte REST API'ye güvenmek için daha fazla yönetici ve eklenti işlevselliği için olduğundan, WordPress REST API'si varsayılan olarak etkindir. Son saldırılardan sonra, birkaç kullanıcı neden varsayılan olarak etkinleştirildiğini sormak için güvenlik açığının ifşası hakkında yorum yaptı.

"Güvenlik sorunu, sitelerimin hiçbirinde kullanmadığım bir özellikte (REST API) ve yine de, bu özellik ilk önce varsayılan olarak etkinleştirildi ve ikinci olarak WordPress 4.7'den beri bir eklentiye bile ihtiyacınız var - bu daha fazla güvenlik sorununa neden olabilir - özelliği devre dışı bırakmak için?” bir kullanıcı (@helios2121) gönderiye yorum yaptı. “Lütfen güvenlik yaklaşımınızı yeniden düşünün. Herkesin kaydolması gerekmeyen özellikler yapın. Veya en azından ek eklentiler gerektirmeden devre dışı bırakmanın bir yolunu verin.”

Morten Rand-Hendriksen, varsayılan olarak REST API'sinin devre dışı bırakılmasını ve yalnızca site yöneticisi talep ettiğinde veya bir tema veya eklenti buna bağlı olduğunda etkinleştirilmesini tartışmak için bir izleme bileti açtı.

Core Committer Sergey Biryukov, planın REST API'ye dayanan daha fazla temel işlevsellik sunmak olduğunu doğruladı. Biryukov, "REST API'yi kapatmak admin-ajax.php'yi kapatmak gibidir - her ikisi de sitenizi bozar" dedi.

Rand-Hendriksen, yönetici amaçları için REST API'nin varsayılan olarak açık olmasına izin verirken içerik uç noktalarının neden varsayılan olarak korunamadığını sordu. Başka bir kullanıcı, Kullanıcılar uç noktasının neden varsayılan olarak korunmadığını sordu (ör. https://news.microsoft.com/wp-json/wp/v2/users veya https://www.obama.org/wp-json/wp) /v2/users), 4.7+ kullanan herhangi bir sitede "tüm kullanıcı adlarını almayı her zamankinden daha kolay hale getiriyor".

Core Committer James Nylen, "Sitelerinizdeki REST API'yi gerçekten devre dışı bırakmak istiyorsanız, şu anki önerimiz şudur: onu kimliği doğrulanmış kullanıcılarla sınırlandırın" dedi. "Ancak, REST API'nin benimsenmesini ve kullanımını artırmaya devam etmek istiyoruz ve bu değişikliğin bile API güdümlü temalar ve yerleştirmeler gibi zaman geçtikçe daha fazla WP işlevselliğini bozacağını umuyorum."

Nylen, WordPress 4.7+ kullanan sitelerde bu öneriye uymak isteyenler için Disable JSON API eklentisini önerir. Eklentinin şu anda 10.000'den fazla aktif yüklemesi var.

WordPress güvenlik ekibi, ana bilgisayarların ve güvenlik firmalarının sorun kamuya açıklanmadan önce korumaları devreye sokmasına yardımcı olarak saldırıları azaltmak için özenle çalıştı. Ancak, güvenlik açığının tam açıklaması, normal WordPress site sahipleri arasında yaygın olarak okunmayan bir site olan Make/Core blogunda gizliydi. Açıklamanın bağlantısı, bir hafta sonra WordPress haber blogunda bir önceki gönderiye ek olarak yayınlandı.

@johnrork kullanıcısı, "Bu sorunun sorumlu bir şekilde ifşa edilmesini ve çözme çabasını takdir etsem de, yalnızca önceki bir gönderiye güncelleme eklemek yerine WordPress Haber sitesinde yeni bir gönderi aracılığıyla gelecekteki duyuruları yapmayı düşünürsünüz" dedi. resmi açıklama hakkında. "Çarşamba günü RSS okuyucumda bu yeni bir öğe olarak görünseydi, tehlikeye atılmaktan kaçınabilecek tek kişi muhtemelen ben değilim."

Make bloglarını okuyanlar, kendi sitelerini ve/veya müşterilerinin sitelerini düzeltmeye bir adım önde başladı. Güvenlik güncellemeleri hakkında bilgi için WordPress haber bloguna güvenenler, muhtemelen gönderiyi ilk yayınlandığında okudular ve bir hafta sonra güncellemeyi görmek için asla geri dönmediler. Bu ciddi bir sorun, WordPress'in haber blogunda yeni bir gönderide şeffaflığını garanti etti. Bu aynı zamanda resmi WordPress hesabında ve bir milyondan fazla beğeniye sahip Facebook hesabında yarım milyondan fazla takipçiye otomatik olarak bir tweet gönderirdi.

Neyse ki, saldırganların bu güvenlik açığını geri almasına izin verebilecek eklentilere sahip savunmasız sitelerin sayısı çok daha az. Tahrif edilmiş siteler utanç vericidir ancak düzeltilmesi kolaydır. Çoğu durumda, yöneticilerin yalnızca 4.7.2'ye güncellemesi ve tahrif edilmiş gönderileri en son revizyona geri alması gerekir. Çoğu site sahibinin, kamuya açıklandıktan sonra istismarların ne kadar hızlı ortaya çıkmaya başladığı hakkında hiçbir fikri yoktur, ancak bu durum, WordPress'i güncellemenin önemini ve otomatik güncellemeleri açık bırakmanın yararını nazikçe hatırlattı.