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

Рейтинг: 4.9 из 32 оценок

На прошлой неделе была нашумевшая статья «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, которая проверяет безопасны ли имена внутренних пакетов или любой желающий может зарегистрировать их.

Читайте далее

Добавить комментарий