Rapportearje oer it kompromis fan it git-repository en brûkersbasis fan it PHP-projekt

De earste resultaten fan 'e analyze fan in ynsidint relatearre oan de identifikaasje fan twa kweade commits yn' e Git-repository fan in PHP-projekt mei in efterdoar aktivearre by it ferstjoeren fan in fersyk mei in spesjaal ûntwurpen User Agent-header binne publisearre. Yn 'e rin fan' e stúdzje fan 'e spoaren fan' e aktiviteiten fan 'e oanfallers waard konkludearre dat de git.php.net-tsjinner sels, dêr't it git-repository op lei, net hackd waard, mar de databank mei de akkounts fan' e projektûntwikkelders waard kompromittearre. .

It is mooglik dat de oanfallers de brûkersdatabase opslein yn 'e DBMS op' e master.php.net-tsjinner downloade kinne. De ynhâld fan master.php.net is al migrearre nei de nije main.php.net-tsjinner dy't fanôf it begjin ynstallearre is. Alle ûntwikkelderswachtwurden dy't brûkt waarden om tagong te krijen ta de php.net-ynfrastruktuer waarden weromset en it proses fan it feroarjen fan har waard inisjearre fia in spesjale wachtwurdherstelformulier. De repositories git.php.net en svn.php.net bliuwe allinich lêzen (ûntwikkeling is ferpleatst nei GitHub).

Nei de ûntdekking fan 'e earste kweade commit makke fia it akkount fan Rasmus Lerdorf, de oprjochter fan PHP, waard oannommen dat syn akkount hacked wie en Nikita Popov, ien fan' e wichtichste PHP-ûntwikkelders, rôle de wizigingen werom en blokkearre commitrjochten foar de problematyske rekken. Nei ferrin fan tiid kaam it besef dat it blokkearjen gjin sin wie, om't sûnder ferifikaasje fan ferplichtingen mei in digitale hantekening elke dielnimmer mei tagong ta it php-src-repository in feroaring koe meitsje troch in fiktive auteurnamme te ferfangen.

Dêrnei stjoerde de oanfallers in kweade commit út namme fan Nikita sels. Troch it analysearjen fan de logs fan 'e gitolite-tsjinst, brûkt om tagong ta repositories te organisearjen, waard in besykjen makke om de dielnimmer te bepalen dy't de wizigingen feitlik makke. Nettsjinsteande it opnimmen fan accounting foar alle commits, wiene d'r gjin yngongen yn it log foar twa kweade feroarings. It waard dúdlik dat d'r in kompromis wie fan 'e ynfrastruktuer, om't commits direkt waarden tafoege, de ferbining fia gitolite omgean.

De git.php.net-tsjinner waard prompt útskeakele, en it primêre repository waard oerbrocht nei GitHub. Yn 'e haast waard it fergetten dat om tagong te krijen ta it repository, neist SSH mei gitolite, d'r in oare ynput wie dy't jo commits fia HTTPS koe stjoere. Yn dit gefal waard de git-http-backend brûkt om te ynteraksje mei Git, en autentikaasje waard útfierd mei de Apache2 HTTP-tsjinner, dy't bewiisbrieven ferifiearre troch tagong te krijen ta de databank hosted yn 'e DBMS op' e master.php.net-tsjinner. Oanmelde waard tastien net allinnich mei kaaien, mar ek mei in gewoan wachtwurd. Analyse fan de http-tsjinner logs befêstige dat kweade feroarings waarden tafoege fia HTTPS.

By it bestudearjen fan 'e logs, die bliken dat de oanfallers de earste kear gjin ferbining makken, mar earst besocht de akkountnamme te finen, mar nei't se identifisearre hawwe, hawwe se har oanmeld by de earste poging, d.w.s. se wisten de wachtwurden fan Rasmus en Nikita fan tefoaren, mar wisten har logins net. As de oanfallers tagong koenen krije ta de DBMS, is it ûndúdlik wêrom't se net daliks de juste oanmelding hawwe brûkt dy't dêr spesifisearre is. Dizze diskrepânsje hat noch gjin betroubere ferklearring krigen. De hack fan master.php.net wurdt beskôge as it meast wierskynlike senario, om't dizze tsjinner tige âlde koade brûkte en in ferâldere OS, dy't in lange tiid net bywurke wie en unpatched kwetsberens hie.

De aksjes dy't nommen binne omfetsje de werynstallaasje fan 'e master.php.net-tsjinneromjouwing en de oerdracht fan skripts nei de nije ferzje fan PHP 8. De koade foar it wurkjen mei de DBMS is feroare om parameterisearre queries te brûken dy't de substitúsje fan SQL-koade komplisearje. It bcrypt-algoritme wurdt brûkt om wachtwurd-hashes op te slaan yn 'e databank (earder waarden wachtwurden opslein mei in ûnbetroubere MD5-hash). Besteande wachtwurden wurde weromset en jo wurde frege om in nij wachtwurd yn te stellen fia it wachtwurdherstelformulier. Sûnt tagong ta de git.php.net- en svn.php.net-repositories fia HTTPS wie bûn oan MD5-hashes, waard besletten om git.php.net en svn.php.net yn allinich-lês-modus te litten, en ek alles ferpleatse oerbleaune oan harren PECL útwreiding repositories op GitHub, fergelykber mei de wichtichste PHP repository.

Boarne: opennet.ru

Add a comment