PHP proiektu baten Git biltegian bi konmit gaizto aurkitu zirelako gertakariaren ikerketaren hasierako emaitzak argitaratu dira, erabiltzaile-agente goiburu berezi bat duen eskaera batek aktibatutako atzeko ate bat barne. Erasotzailearen arrastoen analisi batek ondorioztatu du Git biltegia ostatatzen duen git.php.net zerbitzaria ez zela hackeatu, baina proiektuaren garatzaile kontuak dituen datu-basea arriskuan zegoela.
Baliteke erasotzaileek master.php.net zerbitzariaren datu-base kudeaketa sisteman gordetako erabiltzaileen datu-basea deskargatu ahal izatea. master.php.net-en edukia dagoeneko main.php.net zerbitzari berrira migratu da, hutsetik instalatu dena. PHP.net azpiegiturara sartzeko erabiltzen diren garatzaileen pasahitz guztiak berrezarri dira, eta pasahitza berrezartzeko prozesu bat abiarazi da pasahitza berreskuratzeko formulario berezi baten bidez. git.php.net eta svn.php.net biltegiak irakurtzeko soilik dira oraindik (garapena GitHubera eraman da).
PHPren sortzailea zen Rasmus Lerdorfen kontuaren bidez egindako lehen konpromiso gaiztoa aurkitu ondoren, bere kontua hackeatu zutela pentsatu zen, eta Nikita Popov-ek, PHP garatzaile nagusietako batek, aldaketak desegin eta kontu arau-hauslearen konpromiso baimenak blokeatu zituen. Denbora baten ondoren, konturatu ziren blokeatzea alferrikakoa zela, sinadura digitalaren bidezko konpromisoaren egiaztapenik gabe, php-src biltegira sartzeko aukera zuen edonork aldaketa bat egin zezakeelako egile fiktizio bat erabiliz.
Erasotzaileek Nikita bera imitatuz egindako konpromiso gaizto bat bidali zuten. Biltegietara sartzeko erabiltzen den gitolite zerbitzuaren erregistroak aztertuz, aldaketak egin zituen erabiltzailea identifikatzen saiatu ziren. Konpromisoen jarraipena gaituta izan arren, ez zen bi aldaketa gaiztoen erregistro-sarrerarik aurkitu. Argi geratu zen azpiegitura arriskuan zegoela, konpromisoak zuzenean gehitu baitziren, gitolite konexioa saihestuz.
git.php.net zerbitzaria azkar itxi zen, eta biltegi nagusia GitHubera eraman zen. Presaka, konturatu ziren gitolite erabiliz SSH sarbideaz gain, biltegirako beste saio bat zegoela, HTTPS bidez konfirmoak bidaltzeko aukera ematen zuena. Kasu honetan, git-http-backend erabili zen Git-ekin elkarreragiteko, eta autentifikazioa Apache2 HTTP zerbitzaria erabiliz egin zen, eta honek baimenak egiaztatu zituen... ostatatutako datu-base batera sartuz. zerbitzaria master.php.net. Saioa hasteko baimena ez zen gakoak erabiliz bakarrik baimendu, baita pasahitz arrunt bat erabiliz ere. HTTP zerbitzariaren erregistroen analisiak baieztatu zuen aldaketa gaiztoak HTTPS bidez gehitu zirela.
Erregistroen azterketa batek agerian utzi zuen erasotzaileek ez zirela lehenengo saiakeran konektatu, baizik eta kontuaren izena asmatzen saiatu zirela lehenik. Identifikatu ondoren, lehenengo saiakeran saioa hasi zuten. Horrek esan nahi du Rasmus eta Nikitaren pasahitzak aldez aurretik zekizkitela, baina ez erabiltzaile-izenak. Erasotzaileek DBKSra sartzeko gai izan baziren ere, ez dago argi zergatik ez zuten bertan zehaztutako erabiltzaile-izen zuzena berehala erabili. Desadostasun hau oraindik ez da modu fidagarrian azaldu. Master.php.net-en hackeoa da eszenatokirik probableena, une honetan. zerbitzaria Kode oso zaharra eta sistema eragile zaharkitu bat erabili ziren, denbora luzez eguneratu gabea eta konpondu gabeko ahultasunak zituena.
Hartutako ekintzen artean, master.php.net zerbitzariaren ingurunea berriro instalatzea eta scriptak PHP 8 bertsio berrira migratzea daude. Datu-baseen kudeaketa kodea berridatzi da parametrizatutako kontsultak erabiltzeko, eta horrek SQL injekzioa zailtzen du. Bcrypt algoritmoa erabiltzen da orain pasahitz hashak datu-basean gordetzeko (lehen, pasahitzak MD5 hash ahula erabiliz gordetzen ziren). Dauden pasahitzak berrezarri dira, eta erabiltzaileei pasahitz berri bat ezartzeko eskatzen zaie pasahitza berreskuratzeko formularioaren bidez. git.php.net eta svn.php.net biltegietarako sarbidea HTTPS bidez MD5 hash-ei lotuta zegoenez, git.php.net eta svn.php.net irakurketa soilik moduan uztea erabaki zen, eta horietan dauden PECL luzapen biltegi guztiak GitHubera eramango dira, PHP biltegi nagusiaren antzera.
Iturria: opennet.ru
