We hebben geschreven over PHP's Packagistisch ecosysteem voor.
Net als PyPI voor Pythonistas, Gems voor Ruby-fans, NPM voor JavaScript-programmeurs of LuaRocks voor Luaphiles, is Packagist een repository waar community-bijdragers details kunnen publiceren van PHP-pakketten die ze hebben gemaakt.
Dit maakt het gemakkelijk voor mede-PHP-codeerders om bibliotheekcode te bemachtigen die ze in hun eigen projecten willen gebruiken, en om die code automatisch up-to-date te houden als ze dat willen.
In tegenstelling tot PyPI, dat zijn eigen servers levert waar de daadwerkelijke bibliotheekcode wordt opgeslagen (of LuaRocks, dat soms de projectbroncode zelf opslaat en soms linkt naar andere repositories), linkt Packagist naar, maar bewaart zelf geen kopieën van, de code die u moet downloaden.
Er is een voordeel om het op deze manier te doen, met name dat projecten die worden beheerd via bekende broncodeservices zoals GitHub geen twee exemplaren van hun officiële releases hoeven te onderhouden, wat helpt om het probleem van "versiedrift" tussen de broncodecontrolesysteem en het verpakkingssysteem.
En er is een keerzijde, met name dat er onvermijdelijk twee verschillende manieren zijn waarop pakketten met boobytraps kunnen worden beveiligd.
De pakketbeheerder zelf kan worden gehackt, waarbij het wijzigen van een enkele URL voldoende kan zijn om gebruikers van het pakket te misleiden.
Of de broncode-opslagplaats waarnaar is gelinkt, kan worden gehackt, zodat gebruikers die de schijnbaar juiste URL volgen, toch eindigen met frauduleuze inhoud.
Oude accounts die als schadelijk worden beschouwd
Deze aanvallen (we zullen het zo noemen, ook al is er geen code met boobytraps gepubliceerd door de betreffende hacker) gebruikte wat je een hybride aanpak zou kunnen noemen.
De aanvaller vond vier oude en inactieve Packagist-accounts waarvoor ze op de een of andere manier de inlogwachtwoorden hadden verkregen.
Vervolgens identificeerden ze 14 GitHub-projecten waaraan deze inactieve accounts waren gekoppeld en kopieerden ze naar een nieuw aangemaakt GitHub-account.
Ten slotte hebben ze de pakketten in het Packagist-systeem aangepast om naar de nieuwe GitHub-repository's te verwijzen.
Het klonen van GitHub-projecten is ongelooflijk gebruikelijk. Soms willen ontwikkelaars een echte fork (alternatieve versie) van het project maken onder nieuw management, of andere functies aanbieden; op andere momenten lijken gevorkte projecten te worden gekopieerd om wat misschien niet erg vleiend "volumetrische redenen" wordt genoemd, waardoor GitHub-accounts groter, beter, drukker en meer toegewijd aan de gemeenschap lijken (als u mij de woordspeling wilt vergeven) dan ze in werkelijkheid zijn.
Hoewel de hacker frauduleuze code in de gekloonde GitHub PHP-bron had kunnen invoegen, zoals het toevoegen van trackers, keyloggers, backdoors of andere malware, lijkt het erop dat alles wat ze veranderden een enkel item in elk project was: een bestand met de naam composer.json
.
Dit bestand bevat een item getiteld description
, die meestal precies bevat wat u zou verwachten: een tekenreeks die beschrijft waar de broncode voor is.
En dat is alles wat onze hacker heeft aangepast, de tekst veranderd van iets informatiefs, zoals Project PPP implements the QQQ protocol so you can RRR
, zodat hun projecten in plaats daarvan rapporteerden:
Gepwnd door XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
De tweede zin, half geschreven in het Russisch, half in het Engels, betekent:
Ik ben op zoek naar een baan in Application Security... enz.
We kunnen niet voor iedereen spreken, maar zoals cv's (cv's) gaan, vonden we deze niet erg overtuigend.
Ook de Packagist-team zegt dat alle ongeoorloofde wijzigingen nu zijn teruggedraaid en dat de 14 gekloonde GitHub-projecten op geen enkele andere manier zijn gewijzigd dan om het verzoek om werk van de pwner op te nemen.
Voor wat het waard is, het GitHub-account van de aspirant-expert op het gebied van toepassingsbeveiliging is nog steeds live en bevat nog steeds die "gevorkte" projecten.
We weten niet of GitHub er nog niet aan toe is gekomen om het account of de projecten te verwijderen, of dat de site heeft besloten ze niet te verwijderen.
Het forken van projecten is tenslotte alledaags en toegestaan (ten minste waar de licentievoorwaarden dit toestaan), en hoewel een niet-kwaadaardig codeproject wordt beschreven met de tekst Pwned by XXXX@XXXX.com
is nutteloos, het is nauwelijks illegaal.
Wat te doen?
- Doe dit niet. Je zult zeker niet de interesse wekken van legitieme werkgevers, en (als we eerlijk zijn) je zult zelfs geen indruk maken op cybercriminelen.
- Laat geen ongebruikte accounts actief als u er iets aan kunt doen. Zoals we gisteren al zeiden Wereld Wachtwoord Dag, overweeg om accounts te sluiten die u niet meer nodig heeft, omdat hoe minder wachtwoorden u in gebruik heeft, hoe minder er gestolen kunnen worden.
- Hergebruik wachtwoorden niet op meer dan één account. De veronderstelling van Packagist is dat de in dit geval misbruikte wachtwoorden rondslingerden in datalekrecords van andere accounts waar de slachtoffers hetzelfde wachtwoord hadden gebruikt als op hun Packagist-account.
- Vergeet je 2FA niet. Packagists dringt er bij al zijn eigen gebruikers op aan om 2FA in te schakelen, dus een wachtwoord alleen is niet voldoende voor een aanvaller om in te loggen op uw account, en raadt aan hetzelfde te doen op uw GitHub-account.
- Accepteer niet blindelings updates van de toeleveringsketen zonder ze op juistheid te controleren. Als u een ingewikkeld web van pakketafhankelijkheden heeft, is het verleidelijk om uw verantwoordelijkheden aan de kant te schuiven en het systeem al uw updates automatisch te laten ophalen, maar dat brengt u en uw downstreamgebruikers alleen maar extra in gevaar.
HIER IS DAT ADVIES VAN WERELD WACHTWOORD DAG
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoAiStream. Web3 gegevensintelligentie. Kennis versterkt. Toegang hier.
- De toekomst slaan met Adryenn Ashley. Toegang hier.
- Koop en verkoop aandelen in PRE-IPO-bedrijven met PREIPO®. Toegang hier.
- Bron: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 14
- 15%
- 2FA
- a
- Over
- absoluut
- ACCEPTEREN
- Account
- accounts
- verworven
- actieve
- toe te voegen
- Extra
- advies
- Alles
- toelaten
- alleen
- alternatief
- Hoewel
- an
- en
- elke
- Aanvraag
- applicatiebeveiliging
- nadering
- ZIJN
- rond
- AS
- aanname
- At
- auteur
- auto
- webmaster.
- vermijd
- Backdoors
- background-image
- BE
- geweest
- vaardigheden
- Betere
- tussen
- groter
- BeginnersWeb
- blindelings
- grens
- Onder
- overtreding
- maar
- by
- Bellen
- Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen.
- CAN
- geval
- Centreren
- keten
- veranderd
- Wijzigingen
- veranderende
- sluitend
- code
- kleur
- COM
- toegewijd
- Gemeen
- gemeenschap
- ingewikkeld
- betrokken
- Overwegen
- beschouwd
- bevat
- content
- bijdragers
- onder controle te houden
- kopieën
- kon
- deksel
- en je merk te creëren
- aangemaakt
- CVS
- cyber
- internetveiligheid
- gegevens
- datalek
- Datum
- beslist
- definitief
- gegevens
- ontwikkelaars
- anders
- Display
- do
- Nee
- doen
- Dont
- beneden
- Download
- keerzijde
- elk
- En het is heel gemakkelijk
- beide
- werkgevers
- werk
- einde
- Engels
- genoeg
- toegang
- etc
- Zelfs
- iedereen
- precies
- verwachten
- <p></p>
- Voordelen
- kameraad
- minder
- Dien in
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- gevolgd
- Voor
- vork
- forking
- gevonden
- vier
- oppompen van
- echt
- krijgen
- GitHub
- Go
- gaan
- gehackt
- hacker
- HAD
- Helft
- Hebben
- Hoogte
- hulp
- helpt
- houden
- zweven
- HTTPS
- Hybride
- i
- geïdentificeerd
- if
- Onwettig
- gereedschap
- in
- inactief
- omvatten
- omvat
- ongelooflijk
- onvermijdelijk
- leerzaam
- verkrijgen in plaats daarvan
- belang
- in
- IT
- HAAR
- zelf
- JavaScript
- Jobomschrijving:
- voor slechts
- Houden
- blijven
- minst
- Verlof
- links
- rechtmatig
- Bibliotheek
- Licenties
- als
- gekoppeld
- links
- leven
- inloggen
- Log in
- Kijk
- keek
- op zoek
- onderhouden
- MERKEN
- maken
- malware
- beheerd
- management
- manager
- Marge
- max-width
- middel
- macht
- gewijzigd
- meer
- Noodzaak
- New
- geen
- een
- in het bijzonder
- nu
- of
- het aanbieden van
- officieel
- Oud
- on
- EEN
- or
- Overige
- onze
- uit
- het te bezitten.
- pakket
- Paketten
- verpakking
- Wachtwoord
- wachtwoorden
- Paul
- doordringen
- PHP
- Plato
- Plato gegevensintelligentie
- PlatoData
- punt
- positie
- Berichten
- PPP
- probleem
- Programmeurs
- project
- projecten
- protocol
- biedt
- publiceren
- gepubliceerde
- puts
- werkelijk
- beveelt
- archief
- Releases
- verwijderen
- gemeld
- bewaarplaats
- verantwoordelijkheden
- herzien
- Risico
- ronde
- Russisch
- Zei
- dezelfde
- Tweede
- veiligheid
- zien
- lijken
- lijkt
- zin
- Diensten
- single
- website
- So
- verzoek
- solide
- iets
- bron
- broncode
- spreken
- specialist
- Still
- gestolen
- opgeslagen
- winkels
- Draad
- dergelijk
- leveren
- toeleveringsketen
- SVG
- system
- team
- termen
- neem contact
- dat
- De
- De projecten
- De Bron
- hun
- Ze
- harte
- Er.
- Deze
- ze
- dit
- die
- toch?
- keer
- naar
- ook
- top
- toss
- Trackers
- overgang
- transparant
- BEURT
- twee
- voor
- ongebruikt
- updates
- bovenkant
- driften
- URL
- .
- gebruikt
- gebruikers
- doorgaans
- versie
- via
- slachtoffers
- willen
- was
- Manier..
- manieren
- we
- web
- bekend
- waren
- Wat
- of
- welke
- WIE
- wil
- Met
- zonder
- wereld
- waard
- zou
- geschreven
- nog
- u
- Your
- zephyrnet