РНР жобасының git репозиторийі мен пайдаланушы базасының компромисстері туралы есеп

Арнайы әзірленген User Agent тақырыбымен сұрау жіберу кезінде белсендірілген бэкдоры бар PHP жобасының Git репозиторийінде екі зиянды әрекеттерді анықтауға қатысты оқиғаны талдаудың алғашқы нәтижелері жарияланды. Шабуыл жасаушылардың әрекеттерінің іздерін зерделеу барысында git репозиторийі орналасқан git.php.net серверінің өзі бұзылмаған, бірақ жоба әзірлеушілерінің тіркелгілері бар мәліметтер базасы бұзылған деген қорытындыға келді. .

Мүмкін, шабуылдаушылар master.php.net серверінде ДҚБЖ-да сақталған пайдаланушы дерекқорын жүктеп алуы мүмкін. master.php.net мазмұны нөлден орнатылған жаңа main.php.net серверіне көшірілген. php.net инфрақұрылымына кіру үшін пайдаланылатын барлық әзірлеуші ​​құпия сөздері қалпына келтірілді және оларды өзгерту процесі құпия сөзді қалпына келтірудің арнайы пішіні арқылы басталды. git.php.net және svn.php.net репозиторийлері тек оқуға арналған болып қалады (әзірлеу GitHub-қа көшірілді).

РНР негізін қалаушы Расмус Лердорфтың аккаунты арқылы жасалған бірінші зиянды әрекет анықталғаннан кейін оның аккаунты бұзылды деп болжанған және PHP негізгі әзірлеушілерінің бірі Никита Попов өзгертулерді кері қайтарып, құқықтарды бұғаттаған. проблемалық есептік жазба. Біраз уақыттан кейін бұғаттау мағынасы жоқ екенін түсінді, өйткені электрондық цифрлық қолтаңбаның көмегімен міндеттемелерді тексермей, php-src репозиторийіне рұқсаты бар кез келген қатысушы жалған автордың атын ауыстыру арқылы өзгеріс енгізе алады.

Содан кейін шабуылдаушылар Никитаның атынан зиянды әрекетті жіберді. Репозиторийлерге қол жеткізуді ұйымдастыру үшін пайдаланылатын гитолит қызметінің журналдарын талдау арқылы нақты өзгерістерді енгізген қатысушыны анықтау әрекеті жасалды. Барлық міндеттемелерді есепке алу қосылғанына қарамастан, екі зиянды өзгертулер журналында ешқандай жазбалар болған жоқ. Инфрақұрылымда ымыра бар екені белгілі болды, өйткені гитолит арқылы қосылымды айналып өтіп, міндеттемелер тікелей қосылды.

git.php.net сервері дереу өшірілді және негізгі репозиторий GitHub-қа ауыстырылды. Асығыс, репозиторийге кіру үшін гитолитті пайдаланатын SSH-тен басқа, HTTPS арқылы міндеттеме жіберуге мүмкіндік беретін тағы бір кіріс бар екенін ұмытып кетті. Бұл жағдайда Git-пен өзара әрекеттесу үшін git-http-backend пайдаланылды және аутентификация master.php.net серверіндегі ДҚБЖ орналастырылған дерекқорға кіру арқылы тіркелгі деректерін тексеретін Apache2 HTTP сервері арқылы орындалды. Кіру тек кілттермен ғана емес, сонымен қатар қарапайым парольмен де рұқсат етілді. http серверінің журналдарын талдау зиянды өзгерістердің HTTPS арқылы қосылғанын растады.

Журналдарды зерттеген кезде, шабуылдаушылар бірінші рет қосылмағаны анықталды, бірақ бастапқыда тіркелгі атауын табуға тырысты, бірақ оны анықтағаннан кейін олар бірінші әрекетте жүйеге кірді, яғни. олар Расмус пен Никитаның құпия сөздерін алдын ала білген, бірақ олардың логиндерін білмеген. Егер шабуылдаушылар ДҚБЖ-ға қол жеткізе алса, неге олар сол жерде көрсетілген дұрыс логинді бірден пайдаланбағаны түсініксіз. Бұл сәйкессіздік әлі сенімді түсініктеме алған жоқ. Master.php.net сайтын бұзу ең ықтимал сценарий болып саналады, өйткені бұл сервер өте ескі кодты және ұзақ уақыт бойы жаңартылмаған және осалдықтары жойылмаған ескірген ОЖ пайдаланған.

Қабылданған әрекеттерге master.php.net сервер ортасын қайта орнату және сценарийлерді PHP 8 жаңа нұсқасына тасымалдау кіреді. ДҚБЖ-мен жұмыс істеу коды SQL кодын ауыстыруды қиындататын параметрленген сұрауларды пайдалану үшін өзгертілді. bcrypt алгоритмі пароль хэштерін дерекқорда сақтау үшін қолданылады (бұрын құпия сөздер сенімсіз MD5 хэшінің көмегімен сақталатын). Бар құпия сөздер қалпына келтірілді және құпия сөзді қалпына келтіру пішіні арқылы жаңа құпия сөзді орнату ұсынылады. HTTPS арқылы git.php.net және svn.php.net репозиторийлеріне қол жеткізу MD5 хэштерімен байланысты болғандықтан, git.php.net және svn.php.net тек оқуға арналған режимде қалдыру, сонымен қатар барлығын жылжыту туралы шешім қабылданды. қалғандары GitHub жүйесінде негізгі PHP репозиторийіне ұқсас PECL кеңейтім репозиторийлері.

Ақпарат көзі: opennet.ru

пікір қалдыру