Pisaliśmy o PHP Ekosystem Packagist wcześniej.
Podobnie jak PyPI dla Pythonistów, Gems dla fanów Ruby, NPM dla programistów JavaScript lub LuaRocks dla Luaphiles, Packagist jest repozytorium, w którym współtwórcy społeczności mogą publikować szczegóły utworzonych przez siebie pakietów PHP.
Ułatwia to innym programistom PHP uzyskanie kodu biblioteki, którego chcą użyć we własnych projektach, oraz automatyczne aktualizowanie tego kodu, jeśli sobie tego życzą.
W przeciwieństwie do PyPI, który zapewnia własne serwery, na których przechowywany jest rzeczywisty kod biblioteki (lub LuaRocks, który czasami przechowuje sam kod źródłowy projektu, a czasami linki do innych repozytoriów), Packagist łączy się z kodem, który trzeba pobrać.
Jest zaleta robienia tego w ten sposób, zwłaszcza że projekty zarządzane za pośrednictwem dobrze znanych usług kodu źródłowego, takich jak GitHub, nie muszą utrzymywać dwóch kopii swoich oficjalnych wydań, co pomaga uniknąć problemu „dryfowania wersji” między system kontroli kodu źródłowego i system pakowania.
I jest minus, zwłaszcza że nieuchronnie istnieją dwa różne sposoby, w jakie paczki mogą być pułapkami.
Sam menedżer pakietów może zostać zhakowany, a zmiana pojedynczego adresu URL może wystarczyć do błędnego przekierowania użytkowników pakietu.
Lub repozytorium kodu źródłowego, do którego prowadzi link, może zostać zhakowane, więc użytkownicy, którzy kliknęli coś, co wyglądało na właściwy adres URL, i tak skończyliby z nieuczciwą treścią.
Stare konta uważane za szkodliwe
To zdjęcie atakować (nazwijmy to tak, mimo że haker nie opublikował żadnego kodu-pułapki) zastosował coś, co można nazwać podejściem hybrydowym.
Atakujący znalazł cztery stare i nieaktywne konta Packagist, do których w jakiś sposób zdobył hasła logowania.
Następnie zidentyfikowali 14 projektów GitHub, z którymi łączyły się te nieaktywne konta, i skopiowali je do nowo utworzonego konta GitHub.
Wreszcie poprawili pakiety w systemie Packagist, aby wskazywały na nowe repozytoria GitHub.
Klonowanie projektów GitHub jest niezwykle powszechne. Czasami programiści chcą stworzyć prawdziwy rozwidlenie (wersję alternatywną) projektu pod nowym kierownictwem lub oferujący inne funkcje; innym razem rozwidlone projekty wydają się być kopiowane z czegoś, co można niepochlebnie nazwać „powodami wolumetrycznymi”, przez co konta GitHub wyglądają na większe, lepsze, bardziej zajęte i bardziej zaangażowane w społeczność (jeśli wybaczycie grę słów), niż są w rzeczywistości.
Chociaż haker mógł wstawić nieuczciwy kod do sklonowanego źródła PHP GitHub, na przykład dodać moduły śledzące, keyloggery, backdoory lub inne złośliwe oprogramowanie, wydaje się, że zmienił tylko jeden element w każdym projekcie: plik o nazwie composer.json
.
W aktach tych znajduje się wpis pt description
, który zwykle zawiera dokładnie to, czego można się spodziewać: ciąg tekstowy opisujący, do czego służy kod źródłowy.
I to wszystko, co zmodyfikował nasz haker, zmieniając tekst z czegoś informacyjnego, na przykład Project PPP implements the QQQ protocol so you can RRR
, aby zamiast tego ich projekty zgłaszały:
Wysłane przez XXX@XXXX.com. Zajmuje się bezpieczeństwem aplikacji, testerem penetracji, specjalistą ds. bezpieczeństwa cybernetycznego.
Drugie zdanie, napisane w połowie po rosyjsku, w połowie po angielsku, oznacza:
Szukam pracy w ochronie aplikacji... itp.
Nie możemy mówić za wszystkich, ale jeśli chodzi o CV (życiorysy), to nie uznaliśmy tego za szczególnie przekonujące.
Również mówi zespół Packagist że wszystkie nieautoryzowane zmiany zostały cofnięte, a 14 sklonowanych projektów GitHub nie zostało zmodyfikowanych w żaden inny sposób niż w celu uwzględnienia prośby o zatrudnienie pwnera.
Konto GitHub niedoszłego eksperta ds. bezpieczeństwa aplikacji wciąż jest aktywne i nadal zawiera „rozwidlone” projekty.
Nie wiemy, czy GitHub nie zabrał się jeszcze za wymazanie konta lub projektów, czy też strona zdecydowała się ich nie usuwać.
W końcu rozwidlanie projektów jest powszechne i dopuszczalne (przynajmniej tam, gdzie pozwalają na to warunki licencji), i chociaż opisywanie projektu kodu, który nie jest złośliwy, tekstem Pwned by XXXX@XXXX.com
jest nieprzydatny, raczej nie jest nielegalny.
Co robić?
- Nie rób tego. Zdecydowanie nie przyciągniesz zainteresowania żadnych legalnych pracodawców i (jeśli mamy być szczerzy) nawet nie zaimponujesz żadnym cyberprzestępcom.
- Nie pozostawiaj aktywnych nieużywanych kont, jeśli możesz temu zaradzić. Jak pisaliśmy wczoraj w dn Światowy dzień hasła, rozważ zamknięcie kont, których już nie potrzebujesz, ponieważ im mniej używanych haseł, tym mniej można ich ukraść.
- Nie używaj ponownie haseł na więcej niż jednym koncie. Packagist zakłada, że hasła nadużywane w tym przypadku leżały w rejestrach naruszeń danych z innych kont, na których ofiary używały tego samego hasła, co na swoim koncie Packagist.
- Nie zapomnij o 2FA. Packagists zachęca wszystkich swoich użytkowników do włączenia 2FA, więc samo hasło nie wystarczy, aby atakujący zalogował się na twoje konto, i zaleca zrobienie tego samego na koncie GitHub.
- Nie akceptuj ślepo aktualizacji łańcucha dostaw bez sprawdzenia ich poprawności. Jeśli masz skomplikowaną sieć zależności pakietów, kuszące jest odrzucenie obowiązków i pozwolenie systemowi na automatyczne pobieranie wszystkich aktualizacji, ale to tylko naraża Ciebie i Twoich dalszych użytkowników na dodatkowe ryzyko.
OTO RADA ZE ŚWIATOWEGO DNIA HASŁA
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoAiStream. Analiza danych Web3. Wiedza wzmocniona. Dostęp tutaj.
- Wybijanie przyszłości w Adryenn Ashley. Dostęp tutaj.
- Kupuj i sprzedawaj akcje spółek PRE-IPO z PREIPO®. Dostęp tutaj.
- Źródło: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 14
- 15%
- 2FA
- a
- O nas
- bezwzględny
- Akceptuj
- Konto
- Konta
- nabyty
- aktywny
- dodanie
- Dodatkowy
- Rada
- Wszystkie kategorie
- dopuszczać
- sam
- alternatywny
- Chociaż
- an
- i
- każdy
- Zastosowanie
- bezpieczeństwo aplikacji
- podejście
- SĄ
- na około
- AS
- założenie
- At
- autor
- samochód
- automatycznie
- uniknąć
- Backdoory
- background-image
- BE
- być
- zanim
- Ulepsz Swój
- pomiędzy
- większe
- BleepingComputer
- na oślep
- granica
- Dolny
- naruszenie
- ale
- by
- wezwanie
- nazywa
- CAN
- walizka
- Centrum
- łańcuch
- zmieniony
- Zmiany
- wymiana pieniędzy
- zamknięcie
- kod
- kolor
- COM
- zobowiązany
- wspólny
- społeczność
- skomplikowane
- zaniepokojony
- Rozważać
- za
- zawiera
- zawartość
- Dostawcy
- kontrola
- kopie
- mógłby
- pokrywa
- Stwórz
- stworzony
- CVS
- cyber
- bezpieczeństwo cybernetyczne
- dane
- naruszenie danych
- Data
- postanowiła
- Zdecydowanie
- detale
- deweloperzy
- różne
- Wyświetlacz
- do
- Nie
- robi
- nie
- na dół
- pobieranie
- minusem
- każdy
- łatwo
- bądź
- pracodawcy
- zatrudnienie
- zakończenia
- Angielski
- dość
- wejście
- itp
- Parzyste
- wszyscy
- dokładnie
- oczekiwać
- Fani
- Korzyści
- facet
- mniej
- filet
- Znajdź
- następnie
- W razie zamówieenia projektu
- widelec
- Rozwidlenie
- znaleziono
- cztery
- od
- prawdziwy
- otrzymać
- GitHub
- Go
- będzie
- hacked
- haker
- miał
- Pół
- Have
- wysokość
- pomoc
- pomaga
- przytrzymaj
- unosić
- HTTPS
- Hybrydowy
- i
- zidentyfikowane
- if
- Nielegalny
- narzędzia
- in
- nieaktywny
- zawierać
- obejmuje
- niewiarygodnie
- nieuchronnie
- informacyjny
- zamiast
- odsetki
- najnowszych
- IT
- JEGO
- samo
- JAVASCRIPT
- Praca
- właśnie
- Trzymać
- Wiedzieć
- najmniej
- Pozostawiać
- lewo
- prawowity
- Biblioteka
- Koncesjonowanie
- lubić
- powiązany
- linki
- relacja na żywo
- log
- Zaloguj Się
- Popatrz
- wyglądał
- poszukuje
- utrzymać
- WYKONUJE
- Dokonywanie
- malware
- zarządzane
- i konserwacjami
- kierownik
- Margines
- Maksymalna szerokość
- znaczy
- może
- zmodyfikowano
- jeszcze
- Potrzebować
- Nowości
- Nie
- normalna
- szczególnie
- już dziś
- of
- oferuje
- urzędnik
- Stary
- on
- ONE
- or
- Inne
- ludzkiej,
- na zewnątrz
- własny
- pakiet
- Pakiety
- opakowania
- Hasło
- hasła
- Paweł
- penetracja
- PHP
- plato
- Analiza danych Platona
- PlatoDane
- punkt
- position
- Wiadomości
- PPP
- Problem
- Programiści
- projekt
- projektowanie
- protokół
- zapewnia
- publikować
- opublikowany
- Stawia
- naprawdę
- zaleca
- dokumentacja
- prasowe
- usunąć
- Zgłoszone
- składnica
- obowiązki
- recenzowanie
- Ryzyko
- okrągły
- Rosyjski
- Powiedział
- taki sam
- druga
- bezpieczeństwo
- widzieć
- wydać się
- wydaje
- wyrok
- Usługi
- pojedynczy
- witryna internetowa
- So
- napraszanie się
- solidny
- coś
- Źródło
- Kod źródłowy
- mówić
- specjalista
- Nadal
- skradziony
- przechowywany
- sklep
- sznur
- taki
- Dostawa
- łańcuch dostaw
- SVG
- system
- zespół
- REGULAMIN
- niż
- że
- Połączenia
- Projekty
- Źródło
- ich
- Im
- następnie
- Tam.
- Te
- one
- to
- tych
- chociaż?
- czasy
- do
- także
- Top
- podrzucać
- trackery
- przejście
- przezroczysty
- SKRĘCAĆ
- drugiej
- dla
- nieużywana
- Nowości
- Upside
- Apeluje
- URL
- posługiwać się
- używany
- Użytkownicy
- zazwyczaj
- wersja
- przez
- Ofiary
- chcieć
- była
- Droga..
- sposoby
- we
- sieć
- znane
- były
- Co
- czy
- który
- KIM
- będzie
- w
- bez
- świat
- wartość
- by
- napisany
- jeszcze
- ty
- Twój
- zefirnet