Skýrslu um málamiðlun git geymslunnar og notendagrunn PHP verkefnisins

Fyrstu niðurstöður greiningar á atviki sem tengist auðkenningu tveggja skaðlegra skuldbindinga í Git geymslu PHP verkefnis með bakdyri virkjað þegar beiðni er send með sérhönnuðum User Agent haus hafa verið birtar. Þegar farið var að rannsaka ummerki um athafnir árásarmannanna var komist að þeirri niðurstöðu að git.php.net þjónninn sjálfur, sem git geymslan var staðsett á, hafi ekki verið tölvusnápur, heldur hafi gagnagrunnurinn með reikningum verkhönnuða verið í hættu. .

Hugsanlegt er að árásarmennirnir hafi getað hlaðið niður notendagagnagrunninum sem geymdur er í DBMS á master.php.net netþjóninum. Innihald master.php.net hefur þegar verið flutt yfir á nýja main.php.net netþjóninn sem er uppsettur frá grunni. Öll lykilorð þróunaraðila sem notuð voru til að fá aðgang að php.net innviðunum voru endurstillt og ferlið við að breyta þeim var hafið með sérstöku endurheimtareyðublaði fyrir lykilorð. Git.php.net og svn.php.net geymslurnar eru áfram skrifvarandi (þróun hefur verið færð yfir á GitHub).

Eftir uppgötvun á fyrsta illgjarna skuldbindingunni sem gerð var í gegnum reikning Rasmus Lerdorf, stofnanda PHP, var gert ráð fyrir að reikningur hans hefði verið tölvusnápur og Nikita Popov, einn af helstu PHP þróunaraðilum, afturkallaði breytingarnar og lokaði á skuldbindingarréttindi fyrir vandræðareikningurinn. Eftir nokkurn tíma kom sú skilningur að lokunin var ekki skynsamleg, þar sem án staðfestingar á skuldbindingum með stafrænni undirskrift gæti hver þátttakandi með aðgang að php-src geymslunni gert breytingar með því að skipta út gervi höfundarnafni.

Næst sendu árásarmennirnir illgjarn skuldbindingu fyrir hönd Nikita sjálfs. Með því að greina annála gitolite þjónustunnar, sem notuð er til að skipuleggja aðgang að geymslum, var reynt að ákvarða þátttakandann sem raunverulega gerði breytingarnar. Þrátt fyrir að bókhald hafi verið tekið fyrir allar skuldbindingar, voru engar færslur í skránni fyrir tvær illgjarnar breytingar. Það varð ljóst að það var málamiðlun á innviðum, þar sem skuldbindingum var bætt beint við, framhjá tengingunni í gegnum gitolite.

Git.php.net þjónninn var tafarlaust óvirkur og aðal geymslan var flutt yfir á GitHub. Í flýti gleymdist að til að fá aðgang að geymslunni, auk þess að SSH notar gitolit, var annað inntak sem gerði þér kleift að senda skuldbindingar í gegnum HTTPS. Í þessu tilviki var git-http-bakendinn notaður til að hafa samskipti við Git og auðkenning var framkvæmd með Apache2 HTTP þjóninum, sem staðfesti skilríki með því að fá aðgang að gagnagrunninum sem hýst er í DBMS á master.php.net þjóninum. Innskráning var ekki aðeins leyfð með lyklum, heldur einnig með venjulegu lykilorði. Greining á http-þjónsskránum staðfesti að illgjarnum breytingum var bætt við í gegnum HTTPS.

Við rannsókn á annálunum kom í ljós að árásarmennirnir tengdust ekki í fyrra skiptið heldur reyndu í fyrstu að finna reikningsnafnið en eftir að hafa borið kennsl á það skráðu þeir sig inn í fyrstu tilraun, þ.e. þeir þekktu lykilorð Rasmus og Nikita fyrirfram, en vissu ekki innskráningu þeirra. Ef árásarmennirnir gátu fengið aðgang að DBMS er óljóst hvers vegna þeir notuðu ekki strax rétta innskráningu sem þar var tilgreind. Þetta misræmi hefur ekki enn fengið áreiðanlegar skýringar. Innbrotið á master.php.net er talið líklegasta atburðarásin, þar sem þessi netþjónn notaði mjög gamlan kóða og úrelt stýrikerfi, sem hafði ekki verið uppfært í langan tíma og hafði óuppfærða veikleika.

Aðgerðirnar sem gripið hefur verið til eru meðal annars enduruppsetning á master.php.net netþjónsumhverfinu og flutningur á forskriftum yfir í nýju útgáfuna af PHP 8. Kóðanum til að vinna með DBMS hefur verið breytt til að nota breytubundnar fyrirspurnir sem flækja skiptingu á SQL kóða. Bcrypt reikniritið er notað til að geyma lykilorð í gagnagrunninum (áður voru lykilorð geymd með óáreiðanlegum MD5 kjötkássa). Núverandi lykilorð eru endurstillt og þú ert beðinn um að setja nýtt lykilorð í gegnum endurheimtareyðublaðið fyrir lykilorð. Þar sem aðgangur að git.php.net og svn.php.net geymslunum í gegnum HTTPS var bundinn við MD5 kjötkássa, var ákveðið að skilja git.php.net og svn.php.net eftir í skrifvarandi ham og færa líka allt sem eftir eru til þeirra PECL viðbyggingargeymsla á GitHub, svipað og aðal PHP geymsluna.

Heimild: opennet.ru

Bæta við athugasemd