Кібербезпека

Захист оновлень пакетів npm та pip в Amazon Linux за допомогою затримки публікації

Д

Джерело: Amazon Web Services

5 хв читання

Концептуальне зображення затримки оновлень пакетів у програмному ланцюгу поставок

Ризики ланцюга поставок програмного забезпечення

Перші години після публікації пакетів у репозиторіях npm або PyPI є найризикованішими, оскільки сканери не можуть аналізувати пакети до їх публікації. Незважаючи на те, що нещодавні інциденти в ланцюгу поставок, що стосувалися пакетів NodeJS та Python, були виявлені та видалені протягом кількох годин, існувала ймовірність їх встановлення користувачами, що створювало потенціал для інцидентів безпеки. Дані показують, що якби користувачі зачекали 1 день перед доступом до цих пакетів, жодна з нещодавніх подій безпеки ланцюга поставок не мала б впливу.

На відміну від пакетів Amazon Linux, які проходять перевірку та захисні механізми перед випуском, реєстри npm та PyPI мають відкритий доступ до публікації та не застосовують обов'язкових перевірок. Це створює ризик додавання несподіваних пакетів через такі загрози, як видавання себе за іншу особу або викрадені облікові дані. Існує два протилежні ризики: старе програмне забезпечення накопичує невстановлені вразливості, тоді як нові пакети потенційно містять несподівані вразливості, які ще не були виявлені. Найкращий підхід полягає в тому, щоб залишатися актуальним, не приймаючи найновіші випуски негайно, одночасно застосовуючи рекомендовані виправлення безпеки.

Згідно зі звітом Datadog 2026 State of DevSecOps, 54% JavaScript-додатків встановлюють принаймні одну залежність протягом дня після її випуску. Цей часовий проміжок представляє найвищий ризик для ланцюга поставок. Нещодавні події демонструють швидкість виявлення:

  • Nx s1ngularity (серпень 2025): 4–5 годин
  • axios (березень 2026): 2–3 години
  • Bitwarden CLI (квітень 2026): 93 хвилини
  • TanStack (травень 2026): 30 хвилин
  • node-ipc (травень 2026): менше 24 годин

Рішення: Затримка оновлень (Dependency Cooldown)

Затримка оновлень (dependency cooldown) вказує менеджеру пакетів пропускати нещодавно опубліковані версії. Якщо версія не існувала в реєстрі протягом налаштованого періоду, наприклад, 1 дня, вона не буде встановлена. Це дає спільноті безпеки час для виявлення та видалення несподіваних версій. 1-денна затримка блокує всі події, перелічені вище. Примітно, що деякі з цих подій мали дійсні атестації походження та пройшли перевірку збірки, що свідчить про те, що лише ці перевірки не зупинили їх. Затримка працює незалежно від механізмів авторизації, оскільки блокує за віком, а не за довірою.

Як npm (v11.10.0+), так і pip (v26.1+) підтримують затримки. Amazon Linux 2023 постачає ці пакети в NodeJS 24 та Python 3.14, починаючи з випуску 2023.11.20260608. Важливо зазначити, що затримка не застосовується до встановлень на основі файлів блокування (lockfile-based installations), таких як npm ci або pip install -r requirements.txt з закріпленими версіями. Вона впливає лише на вирішення нових або оновлених пакетів.

Налаштування Cooldown в Amazon Linux 2023

Для реалізації рішення необхідні такі передумови:

  • Node.js 24 з npm 11.10.0 або новішої версії.
  • Python 3.14 з pip 26.1 або новішої версії.
  • pip-audit (інструмент для сканування пакетів Python).

Налаштування npm cooldown:

  1. Створіть глобальний каталог конфігурації: sudo mkdir -p /usr/lib/nodejs24/etc
  2. Додайте файл конфігурації npm з налаштуванням затримки: sudo npm-24 config set min-release-age 1 --location=global
  3. Перевірте активність затримки: npm-24 config list

Налаштування pip cooldown:

  1. Створіть системний файл конфігурації pip з налаштуванням затримки: sudo python3.14 -m pip config set --global global.uploaded-prior-to P1D
  2. Перевірте конфігурацію: python3.14 -m pip config list

Оновлення критичних виправлень безпеки

Для встановлення останніх версій пакетів, наприклад, для отримання виправлень безпеки, можна обійти конфігурацію затримки за допомогою командного рядка. Рекомендується оцінювати серйозність дефектів коду та застосовувати виправлення безпеки, якщо існує відомий ризик. Для ідентифікації пакетів, які потребують термінових оновлень, використовуйте npm audit або python3.14 -m pip_audit.

Для пакетів npm:

Встановіть пакет з обходом затримки: npm-24 install <package-name> --min-release-age=0

Для пакетів pip:

Встановіть пакет з обходом затримки: python3.14 -m pip install <package-name> --uploaded-prior-to="P0D"

Також існують скрипти для автоматичного оновлення пакетів з відомими виправленнями безпеки, які обходять затримку.

Галузеве впровадження та внесок AWS

Основні менеджери пакетів та підприємства почали впроваджувати затримки залежностей. Станом на травень 2026 року кілька популярних інструментів управління пакетами включають функції затримки:

  • pnpm: Постачається з minimumReleaseAge увімкненим за замовчуванням, що робить його одним з перших менеджерів пакетів, де затримки є опцією відмови, а не згоди.
  • Renovate: Його пресет найкращих практик конфігурації включає 3-денну затримку npm з 2025 року.
  • StepSecurity Secure Registry: Використовує конфігурований період затримки для корпоративних клієнтів, рекомендуючи 10-денну затримку за замовчуванням.

AWS активно допомагає захищати ланцюг поставок відкритого вихідного коду. AWS сканує вихідні реєстри пакетів, щоб виявляти несподівані пакети до того, як вони досягнуть клієнтів. Amazon Inspector, служба управління безпекою, використовує правила виявлення за допомогою ШІ для сканування реєстрів. У 2025 році дослідники Amazon Inspector виявили понад 150 000 несподіваних пакетів npm, пов'язаних з кампанією з видобутку токенів. AWS також робить внесок у грант Open Source Security Foundation на суму 12,5 мільйона доларів для безпеки відкритого вихідного коду.

Рекомендації

Для забезпечення безпеки вашої конфігурації Amazon Linux 2023:

  • Встановіть 1-денну затримку для npm та pip.
  • Обходьте затримку лише за потреби для термінових виправлень безпеки, використовуючи відповідні прапорці командного рядка.
  • Регулярно запускайте npm audit або pip_audit для виявлення пакетів, які потребують негайної уваги.

Впровадження цих рішень дозволяє захистити ваше середовище npm та PyPI від більшості випадків несподіваного коду. Затримка оновлення на 1 день захищає ваше середовище, дозволяючи при цьому застосовувати найновіші виправлення безпеки.

Що це означає для розробників

Розробники, які використовують Amazon Linux 2023, можуть підвищити безпеку своїх проєктів, налаштувавши 1-денну затримку оновлень для пакетів npm та pip. Це вимагає використання конкретних команд конфігурації для npm (v11.10.0+) та pip (v26.1+) та інструменту pip-audit для Python. Для застосування термінових виправлень безпеки розробники можуть тимчасово обійти цю затримку за допомогою спеціальних прапорців у командах встановлення, що дозволяє балансувати між безпекою та актуальністю.

Ключові факти

  • Перші години після публікації пакетів npm та PyPI є найризикованішими через відсутність попереднього сканування.

  • Конфігурація затримки оновлень (dependency cooldown) дозволяє менеджерам пакетів пропускати версії, опубліковані протягом останніх 24 годин.

  • 1-денна затримка запобігла б впливу всіх нещодавніх інцидентів безпеки ланцюга поставок, згаданих у джерелі.

  • npm (v11.10.0+) та pip (v26.1+) підтримують цю функцію, і вона доступна в Amazon Linux 2023.

  • Затримку можна обійти для встановлення термінових виправлень безпеки, використовуючи спеціальні прапорці в командах встановлення.

Джерела

КібербезпекаРозробка ПЗТехнологіїOpen Source

Джерело

Amazon Web Services

Secure your npm and pip package updates in Amazon Linux | Amazon Web Services

29 липня 2026 · оновлено 29 липня 2026

Оригінал

Попередні статті

Концептуальна ілюстрація карти США з накладеними шарами даних, що відображають схильність до зсувів та соціально-економічну вразливість у регіонах Аппалачів та Західного узбережжя.

Нова база даних вперше картографує ризики зсувів для 6,5 мільйона американців

Дослідники Університету Вашингтона створили Landslide Exposure Database (LED), яка вперше систематично оцінює ризики зсувів для будівель по всій території США, виявляючи 6,5 млн людей у зоні ризику.

Сучасна медична лабораторія з біологічним зразком та абстрактною візуалізацією даних машинного навчання на екрані.

Машинне навчання для діагностики рідкісних пухлин: потенціал та виклики "ярликового навчання"

Дослідження показує, що машинне навчання може покращити діагностику рідкісних пухлин надниркових залоз, але вимагає ретельної перевірки на "ярликове навчання".

Наступні статті

Концептуальна ілюстрація, що зображує центральний механізм управління, який забезпечує дотримання політик у різних інструментах розробки для агентного кодування.

Агентне кодування: Другий шанс для DevOps та потреба в управлінні масштабу ШІ

Новий CEO CloudBees Мориц Плассніг стверджує, що агентне кодування виявляє незавершеність DevOps і вимагає нового підходу до управління, щоб безпечно масштабувати розробку в епоху ШІ.

Концептуальна ілюстрація архітектури перевіреного AI-асистента для кодування з NVIDIA NeMo Guardrails

Самостійне розміщення перевіреного AI-асистента для кодування з NVIDIA NeMo Guardrails

NVIDIA пропонує рішення для самостійного розміщення перевіреного AI-асистента для кодування, що вирішує проблеми безпеки, ризиків ланцюга поставок та відстеження дефектів у чутливих середовищах.