PHP proiektuaren git biltegiaren eta erabiltzaile-basearen konpromisoaren berri eman

Bereziki diseinatutako Erabiltzaile Agentearen goiburuarekin eskaera bat bidaltzean atzeko atea aktibatuta duen PHP proiektu baten Git biltegian bi konpromiso maltzurren identifikazioarekin lotutako gertakari baten analisiaren lehen emaitzak argitaratu dira. Erasotzaileen jardueren aztarnak aztertzean, git biltegia kokatuta zegoen git.php.net zerbitzaria bera ez zela pirateatu ondorioztatu zen, baina proiektuaren garatzaileen kontuekin datu-basea arriskuan jarri zen. .

Baliteke erasotzaileek master.php.net zerbitzarian DBMSn gordetako erabiltzailearen datu-basea deskargatu ahal izatea. master.php.net-en edukiak hutsetik instalatutako main.php.net zerbitzari berrira migratu dira dagoeneko. php.net azpiegiturara sartzeko erabilitako garatzaileen pasahitz guztiak berrezarri ziren eta horiek aldatzeko prozesua pasahitza berreskuratzeko formulario berezi baten bidez hasi zen. Git.php.net eta svn.php.net biltegiak irakurtzeko soilik izaten jarraitzen dute (garapena GitHub-era eraman da).

PHPren sortzailea den Rasmus Lerdorf-en kontuaren bidez egindako lehen konpromiso maltzurren aurkikuntzaren ondoren, bere kontua hackeatu zutela suposatu zen eta Nikita Popov-ek, PHP garatzaile nagusietako batek, aldaketak atzera bota zituen eta konpromiso-eskubideak blokeatu zituen. kontu problematikoa. Denbora pixka bat igaro ondoren, blokeoak zentzurik ez zuela konturatu zen, izan ere, sinadura digitala erabiliz konpromisoak egiaztatu gabe, php-src biltegirako sarbidea duen edozein parte-hartzaileek aldaketa bat egin zezakeen fikziozko egile izen bat ordezkatuz.

Jarraian, erasotzaileek konpromiso maltzur bat bidali zuten Nikita beraren izenean. Biltegietarako sarbidea antolatzeko erabiltzen den gitolite zerbitzuaren erregistroak aztertuta, aldaketak benetan egin zituen parte-hartzailea zehazten saiatu zen. Konpromiso guztien kontabilitatea sartu arren, erregistroan ez zegoen bi aldaketa maltzurren sarrerarik. Azpiegituraren konpromezua zegoela argi geratu zen, zuzenean konprometituak gehitzen baitziren, konexioa saihestuz gitolite bidez.

Git.php.net zerbitzaria berehala desgaitu zen, eta biltegi nagusia GitHub-era transferitu zen. Presaka, ahaztu egin zen biltegian sartzeko, gitolite erabiliz SSHz gain, HTTPS bidez konpromisoak bidaltzeko aukera ematen zuen beste sarrera bat zegoela. Kasu honetan, git-http-backend-a erabili zen Git-ekin elkarreragiteko, eta autentifikazioa Apache2 HTTP zerbitzariaren bidez egin zen, zeinak kredentzialak egiaztatzen zituen master.php.net zerbitzarian DBMSn ostatatutako datu-basean sartuz. Hasi saioa gakoekin ez ezik, ohiko pasahitz batekin ere onartzen zen. http zerbitzariaren erregistroen analisiak baieztatu zuen aldaketa gaiztoak HTTPS bidez gehitu zirela.

Erregistroak aztertzean, agerian geratu zen erasotzaileak ez zirela lehen aldiz konektatu, baina hasiera batean kontuaren izena bilatzen saiatu zirela, baina identifikatu ostean, lehenengo saiakeran hasi ziren saioa, hau da. aldez aurretik ezagutzen zituzten Rasmus eta Nikitaren pasahitzak, baina ez zekiten haien saio-hasiera. Erasotzaileek DBMSrako sarbidea lortu ahal izan bazuten, ez dago argi zergatik ez zuten berehala erabili bertan zehaztutako saio-hasiera zuzena. Desadostasun horrek ez du oraindik azalpen fidagarririk jaso. Master.php.net-en hackea agertoki litekeena da, zerbitzari honek oso kode zaharra eta zaharkitutako OS bat erabiltzen baitzuen, denbora luzez eguneratu gabe zegoena eta zuzendu gabeko ahuleziak zituena.

Egindako ekintzen artean, master.php.net zerbitzariaren ingurunea berrinstalatzea eta PHP 8-ren bertsio berrira script-ak transferitzea izan dira. DBMSarekin lan egiteko kodea aldatu egin da, kontsulta parametrizatuak erabiltzeko, eta horrek zaildu egiten du SQL kodearen ordezkapena. bcrypt algoritmoa datu-basean pasahitzen hashak gordetzeko erabiltzen da (lehen, pasahitzak MD5 hash fidagarria erabiliz gordetzen ziren). Lehendik dauden pasahitzak berrezartzen dira eta pasahitz berri bat ezartzeko eskatuko zaizu pasahitza berreskuratzeko formularioaren bidez. HTTPS bidez git.php.net eta svn.php.net biltegietarako sarbidea MD5 hashekin lotuta zegoenez, git.php.net eta svn.php.net irakurtzeko moduan uztea erabaki zen, eta guztiak ere mugitzea. gainerakoak PECL luzapen biltegiak GitHub-en, PHP biltegi nagusiaren antzera.

Iturria: opennet.ru

Gehitu iruzkin berria