Как обезопасить зависимости проекта от уязвимостей и атак на цепочку поставки?
Безопасность зависимостей
Supply chain атака — компрометация пакета, которым вы пользуетесь: злоумышленник публикует вредоносную версию или захватывает аккаунт автора.
Что делать
- Коммитить lock-файл и устанавливать зависимости через
npm ci. - Регулярно запускать
npm auditи включить автоматические обновления с проверкой (Dependabot, Renovate). - Не ставить пакеты без нужды: каждый добавляет и свои зависимости.
- Проверять названия: атаки «typosquatting» подсовывают пакет
reqeustвместоrequest. - Отключать выполнение скриптов установки для непроверенных пакетов:
npm ci --ignore-scripts. - Использовать двухфакторную аутентификацию и provenance у собственных пакетов.
- Для скриптов с CDN подключать Subresource Integrity.
<script src="https://cdn.example.com/lib.js"
integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K..."
crossorigin="anonymous"></script>Коротко для собеседования
Фиксируем версии, минимизируем число зависимостей, сканируем уязвимости автоматически и подключаем внешние скрипты с контролем целостности.