Araştırmacı, iş bulmak için popüler Packagist PHP paketlerini ele geçirdi


Paketçi

Bir araştırmacı, bazıları ömürleri boyunca yüz milyonlarca kez kurulmuş olan bir düzineden fazla Packagist paketini ele geçirdi.

Araştırmacı, BleepingComputer’a ulaştı ve bu paketleri ele geçirerek bir iş bulmayı umduğunu belirtti. Ve bunun işe yarayacağından oldukça emin görünüyor.

En az 14 Packagist paketi ele geçirildi

Dün, ‘neskafe3v1’ takma adlı bir araştırmacı BleepingComputer’a ulaştı ve biri 500 milyonun üzerinde kuruluma sahip on dört Packagist paketini ele geçirdiğini bildirdi.

Packagist, bir bağımlılık yönetim aracı olan Composer aracılığıyla kurulabilen PHP paketlerinin birincil kayıt defteridir. Packagist, bu paketleri barındırmak yerine, GitHub’da yayınlanan açık kaynak paketlerini bir araya getiren bir meta veri dizini olarak hizmet eder. Bu paketler daha sonra geliştiriciler tarafından çalıştırılarak makinelerine kurulabilir. besteci kurulumu emretmek.

Kaçırılan paketlerin isimleri şunları içerir:

Paket ismi Toplam Kurulum sayısı
acmephp/acmephp 124.860
acmephp/çekirdek 419.258
acmephp/ssl 531.692
doktrin/doktrin önbellek paketi 73.490.057
doktrin/doktrin modülü 5.516.721
doktrin/doktrin-mongo-odm-modülü 516.441
doktrin/doktrin-orm-modülü 5.103.306
doktrin/başlangıççı 526.809.061
büyüme kitabı/büyüme kitabı 97.568
jdorn/dosya sistemi önbelleği 32.660
jdorn/sql-biçimlendirici 94.593.846
khanamiryan/qrcode-detector-decoder 20.421.500
nesne jimnastiği/phpcs jimnastiği kuralları 2.196.380
tga/simhash-php (aka tgalopin/simhashphp) 30.555

Araştırmacı, BleepingComputer’a, 1 Mayıs Pazartesi günü, bu paketler için Packagist sayfalarının, her paket için meşru GitHub deposunun aksine, araştırmacının (sahte) deposunu gösterecek şekilde değiştirildiğini gösteren kanıt sağladı.

Örnek olarak, Packagist sayfası şu şekildedir: acmephp paket Pazartesi günü yayınlandı; GitHub bağlantısı orijinal yerine araştırmacının deposuna değiştirildi github.com/acmephp/acmephp.

acmephp için Ele Geçirilmiş Packagist sayfası
‘ için Ele Geçirilmiş Packagist sayfasıacmephp’ paket (bilgisayarın sesi)

Bu değişiklikler, BleepingComputer tarafından kontrol edildiği şekliyle Packagist ekibi tarafından geri alındı.

Packagist’te yayınlama süreci, npm veya PyPI gibi açık kaynak depolarından biraz farklıdır. Bir geliştirici, ikili dosyaları veya yazılım sürümlerini doğrudan Packagist.org’a yüklemek yerine, yalnızca bir Packagist.org hesabı oluşturur ve belirli bir paket için GitHub deposuna bir bağlantı “gönderir”. Packagist’in gezgini daha sonra sağlanan depoyu ziyaret eder ve o paket için Packagist sayfasında görüntülenecek tüm verileri toplar.

Bir geliştirici, Composer’ı ‘install’ veya ‘update’ komutlarıyla çalıştırdığında, Composer örneği önce yerel olarak paketlerin varlığını arayabilir, başarısız olursa, bu paket için varsayılan olarak Packagist’te arama yapar ve bu paket için listelenen GitHub URL’sini alır. . Paketin içeriği daha sonra paketin Packagist sayfasında listelenen bu GitHub deposundan indirilir.

Bu, npm veya PyPI’nin çalışma şeklinin tam tersidir; yani bu kayıt defterleri, yazılım sürümlerini doğrudan sunucularından barındırır ve dağıtır.

Araştırmacı, bu paketlerin her biri için Packagist sayfasını değiştirerek, Composer ortamlarında kullanılan kurulum iş akışını etkili bir şekilde ele geçirdi. Geliştiriciler artık bir paketin içeriğini neskafe3v1projenin deposu yerine GitHub deposu.

Gösterimi minimumda tutmak için araştırmacı, bu paketlerin içindeki bir uygulama bildirimine benzer bir şey olan composer.json dosyasını şu şekilde değiştirmiştir:

“Pwned by neskafe3v1…. Uygulama Güvenliği, Penetrasyon Tester, Siber Güvenlik Uzmanı olarak iş arıyorum.”

Araştırmacı, Packagist paketlerinin bildirim dosyasını değiştirir
Araştırmacı, hack’i göstermek için besteci.json dosyalarını değiştirdi (bilgisayarın sesi)

Bunu, orijinal proje havuzunu çatallayarak, besteci.json içindeki “açıklama” alanını değiştirerek ve değişikliği kendi çatallanmış deposuna işleyerek yaptı. Değişiklikleri hiçbir noktada orijinal depoda birleştirmedi (bunu yapmak, ek erişim gerektirecek ve muhtemelen bakıcıların incelemesini davet edecekti).

Bunun yerine, araştırmacı görünüşe göre bakımcıların Packagist hesaplarına erişim sağladı ve GitHub URL’lerini listelenen paketlere, çatallı depolarınınkiyle değiştirdi. Ancak, BleepingComputer’a kaçırmak için kullanılan yöntemi tam olarak açıklamadı.

BleepingComputer, araştırmacının bu paketleri kaçırmak için kullandığı tekniği tam olarak ortaya çıkarmak için baskı yaptığında, bunun sıfırıncı gün değil, bilinen bir teknik olduğu söylendi. Ancak ele geçirmenin, örneğin kimlik bilgilerinin tehlikeye atılması, hizmet sahibinin e-posta adresinin süresi dolmuş etki alanı nedeniyle ele geçirilmesi veya başka bir teknik yoluyla gerçekleştirilip gerçekleştirilmediği bize söylenmedi:

“Gördüğünüz gibi, bir iş arıyorum (bu ‘Ищу работу на позиции…’ mesajı, ‘İş arıyorum…’ anlamına gelir), bu yüzden bir rapor vereceğim. Araştırmacı BleepingComputer’a bir şirket tarafından işe alındı” dedi ve tüm kaçırma kampanyasını “bir çalışan olarak kendimin reklamına” benzetti.

“Başarı olana kadar konuşacak bir şey yok.”

Kimlik bilgileri ele geçirilerek ele geçirildi

Packagist ekibi, BleepingComputer’a yaptığı açıklamada, bu eylemin bir sonucu olarak şimdiye kadar platform üzerinde herhangi bir kötü niyetli etkinin gözlemlenmediğini söylerken, devralmanın gerçekten de bakıcı hesaplarının kimlik bilgilerinin ele geçirilmesinden kaynaklandığını doğruladı.

Orijinal Composer geliştiricilerinden biri olan Packagist.org’dan Nils Aderman, BleepingComputer’a “Bildiğimiz kadarıyla bu herhangi bir kötü amaçla kullanılmadı ve güvenli olmayan parolalara ve eksik 2 faktörlü kimlik doğrulamaya sahip birkaç eski hesapla sınırlıydı.” .

“Dört hesabın tümü, diğer platformlardaki önceki olaylarda sızdırılan paylaşılan şifreleri kullanıyor gibi görünüyor. Lütfen şifreleri tekrar kullanmayın” diyerek Packagist yöneticilerini uyarıyoruz.

Yöneticiler bugün yayınlanan bir blog gönderisinde “2 Mayıs’ta, 07:21 UTC’de, Juha Suni tarafından URL’nin birden çok Doctrine paketine dönüştürüldüğü konusunda bilgilendirildik.”

Marco Pivetta namı diğer Ocramius ile birlikte çalışan Packagist yöneticileri, erişilen tüm hesapları anında belirledi, bunlara erişimi devre dışı bıraktı ve GitHub URL’lerini eski değerlerine geri yükledi. Restorasyon çalışması Salı sabahı tamamlandı.

Araştırmacı ayrıca BleepingComputer’a tekniği kötü amaçlı yazılım dağıtmak için kötüye kullanmadığını, ancak aynı zamanda Olumsuz Packagist’e veya paket sahiplerine, bu araştırmanın ‘etik’ doğasıyla ilgili olarak kaşları kaldıran küçük deneyi bildirdi.

“Yaptığım tek şey – ‘açıklama’ alanını değiştirdim. besteci.json dosyalar,” dedi araştırmacı bizi Git’in taahhüt ettiği gibi kanıtlara işaret ederek.

“Github.com/acmephp/core (original) olan bağlantıyı az önce …my fork olarak değiştirdim. Kötü amaçlı yazılım yok, orijinal dosyaları benimkine dağıtabilirsiniz. Saldırıyı kimseye bildirmedim, ne Packagist yöneticileri ne de paket sahipleri.”

Packagist yöneticileri, blog gönderilerinde araştırmacılardan hataları ve güvenlik açıklarını sorumlu bir şekilde bildirmelerini talep ediyor.

“Bir güvenlik araştırmacısıysanız ve bir Packagist.org güvenlik açığından haberdarsanız veya Packagist.org’da araştırma yapmak istiyorsanız, sizden olumsuz kullanıcı etkisinden kaçınmak ve bu güvenlik açıklarını sorumlu bir şekilde ifşa etmek için bizimle test koordinasyonu yapmanızı rica ediyoruz.”

“Bize [email protected] adresinden ulaşabilirsiniz ve tüm taleplere veya raporlara anında yanıt veririz. Elbette kredi sağlar ve bildirilen güvenlik açıklarının ayrıntılarını yayınlarız…”



Source link