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 gau ôfsletten, en de primêre repository waard ferpleatst nei GitHub. Yn 'e haast waard oersjoen dat der, neist SSH-tagong mei gitolite, in oare oanmelding foar de repository wie, wêrtroch't commits oer HTTPS ferstjoerd wurde koene. Yn dit gefal waard de git-http-backend brûkt foar ynteraksje mei Git, en autentikaasje waard útfierd mei de Apache2 HTTP-tsjinner, dy't tagongsrjochten ferifiearre troch tagong te krijen ta in database dy't host waard op server master.php.net. Oanmelde wie net allinnich tastien mei kaaien, mar ek mei in gewoan wachtwurd. Analyse fan 'e HTTP-tsjinnerlogs befêstige dat de kwea-aardige feroarings tafoege binne fia HTTPS.
In ûndersyk fan 'e logs liet sjen dat de oanfallers net by de earste poging ferbining makken, mar earst besochten de akkountnamme te rieden. Nei't se dy identifisearre hiene, logden se by de earste poging yn. Dit betsjut dat se de wachtwurden fan Rasmus en Nikita fan tefoaren wisten, mar net harren brûkersnammen. As de oanfallers tagong krigen ta it DBMS, is it ûndúdlik wêrom't se net fuortendaliks de juste brûkersnamme brûkten dy't dêr oanjûn wie. Dizze diskrepânsje moat noch betrouber útlein wurde. De hack fan master.php.net wurdt beskôge as it meast wierskynlike senario, op dit stuit. server Der waarden tige âlde koade en in ferâldere bestjoeringssysteem brûkt, dat al lange tiid net bywurke wie en net-patched kwetsberheden 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
