Lock-файлы Bun и безопасность вашей цепочки поставок
Бинарные lock-файлы — это налог на безопасность, который вы оплатите позже, причем с процентами.
Раньше Bun хранил зависимости в бинарном файле под названием bun.lockb. Он был быстрым и компактным, но его нельзя было прочитать. Вы не могли сделать diff в pull request и не видели, что именно изменилось.
Когда вы не можете проверить изменение зависимости, у вас нет политики — только интуиция.
Bun v1.2 меняет формат по умолчанию на текстовый bun.lock. Одно это уже является огромным преимуществом для безопасности.
Почему текстовые lock-файлы важны
- Понятные diff'ы — рецензенты точно видят, какие пакеты переместились или изменились.
- Простота проверки политик — CI может сканировать файлы на наличие запрещенных паттернов или недоверенных реестров.
- Более быстрое расследование —
git logпоказывает конкретный коммит, который привел к появлению вредоносного пакета.
Lock-файл гарантирует целостность и воспроизводимость, но он не является панацеей. Он не остановит вредоносную версию, которая была опубликована легально, или скомпрометированного мейнтейнера.
Текстовый lock-файл добавляет прозрачность. Прозрачность — это ваша первая линия обороны.
Как обезопасить ваш рабочий процесс с Bun
- Запускайте
bun install --frozen-lockfileв CI. Сборка завершится ошибкой, если lock-файлу требуется обновление. - Запускайте
bun install --lockfile-onlyв CI. Это позволит проверить разрешение зависимостей без выполнения тяжелых скриптов установки. - Немедленно переведите все файлы bun.lockb в формат bun.lock.
- Требуйте ручной проверки изменений lock-файлов. Добавьте соответствующих владельцев в
CODEOWNERS, чтобы каждое обновление зависимостей попадало на глаза нужным специалистам.
Перестаньте слепо доверять инструментам. Вместо этого проверяйте каждое изменение.
