Bericht iwwer de Kompromiss vum Git Repository a Benotzerbasis vum PHP Projet

Déi éischt Resultater vun der Analyse vun engem Zwëschefall am Zesummenhang mat der Identifikatioun vun zwee béiswëlleg Verpflichtungen am Git-Repository vun engem PHP-Projet mat enger Backdoor aktivéiert wann Dir eng Ufro mat engem speziell entwéckelte User Agent Header schéckt. Am Laf vun der Studie vun de Spure vun den Aktivitéiten vun den Ugräifer gouf ofgeschloss datt de git.php.net Server selwer, op deem de Git-Repository läit, net gehackt gouf, awer d'Datebank mat de Konten vun de Projetsentwéckler kompromittéiert gouf. .

Et ass méiglech datt d'Ugräifer d'Benotzerdatenbank eroflueden, déi am DBMS um master.php.net Server gespäichert ass. D'Inhalter vu master.php.net sinn scho migréiert op den neien Main.php.net Server dee vu Schrack installéiert ass. All Entwéckler Passwierder, déi benotzt gi fir Zougang zu der php.net Infrastruktur ze kréien, goufen zréckgesat an de Prozess fir se z'änneren gouf duerch eng speziell Passwuert Erhuelung Form initiéiert. D'git.php.net an svn.php.net Repositories bleiwen nëmme liesen (D'Entwécklung gouf op GitHub geplënnert).

No der Entdeckung vum éischte béiswëllegen Engagement iwwer de Kont vum Rasmus Lerdorf, dem Grënner vu PHP, gouf ugeholl datt säi Kont gehackt gouf an den Nikita Popov, ee vun de Schlëssel PHP-Entwéckler, huet d'Ännerungen zréckgezunn an d'Verpflichtungsrechter blockéiert fir déi problematesch Kont. No enger Zäit koum d'Realiséierung datt d'Blockéierung net Sënn mécht, well ouni Verifizéierung vu Verpflichtungen mat enger digitaler Ënnerschrëft, all Participant mat Zougang zum php-src Repository eng Ännerung maache kann andeems en fiktiven Auteur ersat gëtt.

Als nächst hunn d'Attacker e béiswëlleg Engagement am Numm vum Nikita selwer geschéckt. Andeems Dir d'Logbicher vum Gitolite Service analyséiert, benotzt fir Zougang zu Repositories z'organiséieren, gouf e Versuch gemaach fir de Participant ze bestëmmen, deen d'Ännerungen tatsächlech gemaach huet. Trotz der Inklusioun vun der Comptabilitéit fir all Verpflichtungen, goufen et keng Entréen am Logbuch fir zwee béiswëlleg Ännerungen. Et gouf kloer datt et e Kompromëss vun der Infrastruktur gouf, well Verpflichtungen direkt bäigefüügt goufen, d'Verbindung iwwer Gitolit ëmgoen.

De git.php.net Server gouf prompt behënnert, an de primäre Repository gouf op GitHub transferéiert. A presséiert gouf et vergiess datt fir Zougang zum Repository ze kréien, zousätzlech zu SSH mat Gitolite, et war en aneren Input deen Iech erlaabt Verpflichtungen iwwer HTTPS ze schécken. An dësem Fall gouf de git-http-Backend benotzt fir mat Git ze interagéieren, an d'Authentifikatioun gouf mam Apache2 HTTP-Server duerchgefouert, deen d'Umeldungsinformatioune verifizéiert huet andeems Dir op d'Datebank an der DBMS um master.php.net Server gehost gëtt. Login war erlaabt net nëmme mat Schlësselen, awer och mat engem normale Passwuert. Analyse vun den http Server Logbicher bestätegt datt béiswëlleg Ännerungen iwwer HTTPS bäigefüügt goufen.

Wann Dir d'Logbicher studéiert huet, gouf opgedeckt datt d'Ugräifer déi éischte Kéier net verbonnen hunn, awer ufanks probéiert hunn de Kontonumm ze fannen, awer nodeems se se identifizéiert hunn, hu se sech um éischte Versuch ageloggt, d.h. si woussten dem Rasmus an dem Nikita seng Passwierder am Viraus, konnten awer hir Login net. Wann d'Ugräifer konnten Zougang zum DBMS kréien, ass et net kloer firwat se net direkt de richtege Login benotzt hunn, deen do spezifizéiert ass. Dës Diskrepanz huet nach keng zouverlässeg Erklärung kritt. Den Hack vu master.php.net gëtt als de wahrscheinlechste Szenario ugesinn, well dëse Server ganz alen Code an en alen OS benotzt huet, deen net laang aktualiséiert gouf an onpatchéiert Schwachstelle hat.

D'Aktiounen, déi geholl ginn, beinhalt d'Wiederinstallatioun vun der master.php.net Server-Ëmfeld an den Transfert vu Scripten op déi nei Versioun vu PHP 8. De Code fir mat der DBMS ze schaffen gouf geännert fir parametriséiert Ufroen ze benotzen, déi d'Substitutioun vum SQL Code komplizéiere kënnen. De bcrypt Algorithmus gëtt benotzt fir Passwuert-Hashen an der Datebank ze späicheren (virdrun goufen Passwierder mat engem onverlässlechen MD5-Hash gespäichert). Bestehend Passwierder ginn zréckgesat an Dir sidd opgefuerdert en neit Passwuert duerch d'Passwuert Erhuelung Form ze setzen. Zënter datt den Zougang zu de git.php.net a svn.php.net Repositories iwwer HTTPS un MD5 Hashes gebonnen ass, gouf decidéiert git.php.net an svn.php.net am Read-only Modus ze loossen, an och all ze réckelen déi verbleiwen zu hinnen PECL Extensioun Repositories op GitHub, ähnlech wéi den Haapt PHP Repository.

Source: opennet.ru

Setzt e Commentaire