Мы писали о 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. Ищу работу на позицию Безопасность приложений, тестер проникновения, специалист по кибербезопасности.
Второе предложение, написанное наполовину по-русски, наполовину по-английски, означает:
Я ищу работу в области безопасности приложений... и т.д.
Мы не можем говорить за всех, но что касается резюме (резюме), мы не нашли его ужасно убедительным.
Так же Команда упаковщиков говорит что все несанкционированные изменения теперь отменены, и что 14 клонированных проектов GitHub не были изменены никаким другим образом, кроме включения приглашения от pwner на работу.
Что бы это ни стоило, учетная запись GitHub потенциального эксперта по безопасности приложений все еще жива, и в ней все еще есть эти «разветвленные» проекты.
Мы не знаем, успел ли GitHub удалить учетную запись или проекты, или сайт решил не удалять их.
Ведь разветвление проектов является обычным и допустимым (по крайней мере, там, где позволяют условия лицензии), и хотя описание проекта с невредоносным кодом текстом Pwned by XXXX@XXXX.com
бесполезно, вряд ли это незаконно.
Что делать?
- Не делай этого. Вы определенно не собираетесь привлекать внимание каких-либо законных работодателей, и (если быть честными) вы даже не собираетесь впечатлять каких-либо кибер-мошенников.
- Не оставляйте неиспользуемые учетные записи активными, если можете. Как мы сказали вчера на Всемирный день паролей, рассмотрите возможность закрытия учетных записей, которые вам больше не нужны, на том основании, что чем меньше паролей вы используете, тем меньше их можно украсть.
- Не используйте повторно пароли для более чем одной учетной записи. Packagist предполагает, что пароли, которыми злоупотребляли в этом случае, лежали в записях об утечке данных из других учетных записей, где жертвы использовали тот же пароль, что и в своей учетной записи Packagist.
- Не забывайте о двухфакторной аутентификации. Packagists призывает всех своих пользователей включить 2FA, поэтому одного пароля злоумышленнику недостаточно для входа в вашу учетную запись, и рекомендует сделать то же самое и в вашей учетной записи GitHub.
- Не принимайте слепо обновления цепочки поставок, не проверив их правильность. Если у вас есть сложная сеть зависимостей пакетов, заманчиво отбросить свои обязанности и позволить системе автоматически получать все ваши обновления, но это только подвергает вас и ваших последующих пользователей дополнительному риску.
ВОТ СОВЕТЫ ОТ ВСЕМИРНОГО ДНЯ ПАРОЛЯ
- SEO-контент и PR-распределение. Получите усиление сегодня.
- ПлатонАйСтрим. Анализ данных Web3. Расширение знаний. Доступ здесь.
- Чеканка будущего с Эдриенн Эшли. Доступ здесь.
- Покупайте и продавайте акции компаний PREIPO® с помощью 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
- О нас
- Absolute
- Принять
- Учетная запись
- Учетные записи
- приобретенный
- активный
- добавить
- дополнительный
- совет
- Все
- позволять
- в одиночестве
- альтернатива
- Несмотря на то, что
- an
- и
- любой
- Применение
- безопасность приложения
- подхода
- МЫ
- около
- AS
- предположение
- At
- автор
- автоматический
- автоматически
- избежать
- Черные ходы
- Фоновое изображение
- BE
- было
- до
- Лучшая
- между
- больший
- BleepingComputer
- слепо
- граница
- Дно
- нарушение
- но
- by
- призывают
- под названием
- CAN
- случаев
- Центр
- цепь
- менялась
- изменения
- изменения
- закрытие
- код
- цвет
- COM
- привержен
- Общий
- сообщество
- сложный
- обеспокоенный
- Рассматривать
- считается
- содержит
- содержание
- вкладчики
- контроль
- копии
- может
- чехол для варгана
- Создайте
- создали
- CVS
- кибер-
- информационная безопасность
- данным
- Данные нарушения
- Время
- решенный
- определенно
- подробнее
- застройщиков
- различный
- Дисплей
- do
- не
- дело
- Dont
- вниз
- скачать
- нижняя сторона
- каждый
- легко
- или
- работодателей
- занятость
- конец
- Английский
- достаточно
- запись
- и т.д
- Даже
- все члены
- точно,
- ожидать
- вентиляторы
- Особенности
- человек
- меньше
- Файл
- Найдите
- следует
- Что касается
- вилка
- Разветвление
- найденный
- 4
- от
- подлинный
- получить
- GitHub
- Go
- будет
- взломанa
- хакер
- было
- Половина
- Есть
- высота
- помощь
- помогает
- держать
- зависать
- HTTPS
- Гибридный
- i
- идентифицированный
- if
- нелегальный
- инвентарь
- in
- неактивный
- включают
- включает в себя
- невероятно
- неизбежно
- информативный
- вместо
- интерес
- в
- IT
- ЕГО
- саму трезвость
- JavaScript
- работа
- всего
- Сохранить
- Знать
- наименее
- Оставлять
- оставил
- законный
- Библиотека
- Лицензирование
- такое как
- связанный
- связи
- жить
- журнал
- Войти
- посмотреть
- смотрел
- искать
- поддерживать
- ДЕЛАЕТ
- Создание
- вредоносных программ
- управляемого
- управление
- менеджер
- Маржа
- макс-ширина
- означает
- может быть
- модифицировало
- БОЛЕЕ
- Необходимость
- Новые
- нет
- "обычные"
- особенно
- сейчас
- of
- предлагающий
- Официальный представитель в Грузии
- Старый
- on
- ONE
- or
- Другие контрактные услуги
- наши
- внешний
- собственный
- пакет
- пакеты
- коробок
- Пароль
- пароли
- Пол
- проникновение
- PHP
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- должность
- Блог
- PPP
- Проблема
- Программисты
- Проект
- проектов
- протокол
- приводит
- публиковать
- опубликованный
- Оферты
- на самом деле
- рекомендует
- учет
- публикации
- удаление
- Сообщается
- хранилище
- ответственности
- обзор
- Снижение
- год
- русский
- Сказал
- то же
- Во-вторых
- безопасность
- посмотреть
- казаться
- кажется
- предложение
- Услуги
- одинарной
- сайте
- So
- домогательство
- твердый
- удалось
- Источник
- исходный код
- говорить
- специалист
- По-прежнему
- украли
- хранить
- магазины
- строка
- такие
- поставка
- цепочками поставок
- SVG
- система
- команда
- terms
- чем
- который
- Ассоциация
- Проекты
- Источник
- их
- Их
- тогда
- Там.
- Эти
- они
- этой
- те
- хоть?
- раз
- в
- слишком
- топ
- жеребьевка
- трекеры
- переход
- прозрачный
- ОЧЕРЕДЬ
- два
- под
- неиспользованный
- Updates
- Потенциал роста
- призывы
- URL
- использование
- используемый
- пользователей
- обычно
- версия
- с помощью
- жертвы
- хотеть
- законопроект
- Путь..
- способы
- we
- Web
- известный
- были
- Что
- будь то
- который
- КТО
- будете
- без
- Мир
- стоимость
- бы
- письменный
- еще
- являетесь
- ВАШЕ
- зефирнет