Aanvalsroute voor PHP-backdoors getraceerd naar oude database
De ontwikkelaars van de veelgebruikte scripttaal PHP maken vorderingen met hun analyse van hoe onbekende aanvallers zijn binnengekomen in hun ontwikkelomgeving. De kwaadwillenden zijn er eind vorige maand in geslaagd om enkele codetoevoegingen te pushen op naam van officiële ontwikkelaarsaccounts. De codecommits bleken backdoors te bevatten, wat net op tijd is ontdekt.
Lekkende gebruikersdatabase
In een nieuwe informatie-update geeft maintainer Nikita Popov aan dat het PHP-team niet langer er van uit gaat dat de eigen Git-server (git.php.net) is gehackt. Het is echter mogelijk dat de master.php.net-gebruikersdatabase is uitgelekt, geeft hij aan. Die server is nu gemigreerd naar een nieuw systeem: main.php.net.
Andere maatregelen die inmiddels zijn genomen, omvatten het resetten van alle wachtwoorden voor php.net. Hierdoor moeten alle gebruikers een nieuw wachtwoord instellen. Verder zijn de servers git.php.net en svn.php.net nu op read-only gezet. Die twee systemen blijven vooralsnog wel beschikbaar, meldt Popov. Het PHP-team is van de zelfgehoste Git-omgeving overgestapt naar GitHub, wat al gebruikt werd als mirror.
Onveiliger via https
Uit de analyse van de hack komt nu naar voren dat git.php.net het pushen van codewijzigingen op een voorheen niet bekende en onveilige wijze toestond. Het 'invoeren' van nieuwe code kon niet alleen via SSH maar ook via https. Laatstgenoemde liep dan niet via Gitolite, een systeem voor access control dat bovenop ontwikkelsoftware Git draait. In plaats daarvan gebeurde controle op een minder veilige wijze: via wachtwoorden die werden gecontroleerd met de master.php.net-database.
De codecommits met daarin de backdoors zijn inderdaad via https en wachtwoordgebaseerde authenticatie ingediend, weet Popov te bevestigen op basis van logs. "Het is opvallend dat de aanvaller maar een paar gokken heeft gedaan voor gebruikersnamen, en succesvol weet te authenticeren zodra de juiste gebruikersnaam is gevonden."
Zeer oude software
"Terwijl we geen specifiek bewijs hebben, is een mogelijke verklaring dat de gebruikersdatabase van master.php.net is uitgelekt", meldt de PHP-maintainer. Hij voegt daar gelijk aan toe dat het onduidelijk is waarom de aanvaller dan gebruikersnamen moest raden, als de database van gebruikersaccounts echt was uitgelekt.
De bewuste server draait wel "zeer oude code op een zeer oud besturingssysteem / PHP-versie", geeft Popov aan. Details worden hierbij niet gegeven, maar enkele hints over de oude software zijn wel af te leiden. Zo meldt de maintainer dat de master.php.net-server is gemigreerd naar een nieuw systeem wat PHP 8 draait. Daarbij is het hernoemd naar main.php.net, en ondersteunt dat nieuwe systeem TLS 1.2. Dit suggereert een PHP-installatie van vóór versie 8, en TLS-versie 1.1 of nog ouder.
MD5-hashing
Verder is de gemigreerde implementatie van de PHP-server voorzien van betere bescherming tegen SQL-injecties (door middel van geparametriseerde queries). De wachtwoorden zijn nu opgeslagen met hashingfunctie bcrypt, wat voorheen met in wezen een simpele md5-hash was gedaan. Laatstgenoemde was vereist voor http-authenticatie via git.php.net en svn.php.net. Op GitHub is wachtwoord-gebaseerde authenticatie al geruime tijd verouderd verklaard (deprecated), en wordt het per 13 augustus uitgeschakeld.
MELD JE AAN VOOR DE SECURITY GAME!
Meld je gratis aan voor de Security Game van AG Connect op donderdag 22 april. Tijdens deze middag ga je de strijd aan met hackers in een echte security escaperoom. Game-elementen worden afgewisseld met inhoudelijke sessies over security. Meer weten? Ga naar de website voor meer informatie of aanmelden.
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee