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

Припиніть сліпо довіряти інструментам. Замість цього перевіряйте кожну зміну.

Джерело: https://dev.to/kunal_d6a8fea2309e1571ee7/bun-lockfile-bunlockb-format-threat-model-ci-checks-2026-4i3b