PHP loyihasining git ombori va foydalanuvchi bazasining buzilishi haqida hisobot

Maxsus ishlab chiqilgan User Agent sarlavhasi bilan so‘rov yuborishda faollashtirilgan backdoor bilan PHP loyihasining Git omborida ikkita zararli jinoyatni aniqlash bilan bog‘liq hodisa tahlilining birinchi natijalari e’lon qilindi. Hujumchilar faoliyatining izlarini oʻrganish jarayonida git repositoriyasi joylashgan git.php.net serverining oʻzi buzilmagan, lekin loyiha ishlab chiquvchilari akkauntlari boʻlgan maʼlumotlar bazasi buzilgan degan xulosaga keldi. .

Ehtimol, tajovuzkorlar ma'lumotlar bazasi bazasida saqlangan foydalanuvchi ma'lumotlar bazasini master.php.net serveriga yuklab olishlari mumkin. Master.php.net tarkibi allaqachon noldan o'rnatilgan yangi main.php.net serveriga ko'chirilgan. php.net infratuzilmasiga kirish uchun foydalanilgan barcha ishlab chiquvchi parollari qayta o'rnatildi va ularni o'zgartirish jarayoni maxsus parolni tiklash formasi orqali boshlandi. Git.php.net va svn.php.net omborlari faqat o'qish uchun qoladi (ishlab chiqish GitHubga ko'chirildi).

PHP asoschisi Rasmus Lerdorfning akkaunti orqali amalga oshirilgan birinchi zararli jinoyat aniqlangandan so‘ng, uning akkaunti buzib kirilgan deb taxmin qilingan va PHPning asosiy ishlab chiquvchilaridan biri Nikita Popov o‘zgarishlarni qaytarib olib, majburiyat huquqlarini bloklagan. muammoli hisob. Bir muncha vaqt o'tgach, blokirovka qilish mantiqiy emasligi tushunildi, chunki raqamli imzo yordamida majburiyatlarni tekshirmasdan, php-src repozitoriyasiga kirish huquqiga ega bo'lgan har qanday ishtirokchi soxta muallif nomini almashtirish orqali o'zgartirish kiritishi mumkin edi.

Keyinchalik, hujumchilar Nikitaning o'zi nomidan yomon niyatli xabar yuborishdi. Omborlarga kirishni tashkil qilish uchun foydalaniladigan gitolite xizmatining jurnallarini tahlil qilib, haqiqatda o'zgarishlarni amalga oshirgan ishtirokchini aniqlashga harakat qilindi. Barcha majburiyatlar uchun buxgalteriya hisobi kiritilganiga qaramay, ikkita zararli o'zgartirishlar jurnalida hech qanday yozuv yo'q edi. Infratuzilmada murosa borligi aniq bo'ldi, chunki majburiyatlar gitolit orqali ulanishni chetlab o'tib, to'g'ridan-to'g'ri qo'shilgan.

Git.php.net serveri zudlik bilan o'chirildi va asosiy ombor GitHubga o'tkazildi. Shoshilinch ravishda, omborga kirish uchun gitolite yordamida SSH-dan tashqari, HTTPS orqali majburiyatlarni yuborish imkonini beruvchi yana bir kirish mavjudligi unutildi. Bunday holda, Git bilan o'zaro aloqada bo'lish uchun git-http-backend ishlatilgan va autentifikatsiya master.php.net serveridagi DBMSda joylashgan ma'lumotlar bazasiga kirish orqali hisob ma'lumotlarini tekshirgan Apache2 HTTP serveri yordamida amalga oshirildi. Kirish nafaqat kalitlar bilan, balki oddiy parol bilan ham ruxsat etilgan. http server jurnallari tahlili zararli o'zgarishlar HTTPS orqali qo'shilganligini tasdiqladi.

Jurnallarni o'rganishda ma'lum bo'lishicha, hujumchilar birinchi marta ulanmagan, lekin dastlab hisob nomini topishga harakat qilgan, ammo uni aniqlagandan so'ng, ular birinchi urinishda tizimga kirishgan, ya'ni. ular Rasmus va Nikitaning parollarini oldindan bilishgan, lekin loginlarini bilishmagan. Agar tajovuzkorlar DBMSga kirish imkoniga ega bo'lsalar, nima uchun ular darhol u erda ko'rsatilgan to'g'ri logindan foydalanmaganliklari noma'lum. Ushbu nomuvofiqlik hali ishonchli tushuntirishni olmagan. Master.php.net saytini buzish eng mumkin bo'lgan stsenariy hisoblanadi, chunki bu server juda eski kod va uzoq vaqt davomida yangilanmagan va zaifliklarga ega bo'lgan eskirgan operatsion tizimdan foydalangan.

Amalga oshirilgan harakatlar master.php.net server muhitini qayta o'rnatish va skriptlarni PHP 8 ning yangi versiyasiga o'tkazishni o'z ichiga oladi. DBMS bilan ishlash uchun kod SQL kodini almashtirishni murakkablashtiradigan parametrlangan so'rovlardan foydalanish uchun o'zgartirildi. Bcrypt algoritmi parol xeshlarini ma'lumotlar bazasida saqlash uchun ishlatiladi (ilgari parollar ishonchsiz MD5 xesh yordamida saqlangan). Mavjud parollar qayta tiklanadi va sizdan parolni tiklash formasi orqali yangi parol o'rnatish so'raladi. HTTPS orqali git.php.net va svn.php.net omborlariga kirish MD5 xeshlari bilan bog'langanligi sababli, git.php.net va svn.php.net ni faqat o'qish rejimida qoldirishga qaror qilindi, shuningdek, barchasini ko'chirishga qaror qilindi. qolganlari GitHub-dagi PECL kengaytmali omborlari, asosiy PHP omboriga o'xshash.

Manba: opennet.ru

a Izoh qo'shish