Добавить в корзинуПозвонить
Найти в Дзене
Миша Ларченко

Взломы через зависимости – это чума современной разработки

Вот только сегодня взломали десятки библиотек через pull_request_target. Ниже приведен разбор основных подходов к управлению рисками в цепочке поставок (supply-chain). --- 1. Минимизация количества зависимостей Суть: Чем меньше стороннего кода, тем меньше «дыр» в защите. * Плюсы: Прямое сокращение поверхности атаки. * Минусы: Легче сказать, чем сделать. Даже один небольшой пакет может притянуть за собой «дерево» из сотен транзитивных зависимостей. В итоге вы либо тратите время на поиск чистых альтернатив, либо в конечном итоге пишете функционал сами. 2. Собственная разработка (In-house) Суть: Писать всё необходимое самостоятельно, принципиально отказываясь от внешних библиотек. * Плюсы: Полная изоляция от внешних атак на цепочку поставок (supply-chain attacks). * Минусы: Классическое «изобретение велосипеда». Это требует колоссальных трудозатрат, а отсутствие внешнего аудита повышает риск того, что вы сами допустите критическую ошибку в коде. 3. Использование собственного реестр

Взломы через зависимости – это чума современной разработки. Вот только сегодня взломали десятки библиотек через pull_request_target.

Ниже приведен разбор основных подходов к управлению рисками в цепочке поставок (supply-chain).

---

1. Минимизация количества зависимостей

Суть: Чем меньше стороннего кода, тем меньше «дыр» в защите.

* Плюсы: Прямое сокращение поверхности атаки.

* Минусы: Легче сказать, чем сделать. Даже один небольшой пакет может притянуть за собой «дерево» из сотен транзитивных зависимостей. В итоге вы либо тратите время на поиск чистых альтернатив, либо в конечном итоге пишете функционал сами.

2. Собственная разработка (In-house)

Суть: Писать всё необходимое самостоятельно, принципиально отказываясь от внешних библиотек.

* Плюсы: Полная изоляция от внешних атак на цепочку поставок (supply-chain attacks).

* Минусы: Классическое «изобретение велосипеда». Это требует колоссальных трудозатрат, а отсутствие внешнего аудита повышает риск того, что вы сами допустите критическую ошибку в коде.

3. Использование собственного реестра (Private Registry)

Суть: Создание контролируемой локальной копии (зеркала) используемых пакетов.

* Рекомендации: Обновляйте зеркало с задержкой (например, раз в неделю), чтобы дать время сообществу выявить вредоносные релизы. Переходите только на те версии, которые уже «отлежались». Проводите security-review перед каждым обновлением.

* Плюсы: Многослойная защита за счет контролируемой задержки и предварительной проверки кода.

* Минусы: Ваши зависимости всегда будут чуть менее актуальными. Для срочных патчей безопасности (hotfixes) придется настраивать отдельный ускоренный процесс, что усложняет поддержку.

4. Фиксация версий: решение или иллюзия?

Фиксация версий часто дает ложное чувство безопасности. Согласно исследованию 2025 года *«Pinning Is Futile»*, этот метод имеет критические недостатки.

* Проблема диапазонов: Использование символов вроде ^ или ~ в конфигах не решает проблему безопасности, так как позволяет подгружать измененный код в рамках минорных версий.

* Ловушка конкретных версий: Многие забывают, что фиксация версии ≠ фиксация артефакта. Если злоумышленник подменит код в реестре под той же версией, фиксация не поможет. Кроме того, «заморозка» версий часто приводит к тому, что проект годами работает на устаревшем коде с публично известными уязвимостями.

5. Вендорские решения

Использование специализированных инструментов (Snyk, GitHub Advanced Security и аналоги).

* Что важно понимать: Нужно четко осознавать, какую часть работы вендор берет на себя. Это автоматические security-аудиты? Мониторинг обновлений в реальном времени? Или песочница для проверки пакетов?

* Нюансы: У таких решений есть цена (подписка) и проблема «свежести» — они могут блокировать полезные обновления до завершения собственных проверок.

---

Резюме: DYOR

Универсальной «серебряной пули» не существует. Главное правило — DYOR (*Do Your Own Research*). Прежде чем выполнить npm install или pip install, изучите, кто поддерживает пакет, как часто он обновляется и насколько глубоко тянется цепочка его собственных зависимостей.

#советы · yt · tg · ig