Как защититься от Dependency Confusion в PHP

На прошлой неделе была нашумевшая статья «Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies», в которой автор рассказал, как использовал npm (Javascript), pip (Python) и gem (Ruby), чтобы заставить компании установить и запустить в своей инфраструктуре зловредный код.

Проблема сводится к тому, что компании ссылаются на внутренние пакеты по имени, например my-internal-package, а злоумышленник публикует в центральном реестре/репозитории пакетов языка (для PHP это packagist.org) пакет с таким же названием my-internal-package, имеющий более высокую версию.

После этого компании устанавливали и выполняли эти зловредные пакеты вместо своих внутренних пакетов, потому что их диспетчер пакетов выбирал версию с более высоким номером из стандартного репозитория пакетов вместо внутреннего репозитория.

Авторы Composer, Джорди и Нильс, написали о том, как защититься от подобного.

Также есть утилитка Confused, которая проверяет безопасны ли имена внутренних пакетов или любой желающий может зарегистрировать их.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены символом *.

Наш Telegram

Всегда только всё самое новое про WordPress от WordPress Digest и никакого спама