Vi har skrevet om PHP Packagistisk økosystem før.
I likhet med PyPI for Pythonistas, Gems for Ruby-fans, NPM for JavaScript-programmerere eller LuaRocks for Luaphiles, er Packagist et oppbevaringssted der samfunnsbidragsytere kan publisere detaljer om PHP-pakker de har laget.
Dette gjør det enkelt for andre PHP-kodere å få tak i bibliotekskode de ønsker å bruke i sine egne prosjekter, og å holde denne koden oppdatert automatisk hvis de ønsker det.
I motsetning til PyPI, som tilbyr sine egne servere der den faktiske bibliotekkoden lagres (eller LuaRocks, som noen ganger lagrer selve prosjektkildekoden og noen ganger lenker til andre depoter), lenker Packagist til, men beholder ikke selv kopier av, koden du trenger å laste ned.
Det er en fordel å gjøre det på denne måten, spesielt at prosjekter som administreres via velkjente kildekodetjenester som GitHub, ikke trenger å vedlikeholde to kopier av deres offisielle utgivelser, noe som bidrar til å unngå problemet med "versjonsdrift" mellom kildekodekontrollsystemet og emballasjesystemet.
Og det er en ulempe, spesielt at det uunngåelig er to forskjellige måter pakker kan bli fanget på.
Pakkebehandleren selv kan bli hacket, der endring av en enkelt URL kan være nok til å feildirigere brukere av pakken.
Eller kildekodelageret som er koblet til kan bli hacket, slik at brukere som fulgte det som så ut som den riktige nettadressen, uansett ville ende opp med useriøst innhold.
Gamle kontoer anses som skadelige
Dette angripe (vi vil kalle det det, selv om det ikke ble publisert noen booby-fanget kode av den aktuelle hackeren) brukte det du kan kalle en hybrid tilnærming.
Angriperen fant fire gamle og inaktive Packagist-kontoer som de på en eller annen måte hadde skaffet seg påloggingspassordene til.
De identifiserte deretter 14 GitHub-prosjekter som ble koblet til av disse inaktive kontoene og kopierte dem en nyopprettet GitHub-konto.
Til slutt finjusterte de pakkene i Packagist-systemet for å peke på de nye GitHub-depotene.
Kloning av GitHub-prosjekter er utrolig vanlig. Noen ganger ønsker utviklere å lage en ekte gaffel (alternativ versjon) av prosjektet under ny ledelse, eller tilby forskjellige funksjoner; andre ganger ser det ut til at gaflede prosjekter blir kopiert av det som lite flatterende kan kalles "volumetriske årsaker", noe som får GitHub-kontoer til å se større, bedre, travlere og mer forpliktet til fellesskapet (hvis du vil tilgi ordspillet) enn de egentlig er.
Selv om hackeren kunne ha satt inn falsk kode i den klonede GitHub PHP-kilden, for eksempel å legge til trackere, keyloggere, bakdører eller annen skadelig programvare, ser det ut til at alt de endret var et enkelt element i hvert prosjekt: en fil kalt composer.json
.
Denne filen inneholder en oppføring med tittelen description
, som vanligvis inneholder nøyaktig det du forventer å se: en tekststreng som beskriver hva kildekoden er for.
Og det er alt hackeren vår har endret, og endret teksten fra noe informativt, som Project PPP implements the QQQ protocol so you can RRR
, slik at prosjektene deres i stedet rapporterte:
Pwned av XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
Den andre setningen, skrevet halvparten på russisk, halvparten på engelsk, betyr:
Jeg ser etter en jobb innen Application Security... etc.
Vi kan ikke snakke på vegne av alle, men ettersom CV-er (Cv-er) går, fant vi ikke denne særlig overbevisende.
Også Packagist-teamet sier at alle uautoriserte endringer nå er tilbakestilt, og at de 14 klonede GitHub-prosjektene ikke hadde blitt modifisert på noen annen måte enn å inkludere pwnerens oppfordring om ansettelse.
For hva det er verdt, er GitHub-kontoen til den kommende Application Security-eksperten fortsatt aktiv, og har fortsatt de "forked"-prosjektene i seg.
Vi vet ikke om GitHub ennå ikke har klart å slette kontoen eller prosjektene, eller om nettstedet har bestemt seg for ikke å fjerne dem.
Tross alt er forking-prosjekter vanlig og tillatt (der lisensvilkår i det minste tillater det), og selv om det beskriver et ikke-ondsinnet kodeprosjekt med teksten Pwned by XXXX@XXXX.com
er lite nyttig, det er neppe ulovlig.
Hva gjør jeg?
- Ikke gjør dette. Du kommer definitivt ikke til å tiltrekke interessen til noen legitime arbeidsgivere, og (hvis vi er ærlige) kommer du ikke engang til å imponere noen cybercrooks der ute heller.
- Ikke la ubrukte kontoer være aktive hvis du kan hjelpe det. Som vi sa i går Verdens dag for passord, vurder å stenge kontoer du ikke trenger mer, med den begrunnelse at jo færre passord du har i bruk, desto færre er det å bli stjålet.
- Ikke gjenbruk passord på mer enn én konto. Packagists antagelse er at passordene som ble misbrukt i dette tilfellet lå rundt i datainnbruddsregistre fra andre kontoer der ofrene hadde brukt samme passord som på Packagist-kontoen sin.
- Ikke glem 2FA. Packagists oppfordrer alle sine egne brukere til å slå på 2FA, så et passord alene er ikke nok for en angriper til å logge på kontoen din, og anbefaler å gjøre det samme på GitHub-kontoen din også.
- Ikke aksepter blindt oppdateringer i forsyningskjeden uten å gjennomgå dem for korrekthet. Hvis du har et komplisert nett av pakkeavhengigheter, er det fristende å kaste ansvaret ditt til side og la systemet hente alle oppdateringene dine automatisk, men det setter deg og dine nedstrømsbrukere i ytterligere risiko.
HER ER DET RÅDET FRA VERDENS PASSORDDAG
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoAiStream. Web3 Data Intelligence. Kunnskap forsterket. Tilgang her.
- Minting the Future med Adryenn Ashley. Tilgang her.
- Kjøp og selg aksjer i PRE-IPO-selskaper med PREIPO®. Tilgang her.
- kilde: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 14
- 15%
- 2FA
- a
- Om oss
- Absolute
- Aksepterer
- Logg inn
- kontoer
- ervervet
- aktiv
- legge
- Ytterligere
- råd
- Alle
- tillate
- alene
- alternativ
- Selv
- an
- og
- noen
- Søknad
- applikasjonssikkerhet
- tilnærming
- ER
- rundt
- AS
- forutsetningen
- At
- forfatter
- auto
- automatisk
- unngå
- Bakdører
- background-image
- BE
- vært
- før du
- Bedre
- mellom
- større
- BleepingComputer
- blindt
- grensen
- Bunn
- brudd
- men
- by
- ring
- som heter
- CAN
- saken
- sentrum
- kjede
- endret
- Endringer
- endring
- lukking
- kode
- farge
- COM
- forpliktet
- Felles
- samfunnet
- komplisert
- bekymret
- Vurder
- ansett
- inneholder
- innhold
- bidragsytere
- kontroll
- kopier
- kunne
- dekke
- skape
- opprettet
- CVS
- cyber
- cybersikkerhet
- dato
- datainnbrudd
- Dato
- besluttet
- helt sikkert
- detaljer
- utviklere
- forskjellig
- Vise
- do
- ikke
- gjør
- ikke
- ned
- nedlasting
- ulempen
- hver enkelt
- lett
- enten
- arbeidsgivere
- sysselsetting
- slutt
- Engelsk
- nok
- entry
- etc
- Selv
- alle
- nøyaktig
- forvente
- fans
- Egenskaper
- kar
- færre
- filet
- Finn
- fulgt
- Til
- gaffel
- Gafler
- funnet
- fire
- fra
- ekte
- få
- GitHub
- Go
- skal
- hacket
- hacker
- HAD
- Halvparten
- Ha
- høyde
- hjelpe
- hjelper
- hold
- hover
- HTTPS
- Hybrid
- i
- identifisert
- if
- ulovlig
- redskaper
- in
- inaktiv
- inkludere
- inkluderer
- utrolig
- uunngåelig
- informative
- i stedet
- interesse
- inn
- IT
- DET ER
- selv
- Javascript
- Jobb
- bare
- Hold
- Vet
- minst
- Permisjon
- venstre
- legitim
- Bibliotek
- Lisensiering
- i likhet med
- knyttet
- lenker
- leve
- logg
- Logg inn
- Se
- så
- ser
- vedlikeholde
- GJØR AT
- Making
- malware
- fikk til
- ledelse
- leder
- Margin
- max bredde
- midler
- kunne
- modifisert
- mer
- Trenger
- Ny
- Nei.
- normal
- spesielt
- nå
- of
- tilby
- offisiell
- Gammel
- on
- ONE
- or
- Annen
- vår
- ut
- egen
- pakke
- pakker
- emballasje
- Passord
- passord
- paul
- penetration
- PHP
- plato
- Platon Data Intelligence
- PlatonData
- Point
- posisjon
- innlegg
- PPP
- Problem
- programmerere
- prosjekt
- prosjekter
- protokollen
- gir
- publisere
- publisert
- setter
- virkelig
- anbefaler
- poster
- Utgivelser
- fjerne
- rapportert
- Repository
- ansvar
- gjennomgå
- Risiko
- runde
- russisk
- Sa
- samme
- Sekund
- sikkerhet
- se
- synes
- synes
- dømme
- Tjenester
- enkelt
- nettstedet
- So
- oppfordring
- solid
- noe
- kilde
- kildekoden
- snakke
- spesialist
- Still
- stjålet
- lagret
- butikker
- String
- slik
- levere
- forsyningskjeden
- SVG
- system
- lag
- vilkår
- enn
- Det
- De
- Prosjektene
- Kilden
- deres
- Dem
- deretter
- Der.
- Disse
- de
- denne
- De
- selv om?
- ganger
- til
- også
- topp
- slenge
- Trackers
- overgang
- gjennomsiktig
- SVING
- to
- etter
- ubrukt
- oppdateringer
- upside
- oppfordrer
- URL
- bruke
- brukt
- Brukere
- vanligvis
- versjon
- av
- ofre
- ønsker
- var
- Vei..
- måter
- we
- web
- velkjent
- var
- Hva
- om
- hvilken
- HVEM
- vil
- med
- uten
- verden
- verdt
- ville
- skrevet
- ennå
- du
- Din
- zephyrnet