Vi har skrevet om PHP Packagistisk økosystem før.
Ligesom PyPI for Pythonistas, Gems for Ruby-fans, NPM for JavaScript-programmører eller LuaRocks for Luaphiles, er Packagist et lager, hvor fællesskabsbidragydere kan offentliggøre detaljer om PHP-pakker, de har oprettet.
Dette gør det nemt for andre PHP-kodere at få fat i bibliotekskode, de vil bruge i deres egne projekter, og at holde denne kode opdateret automatisk, hvis de ønsker det.
I modsætning til PyPI, som leverer sine egne servere, hvor den faktiske bibliotekskode er gemt (eller LuaRocks, som nogle gange gemmer selve projektets kildekode og nogle gange linker til andre repositories), linker Packagist til, men opbevarer ikke selv kopier af, den kode du skal downloades.
Der er en fordel ved at gøre det på denne måde, især at projekter, der styres via velkendte kildekodetjenester såsom GitHub, ikke behøver at vedligeholde to kopier af deres officielle udgivelser, hvilket hjælper med at undgå problemet med "versionsdrift" mellem kildekodekontrolsystem og pakkesystemet.
Og der er en ulempe, især at der uundgåeligt er to forskellige måder, hvorpå pakker kan blive fanget.
Pakkemanageren selv kunne blive hacket, hvor ændring af en enkelt URL kan være nok til at misdirigere brugere af pakken.
Eller det kildekodelager, der er linket til, kunne blive hacket, så brugere, der fulgte, hvad der lignede den rigtige URL, alligevel ville ende med useriøst indhold.
Gamle konti betragtes som skadelige
Denne angribe (vi kalder det det, selvom der ikke blev offentliggjort nogen booby-fanget kode af den pågældende hacker) brugte, hvad man kunne kalde en hybrid tilgang.
Angriberen fandt fire gamle og inaktive Packagist-konti, som de på en eller anden måde havde erhvervet login-adgangskoderne til.
De identificerede derefter 14 GitHub-projekter, der var knyttet til disse inaktive konti, og kopierede dem til en nyoprettet GitHub-konto.
Til sidst justerede de pakkerne i Packagist-systemet for at pege på de nye GitHub-depoter.
Kloning af GitHub-projekter er utroligt almindeligt. Nogle gange ønsker udviklere at skabe en ægte fork (alternativ version) af projektet under ny ledelse eller tilbyde forskellige funktioner; på andre tidspunkter ser forgrenede projekter ud til at blive kopieret af, hvad der måske lidet flatterende kan kaldes "volumetriske årsager", hvilket får GitHub-konti til at se større, bedre, travlere og mere engageret i fællesskabet (hvis du vil undskylde ordspillet), end de i virkeligheden er.
Selvom hackeren kunne have indsat useriøs kode i den klonede GitHub PHP-kilde, såsom tilføjelse af trackere, keyloggere, bagdøre eller anden malware, ser det ud til, at alt, hvad de ændrede, var et enkelt element i hvert projekt: en fil kaldet composer.json
.
Denne fil indeholder en post med titlen description
, som normalt indeholder præcis det, du ville forvente at se: en tekststreng, der beskriver, hvad kildekoden er til.
Og det er alt, hvad vores hacker har ændret, og ændret teksten fra noget informativt, f.eks Project PPP implements the QQQ protocol so you can RRR
, så deres projekter i stedet rapporterede:
Pwned af XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
Den anden sætning, skrevet halvt på russisk, halvt på engelsk, betyder:
Jeg søger job indenfor Application Security... osv.
Vi kan ikke tale på vegne af alle, men som CV'er (cv'er) går, fandt vi ikke denne særlig overbevisende.
Også den Packagist team siger at alle uautoriserede ændringer nu er blevet vendt tilbage, og at de 14 klonede GitHub-projekter ikke var blevet ændret på anden måde end til at inkludere pwnerens opfordring til ansættelse.
For hvad det er værd, er den potentielle Application Security-eksperts GitHub-konto stadig live og har stadig de "forked"-projekter i sig.
Vi ved ikke, om GitHub endnu ikke er nået til at slette kontoen eller projekterne, eller om webstedet har besluttet ikke at fjerne dem.
Forking-projekter er jo almindeligt og tilladt (hvor licensbetingelser i det mindste tillader det), og selvom det beskriver et ikke-ondsindet kodeprojekt med teksten Pwned by XXXX@XXXX.com
er uhjælpeligt, det er næppe ulovligt.
Hvad skal jeg gøre?
- Gør ikke dette. Du vil bestemt ikke tiltrække nogen legitime arbejdsgiveres interesse, og (hvis vi er ærlige) vil du heller ikke imponere nogen cyberskurke derude.
- Lad ikke ubrugte konti være aktive, hvis du kan hjælpe det. Som vi sagde i går Verdens adgangskodedag, overveje at lukke konti, du ikke har brug for mere, med den begrundelse, at jo færre adgangskoder du har i brug, jo færre er der at blive stjålet.
- Genbrug ikke adgangskoder på mere end én konto. Packagists antagelse er, at de adgangskoder, der blev misbrugt i dette tilfælde, lå rundt omkring i databrudsregistre fra andre konti, hvor ofrene havde brugt det samme kodeord som på deres Packagist-konto.
- Glem ikke din 2FA. Packagists opfordrer alle sine egne brugere til at slå 2FA til, så en adgangskode alene er ikke nok for en angriber til at logge ind på din konto, og anbefaler også at gøre det samme på din GitHub-konto.
- Accepter ikke blindt forsyningskædeopdateringer uden at gennemgå dem for korrekthed. Hvis du har et kompliceret net af pakkeafhængigheder, er det fristende at smide dit ansvar til side og lade systemet hente alle dine opdateringer automatisk, men det sætter dig og dine downstream-brugere i yderligere risiko.
HER ER RÅDET FRA VERDENS PASSWORD DAY
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoAiStream. Web3 Data Intelligence. Viden forstærket. Adgang her.
- Udmøntning af fremtiden med Adryenn Ashley. Adgang her.
- Køb og sælg aktier i PRE-IPO-virksomheder med PREIPO®. Adgang her.
- Kilde: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 14
- 15 %
- 2FA
- a
- Om
- absolutte
- Acceptere
- Konto
- Konti
- erhvervede
- aktiv
- tilføje
- Yderligere
- rådgivning
- Alle
- tillade
- alene
- alternativ
- Skønt
- an
- ,
- enhver
- Anvendelse
- applikationssikkerhed
- tilgang
- ER
- omkring
- AS
- antagelse
- At
- forfatter
- auto
- automatisk
- undgå
- Bagdøre
- background-billede
- BE
- været
- før
- Bedre
- mellem
- større
- BleepingComputer
- blindt
- grænse
- Bund
- brud
- men
- by
- ringe
- kaldet
- CAN
- tilfælde
- center
- kæde
- ændret
- Ændringer
- skiftende
- lukning
- kode
- farve
- KOM
- engageret
- Fælles
- samfund
- kompliceret
- pågældende
- Overvej
- betragtes
- indeholder
- indhold
- bidragydere
- kontrol
- kopier
- kunne
- dæksel
- skabe
- oprettet
- CVS
- Cyber
- cybersikkerhed
- data
- bruddet
- Dato
- besluttede
- definitivt
- detaljer
- udviklere
- forskellige
- Skærm
- do
- Er ikke
- gør
- Dont
- ned
- downloade
- downside
- hver
- let
- enten
- arbejdsgivere
- beskæftigelse
- ende
- Engelsk
- nok
- indrejse
- etc.
- Endog
- alle
- præcist nok
- forvente
- fans
- Funktionalitet
- fyr
- færre
- File (Felt)
- Finde
- efterfulgt
- Til
- gaffel
- Gafler
- fundet
- fire
- fra
- ægte
- få
- GitHub
- Go
- gå
- hacket
- hacker
- havde
- Halvdelen
- Have
- højde
- hjælpe
- hjælper
- hold
- hover
- HTTPS
- Hybrid
- i
- identificeret
- if
- Ulovlig
- redskaber
- in
- inaktive
- omfatter
- omfatter
- utroligt
- uundgåeligt
- informative
- i stedet
- interesse
- ind
- IT
- ITS
- selv
- JavaScript
- Job
- lige
- Holde
- Kend
- mindst
- Forlade
- til venstre
- legitim
- Bibliotek
- Licenser
- ligesom
- forbundet
- links
- leve
- log
- Logge på
- Se
- kiggede
- leder
- vedligeholde
- maerker
- Making
- malware
- lykkedes
- ledelse
- leder
- Margin
- max-bredde
- midler
- måske
- modificeret
- mere
- Behov
- Ny
- ingen
- normal
- især
- nu
- of
- tilbyde
- officiel
- Gammel
- on
- ONE
- or
- Andet
- vores
- ud
- egen
- pakke
- pakker
- emballage
- Adgangskode
- Nulstilling/ændring af adgangskoder
- paul
- trænge ind
- PHP
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- position
- Indlæg
- PPP
- Problem
- Programmører
- projekt
- projekter
- protokol
- giver
- offentliggøre
- offentliggjort
- sætter
- virkelig
- anbefaler
- optegnelser
- Udgivelser
- Fjern
- rapporteret
- Repository
- ansvar
- gennemgå
- Risiko
- rundt
- Russisk
- Said
- samme
- Anden
- sikkerhed
- se
- synes
- synes
- dømme
- Tjenester
- enkelt
- websted
- So
- opfordring
- solid
- noget
- Kilde
- kildekode
- tale
- specialist
- Stadig
- stjålet
- opbevaret
- forhandler
- String
- sådan
- forsyne
- forsyningskæde
- SVG
- systemet
- hold
- vilkår
- end
- at
- Projekterne
- The Source
- deres
- Them
- derefter
- Der.
- Disse
- de
- denne
- dem
- selvom?
- gange
- til
- også
- top
- smid væk
- trackers
- overgang
- gennemsigtig
- TUR
- to
- under
- ubrugt
- opdateringer
- upside
- drifter
- URL
- brug
- anvendte
- brugere
- sædvanligvis
- udgave
- via
- ofre
- ønsker
- var
- Vej..
- måder
- we
- web
- Kendt
- var
- Hvad
- hvorvidt
- som
- WHO
- vilje
- med
- uden
- world
- værd
- ville
- skriftlig
- endnu
- dig
- Din
- zephyrnet