Баг NPM позволял обелить репутацию вредоносных JavaScript-пакетов

Баг NPM позволял обелить репутацию вредоносных JavaScript-пакетов

Баг NPM позволял обелить репутацию вредоносных JavaScript-пакетов

Специалисты Aqua Security выявили в менеджере пакетов NPM логическую ошибку, из-за которой можно было выдать вредоноса за софт, созданный уважаемым разработчиком. Подобный подлог способен нарушить атмосферу доверия на npmjs.com и открывает возможность для атаки на цепочку поставок.

Исследователи подали отчет о находке в рамках программы GitHub bug bounty в начале февраля. Как оказалось, проблема уже взята на заметку, и над ней работают. В итоге решение было найдено, и вчера, 26 апреля, операторы веб-сервиса отрапортовали, что дефект устранен.

Согласно Aqua, суть проблемы заключалась в следующем. Любой пользователь платформы мог создать и опубликовать вредоносный JavaScript-пакет, добавить пару лиц, ответственных за сопровождение, из числа популярных и доверенных юзеров, а затем удалить себя из этого списка.

Такой трюк можно было совершить без согласия и ведома новых мейнтейнеров. Если вредоносный opensource-компонент кто-нибудь загрузит, им придется отвечать за такой сюрприз, и доброе имя будет потеряно.

По словам авторов находки, проблему мог бы решить адекватный механизм подтверждения приглашений — такой, каким пользуются организации при добавлении пользователей NPM или создатели совместных проектов на GitHub. Именно так и поступили операторы npmjs.com — попросту добавили функцию подтверждения для всех новых сопроводителей пакетов.

Фильтры AdBlock выдают страну даже при включённом VPN

Исследователи описали новую технику деанонимизации под названием Adbleed, которая ставит под сомнение привычное ощущение безопасности у пользователей VPN. Проблема кроется в блокировщиках рекламы. Такие расширения, как uBlock Origin, Brave или AdBlock Plus, работают на основе списков фильтров.

Есть базовый список EasyList с десятками тысяч правил для международной рекламы, а есть региональные — для Германии, Франции, России, Бразилии, Японии и других стран.

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

 

Adbleed использует довольно изящную идею: он измеряет время, за которое браузер обрабатывает запрос к определённому домену. Если домен заблокирован фильтром, запрос обрывается почти мгновенно — за считаные миллисекунды.

 

Если не заблокирован, браузер пытается установить сетевое соединение, и даже при ошибке это занимает в разы больше времени. Небольшой JavaScript-скрипт может проверить несколько десятков доменов, характерных для конкретного регионального списка, и по скорости отклика понять, активирован он или нет. Всё это происходит на стороне клиента без cookies, без всплывающих разрешений и без каких-то сложных эксплойтов.

В итоге атакующий может выяснить, какие национальные фильтры включены в вашем браузере. А это почти всегда коррелирует со страной проживания или хотя бы с родным языком пользователя.

Если добавить к этому часовой пояс, параметры экрана и другие элементы цифрового отпечатка, анонимность заметно сужается, даже если вы сидите через VPN или прокси.

Самое неприятное в этой истории то, что VPN тут ни при чём: он меняет сетевую «точку выхода», но не конфигурацию браузера. Ваши фильтры остаются прежними, где бы ни находился сервер.

Пользователю остаётся не самый приятный выбор: отключать региональные списки и мириться с дополнительной рекламой, пытаться «зашумить» профиль случайными фильтрами или принимать риск как есть.

RSS: Новости на портале Anti-Malware.ru