Ripoti juu ya maelewano ya hazina ya git na msingi wa mtumiaji wa mradi wa PHP

Matokeo ya kwanza ya uchanganuzi wa tukio linalohusiana na utambuzi wa kazi mbili hasidi katika hazina ya Git ya mradi wa PHP na mlango wa nyuma ulioamilishwa wakati wa kutuma ombi kwa kichwa kilichoundwa mahususi Ajenti yamechapishwa. Wakati wa kusoma athari za shughuli za washambuliaji, ilihitimishwa kuwa seva ya git.php.net yenyewe, ambayo hazina ya git ilikuwa, haikudukuliwa, lakini hifadhidata iliyo na akaunti za watengenezaji wa mradi iliathiriwa. .

Inawezekana kwamba washambuliaji waliweza kupakua hifadhidata ya mtumiaji iliyohifadhiwa kwenye DBMS kwenye seva ya master.php.net. Yaliyomo kwenye master.php.net tayari yamehamishwa hadi seva mpya ya main.php.net iliyosakinishwa kutoka mwanzo. Nywila zote za msanidi zilizotumiwa kufikia miundombinu ya php.net ziliwekwa upya na mchakato wa kuzibadilisha ulianzishwa kupitia fomu maalum ya kurejesha nenosiri. Hazina za git.php.net na svn.php.net zinasalia kusomwa pekee (maendeleo yamehamishwa hadi GitHub).

Baada ya ugunduzi wa ahadi ya kwanza ya ovu iliyofanywa kupitia akaunti ya Rasmus Lerdorf, mwanzilishi wa PHP, ilichukuliwa kuwa akaunti yake ilikuwa imedukuliwa na Nikita Popov, mmoja wa watengenezaji muhimu wa PHP, alirudisha nyuma mabadiliko na kuzuia haki za kujitolea. akaunti yenye matatizo. Baada ya muda, utambuzi ulikuja kwamba kuzuia hakukuwa na maana, kwani bila uthibitisho wa ahadi kwa kutumia saini ya dijiti, mshiriki yeyote aliye na ufikiaji wa hazina ya php-src anaweza kufanya mabadiliko kwa kubadilisha jina la mwandishi wa uwongo.

Ifuatayo, washambuliaji walituma ahadi mbaya kwa niaba ya Nikita mwenyewe. Kwa kuchambua magogo ya huduma ya gitolite, iliyotumiwa kuandaa upatikanaji wa hifadhi, jaribio lilifanywa ili kuamua mshiriki ambaye kweli alifanya mabadiliko. Licha ya kujumuishwa kwa uhasibu kwa ahadi zote, hakukuwa na maingizo kwenye logi kwa mabadiliko mawili mabaya. Ilibainika kuwa kulikuwa na maelewano ya miundombinu, kwani ahadi ziliongezwa moja kwa moja, kupitisha unganisho kupitia gitolite.

Seva ya git.php.net ilizimwa mara moja, na hazina ya msingi ilihamishiwa kwa GitHub. Kwa haraka, ilisahaulika kuwa kufikia hazina, pamoja na SSH kutumia gitolite, kulikuwa na ingizo lingine ambalo lilikuruhusu kutuma ahadi kupitia HTTPS. Katika hali hii, git-http-backend ilitumiwa kuingiliana na Git, na uthibitishaji ulifanywa kwa kutumia seva ya Apache2 HTTP, ambayo ilithibitisha vitambulisho kwa kufikia hifadhidata iliyopangishwa katika DBMS kwenye seva ya master.php.net. Kuingia hakuruhusiwa tu na funguo, lakini pia kwa nenosiri la kawaida. Uchambuzi wa kumbukumbu za seva ya http ulithibitisha kuwa mabadiliko hasidi yaliongezwa kupitia HTTPS.

Wakati wa kujifunza magogo, ilifunuliwa kuwa washambuliaji hawakuunganisha mara ya kwanza, lakini awali walijaribu kupata jina la akaunti, lakini baada ya kuitambua, waliingia kwenye jaribio la kwanza, i.e. walijua nywila za Rasmus na Nikita mapema, lakini hawakujua kumbukumbu zao. Ikiwa washambuliaji waliweza kupata ufikiaji wa DBMS, haijulikani kwa nini hawakutumia mara moja kuingia sahihi iliyoainishwa hapo. Tofauti hii bado haijapata maelezo ya kuaminika. Udukuzi wa master.php.net unachukuliwa kuwa hali inayowezekana zaidi, kwa kuwa seva hii ilitumia msimbo wa zamani sana na OS iliyopitwa na wakati, ambayo haikuwa imesasishwa kwa muda mrefu na ilikuwa na udhaifu usio na kibandiko.

Hatua zilizochukuliwa ni pamoja na kusakinisha upya mazingira ya seva ya master.php.net na uhamishaji wa hati hadi toleo jipya la PHP 8. Msimbo wa kufanya kazi na DBMS umebadilishwa ili kutumia hoja zilizoainishwa ambazo zinatatiza uingizwaji wa msimbo wa SQL. Algorithm ya bcrypt inatumika kuhifadhi heshi za nenosiri kwenye hifadhidata (hapo awali, manenosiri yalihifadhiwa kwa kutumia heshi ya MD5 isiyotegemewa). Manenosiri yaliyopo yamewekwa upya na unaombwa kuweka nenosiri jipya kupitia fomu ya kurejesha nenosiri. Kwa kuwa ufikiaji wa hazina za git.php.net na svn.php.net kupitia HTTPS ulihusishwa na heshi za MD5, iliamuliwa kuacha git.php.net na svn.php.net katika hali ya kusoma tu, na pia kusogeza zote. zilizobaki kwao hazina za upanuzi za PECL kwenye GitHub, sawa na hazina kuu ya PHP.

Chanzo: opennet.ru

Kuongeza maoni