PHP projekti git-repo ja kasutajabaasi kompremiteerimise aruanne

Avaldatud on esimesed tulemused PHP projekti git-repo seonduva intsidenti analĂŒĂŒsimisest, kus tuvastati kaks pahatahtlikku commit'i, millel on tagaukse funktsioon, mis aktiveerub spetsiaalse User Agent pĂ€ise koosseisuga saadetud pĂ€ringu puhul. RĂŒndajate tegevuse jĂ€lgede uurimisel jĂ”uti jĂ€reldusele, et otseselt serverit git.php.net, millel git-repo asus, ei olnud hĂ€kitud, vaid PHP projekti arendajate kontode andmebaas oli kompromiteeritud.

Ei vĂ€listata, et kurjategijad said laadida alla kasutajate andmebaasi, mis oli salvestatud andmebaasi serveris master.php.net. Sisaldus master.php.net on juba kantud ĂŒle uuele serverile main.php.net, mis on loodud nullist. KĂ”ik arendajate paroolid, mida kasutati php.net infrastruktuuri juurdepÀÀsuks, on lĂ€htestatud ja algatatud on protsess nende vahetamiseks spetsiaalse parooli taastamise vormi kaudu. Git.php.net ja svn.php.net repod jÀÀvad saadaval ainult lugemisreĆŸiimis (arendus on viidud GitHubi).

PĂ€rast esimest pahatahtlikku commit'i, mis tehti Rasmuse Lerdorfi, PHP asutaja, konto kaudu, tekkis oletus, et tema konto on hĂ€kitud ja Nikita Popov, ĂŒks PHP vĂ”tme arendajatest, kĂ€skis muudatused tagasi vĂ”tta ja blokeeris probleemse konto commitimisĂ”igused. MĂ”ne aja pĂ€rast tuli arusaamine, et blokeerimisest ei olnud mĂ”tet, kuna digi allkirjade kontrollimise puudumisel sai igaĂŒks, kellel oli juurdepÀÀs php-src'ile, teha muudatuse, kasutades vale autorinime.

SeejĂ€rel saatsid rĂŒndajad pahatahtliku commit'i Nikita nimel. Gitolite teenuse logide analĂŒĂŒsi kaudu, mida kasutati repodele juurdepÀÀsu korraldamiseks, tehti katse mÀÀrata osaleja, kes tĂ”eliselt muutuse tegi. Hoolimata kĂ”igi commit'ide jĂ€lgimise aktiveerimisest, ei olnud kahel pahatahtlikul muudatusel logis kirjeid. Selgus, et infrastruktuur on kompromiteeritud, kuna commit'id olid lisatud otse, mööda gitolite'i ĂŒhendust.

Kiirelt katkestati server git.php.net, ja peamine registri viidi GitHubi. HĂ€das jĂ€i tĂ€helepanuta, et registrile pÀÀsemiseks oli lisaks SSH-le gitolite'i abil veel ĂŒks sissepÀÀs, mis vĂ”imaldas commitide saatmist HTTPS-i kaudu. Antud juhul kasutati Gitiga suhtlemiseks backend'i git-http-backend, ning autentimine toimus Apache2 HTTP-serveri kaudu, mis kontrollis Ă”igusi andmebaasi kaudu, mis asus andmebaasi halduses. serveris master.php.net. SissepÀÀsu lubati mitte ainult vĂ”tmepĂ”hiselt, vaid ka tavalise parooliga. HTTP-serveri logide analĂŒĂŒs kinnitas, et pahatahtlikud muudatused lisati HTTPS-i kaudu.

Logide uurimisel selgus, et rĂŒndajad ei pÀÀsenud sisse esimesel katsel, vaid proovisid alguses kontonime arvata, kuid pĂ€rast Ă”ige nime tuvastamist pÀÀsesid nad sisse esimesel katsel, st nad teadsid eelnevalt Rasmu ja Nikita paroole, kuid mitte nende logineid. Kui rĂŒndajad suudsid pÀÀseda andmebaasi, siis on arusaamatuks, miks nad kohe ei kasutanud seal mÀÀratud Ă”iget logini. Seda vastuolu ei ole seni usaldusvÀÀrselt selgitatud. master.php.net'i hĂ€kkimist peetakse tĂ”enĂ€olisemaks stsenaariumiks, kuna seal serveris kasutati vĂ€ga vana koodi ja vananenud operatsioonisĂŒsteemi, mida pole pikka aega uuendatud ja milles on parendamata turvaauke.

Tehtud tegevustest mĂ€rgitakse serveri master.php.net keskkonna uuesti installimist ja skriptide viimist uuele PHP 8 versioonile. Andmebaasiga töötamiseks muudetud kood on kohandatud kasutama parameetrilisi pĂ€ringuid, mis raskendavad SQL-koodi sisestamist. Paroolide hashide sĂ€ilitamiseks andmebaasis kasutatakse bcrypt algoritmi (varem hoiti paroole usaldusvÀÀrse MD5 hash'iga). Olemasolevad paroolid on lĂ€htestatud ja pakutud on uut parooli seadmist parooli taastamise vormi kaudu. Kuna pÀÀs registritele git.php.net ja svn.php.net HTTPS-i kaudu oli seotud MD5 hash'idega, otsustati jĂ€tta git.php.net ja svn.php.net ainult lugemisreĆŸiimi, ning edastada kĂ”ik PECL laiendite registrid, mis seal veel alles on, GitHubi, nagu pĂ”hiregister PHP-l.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster