Premye rezilta analiz de yon ensidan ki gen rapò ak idantifikasyon de komèt move nan depo Git nan yon pwojè PHP ak yon backdoor aktive lè yo voye yon demann ak yon header Ajan itilizatè ki fèt espesyalman yo te pibliye. Nan kou a nan etidye tras yo nan aktivite atakè yo, li te konkli ke sèvè a git.php.net tèt li, ki te sou depo git la te chita, pa te rache, men baz done a ak kont yo nan devlopè pwojè yo te konpwomèt. .
Li posib ke atakè yo te kapab telechaje baz done itilizatè ki estoke nan DBMS sou sèvè master.php.net la. Sa ki nan master.php.net yo te deja imigre nan nouvo sèvè main.php.net enstale nan grafouyen. Tout modpas pwomotè yo te itilize pou jwenn aksè nan enfrastrikti php.net yo te reset ak pwosesis pou chanje yo te kòmanse atravè yon fòm rekiperasyon modpas espesyal. Repozitwa git.php.net ak svn.php.net rete pou lekti sèlman (devlopman yo te deplase nan GitHub).
Apre dekouvèt premye komèt malveyan ki te fèt atravè kont Rasmus Lerdorf, fondatè PHP, yo te sipoze ke kont li te pirate epi Nikita Popov, youn nan kle devlopè PHP yo, te retire chanjman yo epi bloke dwa komèt pou kont pwoblèm lan. Apre kèk tan, reyalize ke bloke a pa t 'fè sans, paske san yo pa verifikasyon nan komèt lè l sèvi avèk yon siyati dijital, nenpòt patisipan ki gen aksè a depo php-src a te kapab fè yon chanjman nan ranplase yon non otè fiktif.
Apre sa, atakè yo te voye yon komèt move sou non Nikita tèt li. Lè yo analize mòso bwa sèvis gitolite yo, yo itilize pou òganize aksè nan depo, yo te fè yon tantativ pou detèmine patisipan an ki aktyèlman te fè chanjman yo. Malgre enklizyon de kontablite pou tout komèt, pa te gen okenn antre nan boutèy la pou de chanjman move. Li te vin klè ke te gen yon konpwomi nan enfrastrikti a, depi komèt yo te ajoute dirèkteman, kontoune koneksyon an atravè gitolite.
Yo te fèmen sèvè git.php.net la byen vit, epi yo te deplase depo prensipal la sou GitHub. Nan prese a, yo te inyore ke, anplis aksè SSH lè l sèvi avèk gitolite, te gen yon lòt koneksyon pou depo a, ki te pèmèt voye commit yo sou HTTPS. Nan ka sa a, yo te itilize git-http-backend la pou entèraksyon ak Git, epi otantifikasyon an te fèt lè l sèvi avèk sèvè HTTP Apache2 la, ki te verifye pèmisyon yo lè l te jwenn aksè nan yon baz done ki te loje sou sèvè master.php.net. Koneksyon an te otorize non sèlman avèk kle yo, men tou avèk yon modpas òdinè. Analiz jounal sèvè HTTP yo te konfime ke chanjman move yo te ajoute atravè HTTPS.
Yon egzamen jounal yo te revele ke atakè yo pa t konekte nan premye tantativ la, men yo te eseye devine non kont lan anvan. Apre yo te fin idantifye li, yo te konekte nan premye tantativ la. Sa vle di yo te konnen modpas Rasmus ak Nikita davans, men yo pa t konnen non itilizatè yo. Si atakè yo te kapab jwenn aksè nan SGBD a, li pa klè poukisa yo pa t itilize non itilizatè ki kòrèk la touswit. Yo poko bay yon eksplikasyon serye sou diferans sa a. Yo konsidere pirataj master.php.net la kòm senaryo ki pi pwobab la, kounye a. sèvè Yo te itilize kòd ki te trè ansyen ak yon sistèm operasyon demode, ki pa t gen mizajou depi lontan e ki te gen vilnerabilite ki pa t korije.
Aksyon yo te pran enkli re-enstalasyon anviwònman sèvè master.php.net ak transfè scripts nan nouvo vèsyon PHP 8. Kòd pou travay ak DBMS yo te modifye pou sèvi ak rekèt paramèt, ki konplike sibstitisyon kòd SQL. Yo itilize algorithm bcrypt la pou estoke hash modpas nan baz done a (anvan, modpas yo te estoke lè l sèvi avèk yon hash MD5 enfidèl). Modpas ki egziste deja yo reset epi yo mande w pou mete yon nouvo modpas atravè fòm rekiperasyon modpas la. Depi aksè nan depo git.php.net ak svn.php.net atravè HTTPS te mare ak MD5 hash, li te deside kite git.php.net ak svn.php.net nan mòd lekti sèlman, epi tou li deplase tout. sa ki rete yo nan depo ekstansyon PECL sou GitHub, menm jan ak depo prensipal PHP.
Sous: opennet.ru
