Adroddiad ar gyfaddawd y storfa git a sylfaen defnyddwyr y prosiect PHP

Mae canlyniadau cyntaf y dadansoddiad o ddigwyddiad yn ymwneud Γ’ nodi dau ymrwymiad maleisus yn ystorfa Git o brosiect PHP gyda drws cefn wedi'i actifadu wrth anfon cais gyda phennawd Asiant Defnyddiwr a ddyluniwyd yn arbennig wedi'u cyhoeddi. Wrth astudio olion gweithgareddau'r ymosodwyr, daethpwyd i'r casgliad nad oedd y gweinydd git.php.net ei hun, y mae'r ystorfa git wedi'i leoli arno, wedi'i hacio, ond cyfaddawdwyd y gronfa ddata gyda chyfrifon datblygwyr y prosiect. .

Mae'n bosibl bod yr ymosodwyr wedi gallu lawrlwytho'r gronfa ddata defnyddwyr sydd wedi'i storio yn y DBMS ar y gweinydd master.php.net. Mae cynnwys master.php.net eisoes wedi'i fudo i'r gweinydd prif.php.net newydd sydd wedi'i osod o'r dechrau. Ailosodwyd yr holl gyfrineiriau datblygwr a ddefnyddiwyd i gael mynediad i'r seilwaith php.net a chychwynnwyd y broses o'u newid trwy ffurflen adfer cyfrinair arbennig. Mae ystorfeydd git.php.net a svn.php.net yn parhau i fod yn ddarllenadwy yn unig (mae'r datblygiad wedi'i symud i GitHub).

Ar Γ΄l darganfod yr ymrwymiad maleisus cyntaf a wnaed trwy gyfrif Rasmus Lerdorf, sylfaenydd PHP, tybiwyd bod ei gyfrif wedi'i hacio a dychwelodd Nikita Popov, un o ddatblygwyr PHP allweddol, y newidiadau a rhwystro hawliau ymrwymo ar gyfer y cyfrif problemus. Ar Γ΄l peth amser, sylweddolwyd nad oedd y blocio yn gwneud synnwyr, oherwydd heb ddilysu ymrwymiad gan ddefnyddio llofnod digidol, gallai unrhyw gyfranogwr Γ’ mynediad i'r ystorfa php-src wneud newid trwy amnewid enw awdur ffug.

Nesaf, anfonodd yr ymosodwyr ymrwymiad maleisus ar ran Nikita ei hun. Trwy ddadansoddi logiau'r gwasanaeth gitolite, a ddefnyddir i drefnu mynediad i ystorfeydd, ceisiwyd pennu'r cyfranogwr a wnaeth y newidiadau mewn gwirionedd. Er gwaethaf cynnwys cyfrifyddu ar gyfer pob ymrwymiad, nid oedd unrhyw gofnodion yn y log ar gyfer dau newid maleisus. Daeth yn amlwg bod y seilwaith yn cyfaddawdu, gan fod ymrwymiadau wedi'u hychwanegu'n uniongyrchol, gan osgoi'r cysylltiad drwy gitolit.

Analluogwyd y gweinydd git.php.net yn brydlon, a throsglwyddwyd yr ystorfa gynradd i GitHub. Ar frys, anghofiwyd bod mewnbwn arall i gael mynediad i'r ystorfa, yn ogystal Γ’ SSH gan ddefnyddio gitolite, a oedd yn caniatΓ‘u ichi anfon ymrwymiadau trwy HTTPS. Yn yr achos hwn, defnyddiwyd y git-http-backend i ryngweithio Γ’ Git, a pherfformiwyd dilysu gan ddefnyddio gweinydd HTTP Apache2, a oedd yn gwirio tystlythyrau trwy gyrchu'r gronfa ddata a gynhelir yn y DBMS ar y gweinydd master.php.net. Caniatawyd mewngofnodi nid yn unig gydag allweddi, ond hefyd gyda chyfrinair rheolaidd. Cadarnhaodd dadansoddiad o logiau gweinydd http fod newidiadau maleisus yn cael eu hychwanegu trwy HTTPS.

Wrth astudio'r logiau, datgelwyd nad oedd yr ymosodwyr yn cysylltu y tro cyntaf, ond i ddechrau wedi ceisio dod o hyd i enw'r cyfrif, ond ar Γ΄l ei adnabod, fe wnaethant fewngofnodi ar y cynnig cyntaf, h.y. roeddent yn gwybod cyfrineiriau Rasmus a Nikita ymlaen llaw, ond nid oeddent yn gwybod eu mewngofnodi. Pe bai'r ymosodwyr yn gallu cael mynediad i'r DBMS, nid yw'n glir pam na wnaethant ddefnyddio'r mewngofnodi cywir a nodir yno ar unwaith. Nid yw'r anghysondeb hwn wedi cael esboniad dibynadwy eto. Ystyrir mai darnia master.php.net yw'r senario mwyaf tebygol, gan fod y gweinydd hwn yn defnyddio cod hen iawn ac OS hen ffasiwn, nad oedd wedi'i ddiweddaru ers amser maith ac roedd ganddo wendidau heb eu newid.

Mae'r camau a gymerwyd yn cynnwys ailosod amgylchedd gweinydd master.php.net a throsglwyddo sgriptiau i'r fersiwn newydd o PHP 8. Mae'r cod ar gyfer gweithio gyda'r DBMS wedi'i addasu i ddefnyddio ymholiadau paramedr sy'n cymhlethu amnewid cod SQL. Defnyddir yr algorithm bcrypt i storio hashes cyfrinair yn y gronfa ddata (yn flaenorol, roedd cyfrineiriau'n cael eu storio gan ddefnyddio stwnsh MD5 annibynadwy). Mae cyfrineiriau presennol yn cael eu hailosod ac fe'ch anogir i osod cyfrinair newydd trwy'r ffurflen adfer cyfrinair. Gan fod mynediad i ystorfeydd git.php.net a svn.php.net trwy HTTPS yn gysylltiedig Γ’ hashes MD5, penderfynwyd gadael git.php.net a svn.php.net yn y modd darllen yn unig, a symud y cyfan hefyd y rhai sy'n weddill iddynt ystorfeydd estyniad PECL ar GitHub, yn debyg i'r brif gadwrfa PHP.

Ffynhonnell: opennet.ru

Ychwanegu sylw