Ми писали про PHP Пакувальна екосистема раніше.
Подібно до PyPI для Pythonistas, Gems для шанувальників Ruby, NPM для JavaScript-програмістів або LuaRocks для Luaphiles, Packagist є репозиторієм, де учасники спільноти можуть публікувати деталі пакетів PHP, які вони створили.
Завдяки цьому колеги-розробники PHP можуть легко отримати бібліотечний код, який вони хочуть використовувати у своїх проектах, і автоматично підтримувати цей код в актуальному стані, якщо вони бажають.
На відміну від PyPI, який надає власні сервери, де зберігається фактичний код бібліотеки (або LuaRocks, який іноді сам зберігає вихідний код проекту, а іноді посилається на інші сховища), Packagist посилається на код, але сам не зберігає його копії. потрібно завантажити.
У такому способі є плюси, зокрема те, що проекти, якими керують через відомі служби вихідного коду, такі як GitHub, не потребують підтримки двох копій своїх офіційних випусків, що допомагає уникнути проблеми «переходу версій» між система контролю вихідного коду та система упаковки.
І є недолік, зокрема те, що неминуче існує два різні способи мінування пакетів.
Сам менеджер пакетів може бути зламаний, коли зміни однієї URL-адреси може бути достатньо, щоб неправильно скерувати користувачів пакета.
Або репозиторій вихідного коду, на який посилається, може бути зламаний, тож користувачі, які перейшли за схожою на правильну URL-адресою, все одно отримають недобросовісний вміст.
Старі облікові записи вважаються шкідливими
це атака (ми будемо називати це так, навіть якщо відповідний хакер не опублікував жодного мінованого коду) використав те, що можна назвати гібридним підходом.
Зловмисник знайшов чотири старі та неактивні облікові записи Packagist, для яких вони якимось чином отримали паролі для входу.
Потім вони ідентифікували 14 проектів GitHub, які були пов’язані з цими неактивними обліковими записами, і скопіювали їх у щойно створений обліковий запис GitHub.
Нарешті, вони налаштували пакети в системі Packagist, щоб вказувати на нові репозиторії GitHub.
Клонування проектів GitHub неймовірно поширене. Іноді розробники хочуть створити справжній форк (альтернативну версію) проекту під новим керуванням або пропонувати інші функції; іноді розгалужені проекти, здається, копіюються з причин, які можна невтішно назвати «об’ємними причинами», завдяки чому облікові записи GitHub виглядають більшими, кращими, зайнятішими та більш відданими спільноті (якщо вибачте за каламбур), ніж вони є насправді.
Хоча хакер міг вставити шахрайський код у клонований вихідний код GitHub PHP, як-от додавання трекерів, клавіатурних шпигунів, бекдорів чи іншого шкідливого програмного забезпечення, схоже, що вони змінили лише один елемент у кожному проекті: файл під назвою composer.json
.
Цей файл містить запис під назвою description
, яка зазвичай містить саме те, що ви очікуєте побачити: текстовий рядок, що описує, для чого призначений вихідний код.
І це все модифікував наш хакер, змінивши текст з чогось інформативного, на кшталт Project PPP implements the QQQ protocol so you can RRR
, щоб їхні проекти натомість повідомили:
Придбано XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Specialist Cyber Security.
Друге речення, написане наполовину російською, наполовину англійською, означає:
Шукаю роботу в сфері безпеки додатків... тощо.
Ми не можемо говорити за всіх, але, якщо говорити про резюме (резюме), ми не вважаємо це надто переконливим.
Крім того, Каже команда пакувальників що всі неавторизовані зміни тепер скасовано, і що 14 клонованих проектів GitHub не були змінені жодним іншим способом, крім того, щоб включити прохання власника про працевлаштування.
Якщо це того варте, обліковий запис GitHub потенційного експерта з безпеки додатків все ще активний, і в ньому все ще є ті «роздвоєні» проекти.
Ми не знаємо, чи GitHub ще не прийшов до видалення облікового запису чи проектів, чи сайт вирішив не видаляти їх.
Зрештою, розгалуження проектів є звичайним і допустимим (принаймні там, де це дозволено умовами ліцензування), і хоча опис проекту нешкідливого коду з текстом Pwned by XXXX@XXXX.com
не корисно, це навряд чи є незаконним.
Що ж робити?
- Не робіть цього. Ви точно не збираєтеся привертати інтерес будь-яких законних роботодавців, і (якщо чесно) ви навіть не збираєтеся справити враження на будь-яких кібершахраїв.
- Не залишайте невикористані облікові записи активними, якщо можете допомогти. Як ми сказали вчора на Всесвітній день пароляподумайте про закриття облікових записів, які вам більше не потрібні, на тій підставі, що чим менше паролів ви використовуєте, тим менше їх можна вкрасти.
- Не використовуйте паролі більше ніж для одного облікового запису. Packagist припускає, що паролі, використані в цьому випадку, лежали в записах про порушення даних з інших облікових записів, де жертви використовували той самий пароль, що й у своєму обліковому записі Packagist.
- Не забудьте свій 2FA. Packagists закликає всіх своїх користувачів увімкнути 2FA, тому зловмиснику недостатньо одного пароля, щоб увійти у ваш обліковий запис, і рекомендує зробити те саме для вашого облікового запису GitHub.
- Не приймайте сліпо оновлення ланцюга постачання, не перевіривши їх на правильність. Якщо у вас є складна мережа залежностей пакетів, виникає спокуса відкинути свої обов’язки вбік і дозволити системі автоматично отримувати всі ваші оновлення, але це лише піддає вас і ваших подальших користувачів додатковому ризику.
ОСЬ ПОРАДА ВІД ВСЕСВІТНЬОГО ДНЯ ПАРОЛЯ
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою PREIPO®. Доступ тут.
- джерело: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 14
- 15%
- 2FA
- a
- МЕНЮ
- абсолют
- Прийняти
- рахунки
- Рахунки
- придбаний
- активний
- додати
- Додатковий
- рада
- ВСІ
- дозволяти
- тільки
- альтернатива
- хоча
- an
- та
- будь-який
- додаток
- захист додатків
- підхід
- ЕСТЬ
- навколо
- AS
- припущення
- At
- автор
- автоматичний
- автоматично
- уникнути
- бекдори
- фонове зображення
- BE
- було
- перед тим
- Краще
- між
- більший
- BleepingComputer
- сліпо
- border
- дно
- порушення
- але
- by
- call
- званий
- CAN
- випадок
- Центр
- ланцюг
- змінилися
- Зміни
- заміна
- закриття
- код
- color
- COM
- вчинено
- загальний
- співтовариство
- складний
- стурбований
- Вважати
- вважається
- містить
- зміст
- Автори
- контроль
- copies
- може
- обкладинка
- створювати
- створений
- CVS
- кібер-
- кібер-безпеки
- дані
- Дані порушення
- Дата
- вирішене
- безумовно
- деталі
- розробників
- різний
- дисплей
- do
- Ні
- справи
- Не знаю
- вниз
- скачати
- зворотний бік
- кожен
- легко
- або
- роботодавців
- зайнятість
- кінець
- англійська
- досить
- запис
- і т.д.
- Навіть
- все
- точно
- очікувати
- вентилятори
- риси
- fellow
- менше
- філе
- знайти
- потім
- для
- вилка
- Розгалуження
- знайдений
- чотири
- від
- справжній
- отримати
- GitHub
- Go
- буде
- зламаний
- хакер
- було
- Половина
- Мати
- висота
- допомога
- допомагає
- тримати
- hover
- HTTPS
- гібрид
- i
- ідентифікований
- if
- незаконний
- implements
- in
- неактивний
- включати
- includes
- неймовірно
- неминуче
- інформативний
- замість
- інтерес
- в
- IT
- ЙОГО
- сам
- JavaScript
- робота
- просто
- тримати
- Знати
- найменш
- Залишати
- залишити
- законний
- бібліотека
- ліцензування
- як
- пов'язаний
- зв'язку
- жити
- журнал
- Логін
- подивитися
- подивився
- шукати
- підтримувати
- РОБОТИ
- Робить
- шкідливих програм
- вдалося
- управління
- менеджер
- Маржа
- макс-ширина
- засоби
- може бути
- модифікований
- більше
- Необхідність
- Нові
- немає
- нормальний
- особливо
- зараз
- of
- пропонує
- офіційний
- Старий
- on
- ONE
- or
- Інше
- наші
- з
- власний
- пакет
- пакети
- упаковка
- Пароль
- Паролі
- Пол
- проникнення
- PHP
- plato
- Інформація про дані Платона
- PlatoData
- точка
- положення
- Пости
- PPP
- Проблема
- Програмісти
- проект
- проектів
- протокол
- забезпечує
- публікувати
- опублікований
- Ставить
- насправді
- рекомендує
- облік
- Релізи
- видаляти
- Повідомляється
- Сховище
- обов'язки
- рецензування
- Risk
- круглий
- російський
- Зазначений
- то ж
- другий
- безпеку
- побачити
- здається
- Здається,
- пропозиція
- Послуги
- один
- сайт
- So
- клопотання
- solid
- що в сім'ї щось
- Source
- вихідні
- говорити
- спеціаліст
- Як і раніше
- вкрали
- зберігати
- магазинів
- рядок
- такі
- поставка
- ланцюжка поставок
- SVG
- система
- команда
- terms
- ніж
- Що
- Команда
- Проекти
- Джерело
- їх
- Їх
- потім
- Там.
- Ці
- вони
- це
- ті
- хоча?
- times
- до
- занадто
- топ
- кидати
- трекери
- перехід
- прозорий
- ПЕРЕГЛЯД
- два
- при
- невикористаний
- Updates
- потенціал зростання
- позиви
- URL
- використання
- використовуваний
- користувачі
- зазвичай
- версія
- через
- жертви
- хотіти
- було
- шлях..
- способи
- we
- Web
- добре відомі
- були
- Що
- Чи
- який
- ВООЗ
- волі
- з
- без
- світ
- вартість
- б
- письмовий
- ще
- ви
- вашу
- зефірнет