JQuery Saldırısı NPM ve GitHub’ı Vurdu, Web Formu Verilerini Çıkarabiliyor


Güvenlik araştırmacıları, jQuery’nin trojanlaştırılmış bir sürümünün jQuery saldırısında kullanılmak üzere npm JavaScript paket yöneticisi, GitHub ve diğer yerlerde yayıldığını keşfetti.

Phylum araştırmacıları, 26 Mayıs’tan beri “kalıcı tedarik zinciri saldırganını” izlediklerini, başlangıçta npm’de, “bir ay boyunca düzinelerce pakette yayınlanan tehlikeye atılmış sürümü gördüğümüz yerde” belirttiler. Araştırdıktan sonra, GitHub gibi diğer platformlarda ve hatta jsDelivr’de CDN tarafından barındırılan bir kaynak olarak truva atı haline getirilmiş jQuery’nin örneklerini bulduk.

Kötü amaçlı paketler web sitesi form verilerini çıkarabilir ve bunları birçok URL’den birine gönderebilir. Araştırmacılar toplamda 33 etki alanında 68 kötü amaçlı paket gözlemledi ve bunları bir blog yazısında listelediler.

Yaygın olarak kullanılan çok sayıda açık kaynak kodu içerdiklerinden, npm ve GitHub gibi platformlar, tehdit aktörlerinin kötü amaçlı kodları dağıtmaya veya tedarik zinciri saldırıları başlatmak için meşru projeleri ele geçirmeye çalışmaları için çekici yerlerdir.

jQuery Saldırısı ‘Yüksek Değişkenlik’ Gösteriyor

Araştırmacılar, jQuery saldırısının “genellikle net, iyi tanımlanmış bir desene ve belirgin bir otomatik yöne sahip olan bu ölçekte gördüğümüz çoğu saldırıdan farklı olduğunu” söyledi. Burada, paketlerin özel doğası ve özel değişkenliği, yayınlandıkları uzun zaman dilimiyle birlikte, her paketin manuel olarak bir araya getirildiğini ve yayınlandığını gösteriyor.

Yayımlanan paketlerin “nispeten minimal” olduğunu ve saldırganın genellikle jQuery olarak adlandırılan en azından bir adet eksiksiz jQuery kopyası içerdiğini söylediler. jquery.min.jsdiğer varyasyonlarla birlikte kayıt.min.js, simge.min.jsVe fontawesome.js. Sızdırma URL’leri genellikle her paket için benzersizdi. Saldırgan, npm’de yeni kullanıcı adları altında yayınladı. Ancak tek bir kullanıcı ara sıra birden fazla ilişkili paket yayınlıyordu. Saldırgan ara sıra aynı proje içinde farklı adlara sahip birden fazla dosya sürümü içeriyordu.

“İlginçtir ki, hemen hemen her paket, npm önbellek klasörü, npm günlükleri klasörü ve npm yayınlarında tipik olarak bulunmayan kişisel dosyaları da içeriyordu. termux.özellikleri Phylum araştırmacıları, “Dosya” dedi.

jQuery Saldırısı Nasıl Çalışır?

Araştırmacılar, kötü amaçlı her paketin jQuery’nin bir kopyasını içerdiğini ancak küçük bir fark olduğunu söyledi: jQuery prototipinin bir parçası olan son işlev, ek kötü amaçlı kod içerecek şekilde değiştirilmişti.

“Saldırganın, jQuery’nin animasyon yardımcı programlarından daha popüler olan fadeTo işlevi tarafından dahili olarak çağrılan, nadiren kullanılan uç işlevine kötü amaçlı yazılımı ustaca gizlediği” yazıldı.

Son yöntem, geçerli zincirdeki en son filtreleme işlemini sonlandırmak ve eşleşen öğeler kümesini önceki durumuna döndürmek için kullanılır. Sağladıkları değiştirilmemiş son yöntem kodu örneği oldukça basittir:

normal jQuery son fonksiyonunormal jQuery son fonksiyonu
Normal jQuery son fonksiyonu (kaynak: Phylum)

Araştırmacıların paylaştığı kötü amaçlı bir örnekte, kod önemli ölçüde daha karmaşıktır:

jQuery saldırısı son işlevi değiştirdijQuery saldırısı son işlevi değiştirdi
jQuery saldırısı son işlevi değiştirdi (kaynak: Phylum)

Saldırganın, engellemeyen bir GET isteğini şu şekilde ateşlediğini belirttiler: $.ajax sayfadaki tüm form verilerinin serileştirilmesiyle oluşturulan bir sorgu parametresi içeren uzak bir URL’ye (($(“form”).serileştir())) ve daha sonra bunu onaltılık bir dizeye kodlıyoruz.

“Bu, bu truva atı haline getirilmiş sürümü kullanıyorsanız, sayfadaki tüm form verilerinin son işlev çağrıldığında dışarı sızdırılacağı anlamına gelir” diye yazdılar.

Geliştiriciler Paketler Konusunda Dikkatli Olmalı

Araştırmacılar, kötü amaçlı yazılımın tetiklenmesi için kullanıcının kötü amaçlı paketlerden birini yüklemesi, eklenen truva atı haline getirilmiş jQuery dosyasını kullanması ve ardından son işlevi veya solmak işlev.

“Bu belirli koşullar zinciri, bunun son derece hedefli bir saldırı mı yoksa saldırganın sadece iyi uyum sağlayıp bu paketleri indiren ve kullanan kullanıcıları rastgele mi etkilediğini belirsizleştiriyor” dediler.

“Paketlerin çokluğu, adlandırma kurallarındaki değişkenlik ve bu paketlere kişisel dosyaların dahil edilmesi, saldırganın yetenekleri ve niyetleri hakkında sorular doğuruyor,” dediler. “Bu faktörler, gerçek kötü amaçlı yazılımın daha karmaşık yapısı ve kötü amaçlılığını açıkça gizlemek için gösterilen çabayla keskin bir şekilde çelişiyor.

“Kötü amaçlı yazılımı tetiklemek için gereken dar koşul kümesine rağmen, paketlerin geniş dağılımı potansiyel etkinin geniş olduğu ve potansiyel olarak birçok şüphesiz geliştiriciyi etkilediği anlamına geliyor. Bu yeni saldırı, tedarik zinciri tehdit aktörlerinin artan karmaşıklığını ve geniş erişim potansiyelini örnekliyor.”

Geliştiriciler için bu tür tedarik zinciri tehditleri, paketleri yalnızca güvenilir kaynaklardan indirmeleri ve düzenli olarak güncelleme ve yama yapmaları gerektiği anlamına gelir. Paket imzalarını doğrulamak ve paket güvenlik araçlarını kullanmak da projelerinin güvenliğini sağlamaya yardımcı olabilir.



Source link