PHP layihəsinin git repozitoriyası və istifadəçi bazasının kompromisləri haqqında hesabat

Xüsusi hazırlanmış User Agent başlığı ilə sorğu göndərilərkən aktivləşdirilmiş “backdoor”u olan PHP layihəsinin Git repozitoriyasında iki zərərli törətmənin müəyyən edilməsi ilə bağlı insidentin təhlilinin ilk nəticələri dərc edilib. Təcavüzkarların fəaliyyətinin izlərinin öyrənilməsi zamanı belə qənaətə gəlinib ki, git repozitoriyasının yerləşdiyi git.php.net serverinin özü sındırılmayıb, lakin layihə tərtibatçılarının hesablarının olduğu verilənlər bazası oğurlanıb. .

Mümkündür ki, təcavüzkarlar DBMS-də saxlanılan istifadəçi məlumat bazasını master.php.net serverinə yükləyə biliblər. master.php.net məzmunu artıq sıfırdan quraşdırılmış yeni main.php.net serverinə köçürülüb. Php.net infrastrukturuna daxil olmaq üçün istifadə edilən bütün tərtibatçı parolları sıfırlanmış və onların dəyişdirilməsi prosesinə xüsusi parol bərpa forması vasitəsilə başlanılmışdır. git.php.net və svn.php.net repozitoriyaları yalnız oxumaq üçün qalır (inkişaf GitHub-a köçürülüb).

PHP-nin qurucusu Rasmus Lerdorfun hesabı vasitəsilə edilən ilk zərərli əməl aşkar edildikdən sonra onun hesabının sındırıldığı güman edilirdi və əsas PHP tərtibatçılarından biri olan Nikita Popov dəyişiklikləri geri götürdü və öhdəçilik hüquqlarını blokladı. problemli hesab. Bir müddət sonra başa düşdü ki, bloklama heç bir məna kəsb etmir, çünki rəqəmsal imzadan istifadə edərək öhdəliklərin yoxlanılması olmadan php-src repozitoriyasına çıxışı olan istənilən iştirakçı qondarma müəllif adını əvəz etməklə dəyişiklik edə bilər.

Daha sonra təcavüzkarlar Nikitanın özü adından zərərli bir əməl göndərdilər. Repozitoriyalara girişi təşkil etmək üçün istifadə edilən gitolite xidmətinin qeydlərini təhlil edərək, faktiki olaraq dəyişiklikləri edən iştirakçını müəyyən etməyə cəhd edildi. Bütün öhdəliklər üçün mühasibat uçotunun daxil edilməsinə baxmayaraq, iki zərərli dəyişiklik üçün jurnalda heç bir qeyd yox idi. İnfrastrukturun kompromis olduğu aydın oldu, çünki gitolit vasitəsilə əlaqəni keçərək öhdəliklər birbaşa əlavə edildi.

git.php.net serveri dərhal söndürüldü və əsas depo GitHub-a köçürüldü. Tələsik, unudulmuşdu ki, depoya daxil olmaq üçün gitolite istifadə edərək SSH-dən əlavə, HTTPS vasitəsilə öhdəliklər göndərməyə imkan verən başqa bir giriş var idi. Bu halda, Git ilə qarşılıqlı əlaqə üçün git-http-backend istifadə edildi və autentifikasiya master.php.net serverində DBMS-də yerləşdirilən verilənlər bazasına daxil olaraq etimadnamələri yoxlayan Apache2 HTTP serverindən istifadə edərək həyata keçirildi. Girişə yalnız açarlarla deyil, həm də adi parolla icazə verilirdi. http server qeydlərinin təhlili HTTPS vasitəsilə zərərli dəyişikliklərin əlavə edildiyini təsdiqlədi.

Jurnalları öyrənərkən məlum oldu ki, təcavüzkarlar ilk dəfə qoşulmayıblar, lakin əvvəlcə hesab adını tapmağa çalışıblar, lakin onu müəyyən etdikdən sonra ilk cəhddə daxil olublar, yəni. onlar Rasmus və Nikitanın parollarını əvvəlcədən bilirdilər, lakin loginlərini bilmirdilər. Təcavüzkarlar DBMS-ə giriş əldə edə bildilərsə, niyə orada göstərilən düzgün girişdən dərhal istifadə etmədikləri aydın deyil. Bu uyğunsuzluq hələ etibarlı izahat almayıb. Master.php.net saytının sındırılması ən çox ehtimal olunan ssenari hesab olunur, çünki bu server çox köhnə koddan və uzun müddət yenilənməmiş köhnəlmiş ƏS-dən istifadə edirdi və boşluqları düzəldilməmişdir.

Görülən tədbirlərə master.php.net server mühitinin yenidən quraşdırılması və skriptlərin PHP 8-in yeni versiyasına köçürülməsi daxildir. DBMS ilə işləmək üçün kod SQL kodunun əvəzlənməsini çətinləşdirən parametrləşdirilmiş sorğulardan istifadə etmək üçün dəyişdirilib. Bcrypt alqoritmi parol heşlərini verilənlər bazasında saxlamaq üçün istifadə olunur (əvvəllər parollar etibarsız MD5 heşindən istifadə etməklə saxlanılırdı). Mövcud parollar sıfırlanır və sizdən parol bərpa forması vasitəsilə yeni parol təyin etməyiniz xahiş olunur. HTTPS vasitəsilə git.php.net və svn.php.net repozitoriyalarına giriş MD5 heşləri ilə əlaqələndirildiyi üçün git.php.net və svn.php.net-i yalnız oxumaq rejimində buraxmaq, həmçinin hamısını köçürmək qərara alındı. qalanları GitHub-da əsas PHP repozitoriyasına bənzər PECL genişləndirmə anbarlarıdır.

Mənbə: opennet.ru

Добавить комментарий