Vi har skrivit om PHP Packagistiskt ekosystem innan.
Precis som PyPI för Pythonistas, Gems för Ruby-fans, NPM för JavaScript-programmerare eller LuaRocks för Luaphiles, är Packagist ett arkiv där community-bidragsgivare kan publicera information om PHP-paket som de har skapat.
Detta gör det enkelt för andra PHP-kodare att få tag i bibliotekskod de vill använda i sina egna projekt och att hålla den koden uppdaterad automatiskt om de så önskar.
Till skillnad från PyPI, som tillhandahåller sina egna servrar där den faktiska bibliotekskoden lagras (eller LuaRocks, som ibland lagrar själva projektets källkod och ibland länkar till andra repositories), länkar Packagist till, men behåller inte själv kopior av, koden du behöver ladda ner.
Det finns en uppsida med att göra det på det här sättet, särskilt att projekt som hanteras via välkända källkodstjänster som GitHub inte behöver underhålla två kopior av sina officiella utgåvor, vilket hjälper till att undvika problemet med "versionsdrift" mellan källkodskontrollsystemet och förpackningssystemet.
Och det finns en nackdel, i synnerhet att det oundvikligen finns två olika sätt som paket kan vara snåla på.
Själva pakethanteraren kan bli hackad, där det kan räcka att ändra en enda URL för att missrikta användare av paketet.
Eller källkodsförrådet som är länkat till kan hackas, så att användare som följde vad som såg ut som rätt URL skulle sluta med oseriöst innehåll ändå.
Gamla konton anses vara skadliga
Denna attackera (vi kommer att kalla det så, även om ingen booby-fälld kod publicerades av den berörda hackaren) använde vad man kan kalla en hybrid metod.
Angriparen hittade fyra gamla och inaktiva Packagist-konton som de på något sätt hade skaffat inloggningslösenord för.
De identifierade sedan 14 GitHub-projekt som var länkade till av dessa inaktiva konton och kopierade dem ett nyskapat GitHub-konto.
Slutligen finjusterade de paketen i Packagist-systemet för att peka på de nya GitHub-förråden.
Att klona GitHub-projekt är otroligt vanligt. Ibland vill utvecklare skapa en äkta gaffel (alternativ version) av projektet under ny ledning, eller erbjuda olika funktioner; vid andra tillfällen verkar splittrade projekt kopieras av vad som föga smickrande kan kallas "volymetriska skäl", vilket gör att GitHub-konton ser större, bättre, mer upptagen och mer engagerade i samhället (om du ursäktar ordleken) än de verkligen är.
Även om hackaren kunde ha infogat oseriös kod i den klonade GitHub PHP-källan, som att lägga till spårare, keyloggers, bakdörrar eller annan skadlig kod, verkar det som att allt de ändrade var ett enda objekt i varje projekt: en fil som heter composer.json
.
Denna fil innehåller en post med titeln description
, som vanligtvis innehåller exakt vad du förväntar dig att se: en textsträng som beskriver vad källkoden är till för.
Och det är allt vår hacker modifierade, ändra texten från något informativt, som Project PPP implements the QQQ protocol so you can RRR
, så att deras projekt istället rapporterade:
Pwned av XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
Den andra meningen, skriven hälften på ryska, hälften på engelska, betyder:
Jag söker jobb inom Application Security... osv.
Vi kan inte tala för alla, men som CV:n (meritförteckningar) går, fann vi inte detta särskilt övertygande.
Också, den Packagist-teamet säger att alla otillåtna ändringar nu har återställts, och att de 14 klonade GitHub-projekten inte hade modifierats på något annat sätt än att inkludera pwnerens anställningsförfrågan.
För vad det är värt, är den blivande Application Security-expertens GitHub-konto fortfarande live och har fortfarande de "klyftade" projekten i sig.
Vi vet inte om GitHub ännu inte har tagit bort kontot eller projekten, eller om webbplatsen har beslutat att inte ta bort dem.
När allt kommer omkring är forking-projekt vanligt och tillåtet (där licensvillkoren tillåter, åtminstone), och även om man beskriver ett icke-skadligt kodprojekt med texten Pwned by XXXX@XXXX.com
är föga hjälpsamt, det är knappast olagligt.
Vad göra?
- Gör inte det här. Du kommer definitivt inte att locka intresset från några legitima arbetsgivare, och (om vi är ärliga) du kommer inte ens att imponera på några cyberskurkar där ute heller.
- Lämna inte oanvända konton aktiva om du kan hjälpa det. Som vi sa igår Världslösenordsdagen, överväg att stänga konton som du inte behöver längre, med motiveringen att ju färre lösenord du använder desto färre är det att bli stulen.
- Återanvänd inte lösenord på mer än ett konto. Packagists antagande är att lösenorden som missbrukades i det här fallet låg runt i dataintrångsregister från andra konton där offren hade använt samma lösenord som på sitt Packagist-konto.
- Glöm inte din 2FA. Packagists uppmanar alla sina egna användare att slå på 2FA, så ett lösenord enbart räcker inte för att en angripare ska logga in på ditt konto, och rekommenderar att du gör samma sak på ditt GitHub-konto också.
- Acceptera inte blint uppdateringar av leveranskedjan utan att granska dem för korrekthet. Om du har ett komplicerat nät av paketberoenden är det frestande att kasta ditt ansvar åt sidan och låta systemet hämta alla dina uppdateringar automatiskt, men det utsätter dig och dina nedströmsanvändare för ytterligare risker.
HÄR ÄR DET RÅDET FRÅN WORLD PASSWORD DAY
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Köp och sälj aktier i PRE-IPO-företag med PREIPO®. Tillgång här.
- Källa: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 14
- 15%
- 2FA
- a
- Om oss
- Absolut
- Acceptera
- Konto
- konton
- förvärvade
- aktiv
- tillsats
- Annat
- rådgivning
- Alla
- tillåter
- ensam
- alternativ
- Även
- an
- och
- vilken som helst
- Ansökan
- applikationssäkerhet
- tillvägagångssätt
- ÄR
- runt
- AS
- Antagandet
- At
- Författaren
- bil
- automatiskt
- undvika
- Bakdörrar
- bakgrund-bild
- BE
- varit
- innan
- Bättre
- mellan
- större
- BleepingComputer
- blint
- gränsen
- Botten
- brott
- men
- by
- Ring
- kallas
- KAN
- Vid
- Centrum
- kedja
- ändrats
- Förändringar
- byte
- stängning
- koda
- färg
- COM
- engagerad
- Gemensam
- samfundet
- komplicerad
- aktuella
- Tänk
- anses
- innehåller
- innehåll
- contributors
- kontroll
- kopior
- kunde
- täcka
- skapa
- skapas
- CVS
- cyber
- Cybersäkerhet
- datum
- dataintrång
- Datum
- beslutade
- definitivt
- detaljer
- utvecklare
- olika
- Visa
- do
- inte
- gör
- inte
- ner
- ladda ner
- nackdelen
- varje
- lätt
- antingen
- arbetsgivare
- sysselsättning
- änden
- Engelska
- tillräckligt
- inträde
- etc
- Även
- alla
- exakt
- förvänta
- fans
- Funktioner
- Kompis
- färre
- Fil
- hitta
- följt
- För
- gaffel
- Gafflar
- hittade
- fyra
- från
- verklig
- skaffa sig
- GitHub
- Go
- kommer
- hackad
- Hackaren
- hade
- Hälften
- Har
- höjd
- hjälpa
- hjälper
- hålla
- hovring
- HTTPS
- Hybrid
- i
- identifierade
- if
- Olaglig
- redskap
- in
- inaktiv
- innefattar
- innefattar
- oerhört
- oundvikligen
- informativ
- istället
- intresse
- in
- IT
- DESS
- sig
- JavaScript
- Jobb
- bara
- Ha kvar
- Vet
- t minst
- Lämna
- vänster
- legitim
- Bibliotek
- Licens
- tycka om
- kopplade
- länkar
- lever
- log
- logga in
- se
- såg
- du letar
- bibehålla
- GÖR
- Framställning
- malware
- förvaltade
- ledning
- chef
- Marginal
- max-bredd
- betyder
- kanske
- modifierad
- mer
- Behöver
- Nya
- Nej
- normala
- i synnerhet
- nu
- of
- erbjuda
- tjänsteman
- Gamla
- on
- ONE
- or
- Övriga
- vår
- ut
- egen
- paket
- paket
- förpackning
- Lösenord
- lösenord
- paul
- genomslag
- PHP
- plato
- Platon Data Intelligence
- PlatonData
- Punkt
- placera
- inlägg
- PPP
- Problem
- programmerare
- projektet
- projekt
- protokoll
- ger
- publicera
- publicerade
- Puts
- verkligen
- rekommenderar
- register
- meddelanden
- ta bort
- Rapporterad
- Repository
- ansvar
- reviewing
- Risk
- rund
- ryska
- Nämnda
- Samma
- Andra
- säkerhet
- se
- verka
- verkar
- mening
- Tjänster
- enda
- webbplats
- So
- värvning
- fast
- något
- Källa
- källkod
- tala
- specialist
- Fortfarande
- stulna
- lagras
- lagrar
- Sträng
- sådana
- leverera
- leveranskedjan
- SVG
- system
- grupp
- villkor
- än
- den där
- Smakämnen
- Projekten
- källan
- deras
- Dem
- sedan
- Där.
- Dessa
- de
- detta
- de
- fastän?
- gånger
- till
- alltför
- topp
- kasta
- Trackers
- övergång
- transparent
- SVÄNG
- två
- under
- oanvänd
- Uppdateringar
- upside
- drifter
- URL
- användning
- Begagnade
- användare
- vanligen
- version
- via
- offer
- vill
- var
- Sätt..
- sätt
- we
- webb
- ALLBEKANT
- były
- Vad
- om
- som
- VEM
- kommer
- med
- utan
- världen
- värt
- skulle
- skriven
- ännu
- dig
- Din
- zephyrnet