Janë publikuar rezultatet e para të hetimit të incidentit që lidhet me identifikimin në Git-repozitorin e projektit PHP të dy komiteteve të dëmshme me backdoor, të aktivizuara gjatë dërgimit të një kërkese me një titull të veçantë User Agent. Gjatë studimit të gjurmëve të veprimit të sulmuesve, u arrit në përfundimin se serveri git.php.net, në të cilin ishte vendosur git-repozitori, nuk ishte komprometuar, por ishte kompromentuar databaza me llogaritë e zhvilluesve të projektit.
Nuk përjashtohet mundësia që sulmuesit të kenë arritur të ngarkojnë bazën e të dhënave të përdoruesve, e cila ruhej në DB në serverin master.php.net. Përmbajtja e master.php.net tashmë është transferuar në serverin e ri main.php.net, i vendosur nga e para. Të gjitha fjalëkalimet e zhvilluesve, të përdorura për qasje në infrastrukturën php.net, janë resetuar dhe është iniciuar procesi i ndërrimit të tyre përmes një forme të veçantë për rikuperimin e fjalëkalimit. Repozitoritë git.php.net dhe svn.php.net mbeten të disponueshme në mënyrë vetëm për lexim (zhvillimi është kaluar në GitHub).
Pas zbulimit të komedit të parë të dëmshëm, të kryer nga llogaria e Rasmus Lerdorf, themeluesit të PHP, u supozua se llogaria e tij ishte komprometuar dhe Nikita Popov, një nga zhvilluesit kryesorë të PHP, rrokulli i bëri ndryshimet dhe bllokoi të drejtat e komedive për llogarinë problematike. Pas një kohe, erdhi një kuptim se bllokimi nuk kishte kuptim, pasi pa verifikimin e komedive përmes nënshkrimit digjital, çdo pjesëmarrës me qasje në repozitorin php-src mund të bënte një ndryshim, duke futur një emër të rremë autori.
Më pas, sulmuesit dërguan një komed të dëmshëm në emër të vetë Nikitës. Përmes analizës së logeve të shërbimit gitolite, i cili përdoret për të organizuar aksesin në repozitorë, u bë një përpjekje për të përcaktuar pjesëmarrësin që vërtet bëri ndryshimet. Pavarësisht se ishte përfshirë regjistrimi i të gjitha komedive, për dy ndryshime të dëmshme nuk kishte regjistrime në log. U bë e qartë se kishte një kompromitim të infrastrukturës, pasi komedit ishin shtuar drejtpërdrejt, duke shmangur lidhjen përmes gitolite.
Serveri git.php.net është çaktivizuar menjëherë dhe depozita kryesore është transferuar në GitHub. Në nxitim u harua se për të aksesuar depozitën, përveç SSH me përdorimin e gitolite, kishte një hyrje tjetër që lejonte dërgimin e komiteteve përmes HTTPS. Në këtë rast, për ndërveprimin me Git u përdor backend-i git-http-backend, dhe autentifikimi u krye përmes serverit HTTP Apache2, i cili kontrollonte kredencialet duke iu drejtuar një baze të dhënash e vendosur në DBMS në serveri master.php.net. Lejohej hyrja jo vetëm përmes çelësave, por edhe me një fjalëkalim të zakonshëm. Analiza e logëve të serverit http konfirmoi se ndryshimet e keqdashura ishin shtuar përmes HTTPS.
Gjatë analizimit të logeve, u zbulua se sulmuesit nuk u lidhën në tentativën e parë, por fillimisht përpiqeshin të gjenin emrin e llogarisë, dhe pas identifikimit hynë në sistem me tentativën e parë, dmth. ata e dinin paraprakisht fjalëkalimin e Rasmu dhe Nikita, por nuk e dinin emrin e tyre të përdoruesit. Nëse sulmuesit arritën të aksesojnë DBMS, nuk është e qartë pse ata nuk e përdorën menjëherë emrin e saktë të përdoruesit të treguar aty. Kjo pasaktësi ende nuk ka marrë një shpjegim të besueshëm. Hacking-i i master.php.net shihet si skenari më i mundshëm, pasi në këtë serveri u përdor një kod shumë i vjetër dhe një OS e kaluar, të cilat nuk janë azhurnuar prej kohësh dhe kanë dobësi të pa riparuara.
Veprimet e ndërmarra përfshijnë rivendosjen e mjedisit të serverit master.php.net dhe kalimin e skripteve në versionin e ri PHP 8. Kodi për punën me SGBD është riparuar për të përdorur kërkesa parametrizuese, të cilat e vështirësojnë infrastrukturën e kodit SQL. Për ruajtjen e hash-eve të fjalëkalimeve në DB është përdorur algoritmi bcrypt (më parë fjalëkalimet u ruajtën duke përdorur hash-in e pasigurt MD5). Fjalëkalimet ekzistuese janë riaktivizuar dhe u është kërkuar përdoruesve që të vendosin një fjalëkalim të ri përmes formularit të rikuperimit të fjalëkalimit. Duke qenë se aksesit në depot git.php.net dhe svn.php.net përmes HTTPS iu dha një lidhje me hash-et MD5, është vendosur që git.php.net dhe svn.php.net të mbeten në modin vetëm për lexim, si dhe të transferohet të gjitha depot e mbetura të zgjerimeve PECL në GitHub, në përputhje me depot kryesore të PHP.
Burimi: opennet.ru
