Am scris despre PHP-uri Ecosistem de ambalaj înainte.
La fel ca PyPI pentru Pythonistas, Gems for Ruby fans, NPM pentru programatori JavaScript sau LuaRocks pentru Luaphiles, Packagist este un depozit în care colaboratorii comunității pot publica detalii despre pachetele PHP pe care le-au creat.
Acest lucru face mai ușor pentru colegii programatori PHP să obțină codul de bibliotecă pe care doresc să-l folosească în propriile proiecte și să păstreze acel cod actualizat automat dacă doresc.
Spre deosebire de PyPI, care furnizează propriile servere în care este stocat codul propriu-zis al bibliotecii (sau LuaRocks, care stochează uneori codul sursă al proiectului în sine și uneori se leagă la alte depozite), Packagist face linkuri la codul pe care îl păstrează, dar nu păstrează el însuși copii ale acestuia. trebuie să descărcați.
Există un avantaj în a proceda astfel, în special că proiectele care sunt gestionate prin intermediul unor servicii de cod sursă binecunoscute, cum ar fi GitHub, nu trebuie să păstreze două copii ale versiunilor oficiale, ceea ce ajută la evitarea problemei „derivei versiunii” între sistemul de control al codului sursă și sistemul de ambalare.
Și există un dezavantaj, în special că există în mod inevitabil două moduri diferite prin care pachetele ar putea fi prinse în capcană.
Managerul de pachete în sine ar putea fi piratat, unde modificarea unei singure adrese URL ar putea fi suficientă pentru a direcționa greșit utilizatorii pachetului.
Sau depozitul de cod sursă la care este legat ar putea fi piratat, astfel încât utilizatorii care au urmat ceea ce părea ca URL-ul corect să ajungă oricum cu conținut necinstit.
Conturi vechi considerate dăunătoare
Acest ataca (noi îl vom numi așa, chiar dacă niciun cod capcană nu a fost publicat de hackerul în cauză) a folosit ceea ce ați putea numi o abordare hibridă.
Atacatorul a găsit patru conturi Packagist vechi și inactive pentru care au obținut cumva parolele de conectare.
Apoi au identificat 14 proiecte GitHub la care au fost legate de aceste conturi inactive și le-au copiat un cont GitHub nou creat.
În cele din urmă, au modificat pachetele din sistemul Packagist pentru a indica noile depozite GitHub.
Clonarea proiectelor GitHub este incredibil de comună. Uneori, dezvoltatorii doresc să creeze o furcă autentică (versiune alternativă) a proiectului sub o nouă gestionare sau oferind diferite caracteristici; alteori, proiectele bifurcate par a fi copiate din ceea ce s-ar putea numi în mod nemăgulitor „motive volumetrice”, făcând conturile GitHub să pară mai mari, mai bune, mai ocupate și mai dedicate comunității (dacă scuzați jocul de cuvinte) decât sunt în realitate.
Deși hackerul ar fi putut insera cod necinstiți în sursa PHP GitHub clonată, cum ar fi adăugarea de trackere, keylogger, backdoors sau alte programe malware, se pare că tot ce au schimbat a fost un singur element în fiecare proiect: un fișier numit composer.json
.
Acest fișier include o intrare intitulată description
, care de obicei conține exact ceea ce te-ai aștepta să vezi: un șir de text care descrie pentru ce este codul sursă.
Și asta e tot ce a modificat hackerul nostru, schimbând textul din ceva informativ, cum ar fi Project PPP implements the QQQ protocol so you can RRR
, astfel încât proiectele lor au raportat în schimb:
Pwned de XXX@XXXX.com. Ищу работу на позиции Securitatea aplicațiilor, Tester de penetrare, Specialist în securitate cibernetică.
A doua propoziție, scrisă jumătate în rusă, jumătate în engleză, înseamnă:
Caut un loc de munca in Application Security... etc.
Nu putem vorbi în numele tuturor, dar după cum arată CV-urile (cv-urile), acesta nu ni s-a părut teribil de convingător.
De asemenea, Echipa Packagist spune că toate modificările neautorizate au fost acum anulate și că cele 14 proiecte GitHub clonate nu au fost modificate în niciun alt mod decât pentru a include solicitarea de angajare a proprietarului.
Pentru cât valorează, contul GitHub al viitorului expert în securitatea aplicațiilor este încă activ și încă mai are acele proiecte „furcate” în el.
Nu știm dacă GitHub nu a ajuns încă la ștergerea contului sau a proiectelor sau dacă site-ul a decis să nu le elimine.
La urma urmei, bifurcarea proiectelor este obișnuită și permisă (unde termenii de licențiere permit, cel puțin), și, deși descrie un proiect de cod non-raucios cu textul Pwned by XXXX@XXXX.com
nu este de ajutor, nu este ilegal.
Ce să fac?
- Nu face asta. Cu siguranță nu veți atrage interesul niciunui angajator legitim și (dacă suntem sinceri) nici măcar nu veți impresiona niciun escroc cibernetic.
- Nu lăsați conturile neutilizate active dacă puteți ajuta. După cum am spus ieri Ziua Mondială a Parolelor, luați în considerare închiderea conturilor de care nu mai aveți nevoie, pe motiv că cu cât aveți mai puține parole utilizate, cu atât mai puține sunt de furat.
- Nu reutilizați parolele pentru mai multe conturi. Presupunerea lui Packagist este că parolele abuzate în acest caz se aflau în înregistrările privind încălcarea datelor din alte conturi în care victimele au folosit aceeași parolă ca și în contul lor Packagist.
- Nu uitați de 2FA. Packagists îndeamnă toți utilizatorii săi să activeze 2FA, așa că o parolă nu este suficientă pentru ca un atacator să se conecteze la contul tău și recomandă să faci același lucru și pe contul tău GitHub.
- Nu accepta orbește actualizările lanțului de aprovizionare fără a le revizui pentru corectitudine. Dacă aveți o rețea complicată de dependențe de pachete, este tentant să vă aruncați responsabilitățile deoparte și să lăsați sistemul să vă preia automat toate actualizările, dar asta vă expune un risc suplimentar pe dvs. și pe utilizatorii din aval.
IATA ACEL SFAT DE LA ZIUA MONDIALE PAROLEI
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoAiStream. Web3 Data Intelligence. Cunoștințe amplificate. Accesați Aici.
- Mintând viitorul cu Adryenn Ashley. Accesați Aici.
- Cumpărați și vindeți acțiuni în companii PRE-IPO cu PREIPO®. Accesați Aici.
- Sursa: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 14
- 15%
- 2FA
- a
- Despre Noi
- Absolut
- Accept
- Cont
- Conturi
- dobândite
- activ
- adăugare
- Suplimentar
- sfat
- TOATE
- permite
- singur
- alternativă
- Cu toate ca
- an
- și
- Orice
- aplicație
- securitatea aplicațiilor
- abordare
- SUNT
- în jurul
- AS
- presupunere
- At
- autor
- Auto
- în mod automat
- evita
- Backdoors
- imagine de fundal
- BE
- fost
- înainte
- Mai bine
- între
- mai mare
- BleepingComputer
- orbeşte
- frontieră
- De jos
- încălcarea
- dar
- by
- apel
- denumit
- CAN
- caz
- Centru
- lanţ
- si-a schimbat hainele;
- Modificări
- schimbarea
- închidere
- cod
- culoare
- COM
- comise
- Comun
- comunitate
- complicat
- îngrijorat
- Lua în considerare
- luate în considerare
- conține
- conţinut
- contribuitori
- Control
- copii
- ar putea
- acoperi
- crea
- a creat
- CVS
- Cyber
- securitate cibernetică
- de date
- încălcării securității datelor
- Data
- hotărât
- categoric
- detalii
- Dezvoltatorii
- diferit
- Afişa
- do
- Nu
- face
- Dont
- jos
- Descarca
- dezavantaj
- fiecare
- uşor
- oricare
- patronat
- ocuparea forţei de muncă
- capăt
- Engleză
- suficient de
- intrare
- etc
- Chiar
- toată lumea
- exact
- aștepta
- fani
- DESCRIERE
- membru
- mai puține
- Fișier
- Găsi
- a urmat
- Pentru
- furculiţă
- Bifurcare
- găsit
- patru
- din
- veritabil
- obține
- GitHub
- Go
- merge
- tocat
- hacker
- HAD
- Jumătate
- Avea
- înălțime
- ajutor
- ajută
- deţine
- planare
- HTTPS
- Hibrid
- i
- identificat
- if
- Ilegal
- ustensile
- in
- inactiv
- include
- include
- incredibil
- inevitabil
- informativ
- in schimb
- interes
- în
- IT
- ESTE
- în sine
- JavaScript
- Loc de munca
- doar
- A pastra
- Cunoaște
- cel mai puțin
- Părăsi
- stânga
- legitim
- Bibliotecă
- de licențiere
- ca
- legate de
- Link-uri
- trăi
- log
- Logare
- Uite
- uitat
- cautati
- menține
- FACE
- Efectuarea
- malware
- gestionate
- administrare
- manager
- Margine
- max-width
- mijloace
- ar putea
- modificată
- mai mult
- Nevoie
- Nou
- Nu.
- normală.
- în special
- acum
- of
- oferind
- oficial
- Vechi
- on
- ONE
- or
- Altele
- al nostru
- afară
- propriu
- pachet
- ofertele
- ambalaje
- Parolă
- Parolele
- Paul
- pătrundere
- PHP
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- poziţie
- postări
- PPP
- Problemă
- Programatorii
- proiect
- Proiecte
- protocol
- furnizează
- publica
- publicat
- puts
- într-adevăr
- recomandă
- înregistrări
- Lansări
- scoate
- Raportat
- depozit
- responsabilităţi
- revizuirea
- Risc
- rotund
- Rusă
- Said
- acelaşi
- Al doilea
- securitate
- vedea
- părea
- pare
- propoziție
- Servicii
- singur
- teren
- So
- solicitare
- solid
- ceva
- Sursă
- cod sursă
- vorbi
- specialist
- Încă
- furate
- stocate
- magazine
- Şir
- astfel de
- livra
- lanțului de aprovizionare
- SVG
- sistem
- echipă
- termeni
- decât
- acea
- Proiectele
- Sursa
- lor
- Lor
- apoi
- Acolo.
- Acestea
- ei
- acest
- aceste
- deşi?
- ori
- la
- de asemenea
- top
- arunca
- trackere
- tranziţie
- transparent
- ÎNTORCĂ
- Două
- în
- nefolosit
- actualizări
- întoarsă pe dos
- îndeamnã
- URL-ul
- utilizare
- utilizat
- utilizatorii
- obișnuit
- versiune
- de
- victime
- vrea
- a fost
- Cale..
- modalități de
- we
- web
- bine cunoscut
- au fost
- Ce
- dacă
- care
- OMS
- voi
- cu
- fără
- lume
- valoare
- ar
- scris
- încă
- tu
- Ta
- zephyrnet