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, щоб потрібні фахівці бачили кожне оновлення залежностей.
Припиніть сліпо довіряти інструментам. Замість цього перевіряйте кожну зміну.
