Zpráva o kompromitaci git-repozitáře a databáze uživatelů projektu PHP

Byly zveřejněny první výsledky vyšetřování incidentu souvisejícího s odhalením dvou škodlivých commitů s backdoorem v Git repozitáři projektu PHP, který se aktivuje při zaslání požadavku se speciálně upravenou hlavičkou User Agent. Během zkoumání stop činnosti útočníků bylo konstatováno, že samotný server git.php.net, na kterém byl umístěn git-repozitář, nebyl napaden, ale byla kompromitována databáze se záznamy vývojářů projektu.

Nelze vyloučit, že útočníci byli schopni stáhnout databázi uživatelů, která byla uložena v databázovém systému na serveru master.php.net. Obsah master.php.net již byl přesunut na nový server main.php.net, který byl nainstalován od základů. Všechna hesla vývojářů používaná pro přístup k infrastruktuře php.net byla resetována a byl zahájen proces jejich změny prostřednictvím speciálního formuláře pro obnovení hesla. Repozitáře git.php.net a svn.php.net zůstávají dostupné pouze v režimu pro čtení (vývoj byl přesunut na GitHub).

Po objevení prvního škodlivého commit, provedeného prostřednictvím účtu Rasmuse Lerdorfa, zakladatele PHP, bylo předpokládáno, že jeho účet byl napaden, a Nikita Popov, jeden z klíčových vývojářů PHP, vrátil změny a zablokoval práva k commitu pro problémový účet. Po nějakém čase přišlo uvědomění, že zablokování mělo smysl, protože bez ověření commitů pomocí digitálního podpisu mohl jakýkoli účastník s přístupem k repozitáři php-src provést změnu, a tím předložit fiktivní jméno autora.

Následně útočníci poslali škodlivý commit pod jménem samotného Nikity. Prostřednictvím analýzy logů služby gitolite, která se používá k organizaci přístupu k repozitářům, byla učiněna pokus o určení účastníka, který skutečně přinesl změny. I přes zapnutý záznam všech commitů nebyly v logu pro dvě škodlivé změny žádné záznamy. Bylo jasné, že došlo k kompromitaci infrastruktury, protože commity byly přidány přímo, obcházejíc připojení prostřednictvím gitolite.

Server git.php.net was quickly disabled, and the primary repository was moved to GitHub. In the rush, it was overlooked that there was another access method to the repository, allowing commits to be sent via HTTPS in addition to SSH using gitolite. In this case, the git-http-backend was used for interaction with Git, and authentication was performed using the Apache2 HTTP server, which checked credentials by querying a database hosted in a DBMS. serveru Accessing master.php.net was allowed not only through keys but also with a regular password. Analyzing the HTTP server logs confirmed that malicious changes were introduced via HTTPS.

When studying the logs, it was found that the attackers did not connect on the first try; instead, they initially attempted to guess the account name, but after determining it, they accessed it on the first attempt. This means they already knew the passwords of Rasmus and Nikita but did not know their usernames. If the attackers managed to access the DBMS, it is unclear why they did not immediately use the correct username indicated there. This inconsistency has not yet received a credible explanation. The hacking of master.php.net is considered the most likely scenario, as very old code and an outdated OS were used there, which had not been updated for a long time and had unpatched vulnerabilities. serveru The actions taken included reinstalling the server environment of master.php.net and updating scripts to the new PHP 8 version. The code for working with the DBMS has been revised to use parameterized queries, which complicate SQL code injection. The bcrypt algorithm is now used for storing password hashes in the DB (previously, passwords were stored using the unreliable MD5 hash). Existing passwords have been reset, and users are prompted to set a new password via the password recovery form. Since access to the repositories git.php.net and svn.php.net via HTTPS was linked to MD5 hashes, it was decided to keep git.php.net and svn.php.net in read-only mode and also to migrate all remaining PECL extension repositories to GitHub, similar to the main PHP repository.

In Firefox, it was decided not to remove compact mode and to activate WebRender for all Linux environments.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster