Компоненти з відомими вразливостями
CVE уже опубліковано. Невідоме лише ваше дерево залежностей.
Що таке Компоненти з відомими вразливостями?
Зловмисник і захисник у той самий день читають той самий бюлетень. Зловмисникові потрібна лише вразлива версія, що лишилася працювати в одному місці; вам треба знайти кожен збіг у дереві залежностей, виправити його, перевірити й розгорнути. Ви дослідите функцію імпорту, дізнаєтеся версію її бібліотеки з відповіді й надішлете файл, який опублікований CVE перетворює на виконання коду. Потім підвищите версію до виправленого випуску, перейдете на відтворення лише даних і підключите до CI сканер lock-файлу, щоб наступний бюлетень надходив як збій збірки.
Що ви дізнаєтесь у Компоненти з відомими вразливостями
- Розпізнавайте ризик відомої вразливості як проміжок між публікацією CVE і розгортанням виправленої залежності, а автоматичне сканування — як засіб, що цей проміжок скорочує
- Читайте бюлетень CVE та зіставляйте версії, яких він стосується, із зафіксованою залежністю проєкту
- Застосовуйте підвищення версії залежності як негайне виправлення, а інтеграцію OSV, Snyk, Dependabot чи npm audit у CI — як системне
- Усвідомлюйте, що вразливий компонент може виконати вхідні дані, надані зловмисником, навіть якщо код застосунку навколо написано правильно
- Додавайте ешелонований захист від небезпечної десеріалізації: відтворюйте недовірені вхідні дані як прості дані, а не складні типізовані об'єкти, і запускайте сервіс за принципом найменших привілеїв
Компоненти з відомими вразливостями — Кроки навчання
-
Функція імпорту
Verric дає змогу клієнтові експортувати збережену панель у невеликий файл і імпортувати її в інший робочий простір. Імпорт виконується не в браузері: власні сервери Verric читають завантажений файл і відтворюють із нього панель. Боб відкриває функцію, щоб зрозуміти, як вона працює, перш ніж щось у ній змінювати.
-
Де файл відтворюється
Увесь інтерес Боба до цієї сторінки зводиться до одного рядка.
-
Імпортуйте звичайний файл
Спершу подивіться, як функція працює у звичайному режимі. Боб прикріплює звичайну експортовану панель і імпортує її. Вкладка «Network» у браузері записує запит і відповідь сервера — саме те, що розробник бачить у DevTools.
-
Що відтворило файл
Панель імпортовано без помилок. Одне поле у відповіді для Боба корисніше, ніж сам імпорт.
-
Знайдіть бібліотеку
Боб відкриває публічний реєстр пакетів, щоб побачити, що повідомляли про цю бібліотеку. Адресу реєстру він вводить у браузері сам, а потім шукає в ньому цю бібліотеку.
-
Перевірте зафіксовану версію
Остання версія, 2.4.6, без відомих вразливостей. Бобові потрібна версія, яку Verric справді використовує, — 2.4.1, названа у відповіді імпорту. Він вибирає її у списку версій, щоб побачити її стан безпеки.
-
Почніть зі звичайного файлу
Боб відкриває у своєму редакторі звичайну експортовану панель. Поки що вона саме така, якою здається: заголовок і діаграма.
-
Озбройте файл
Боб змінює одне поле. Він замінює віджет діаграми на тип, що породжує процес, із командою оболонки, взятою просто з proof of concept у бюлетені. Файл і далі розбирається як панель.
-
Гаджет
Вистачило двох рядків.
-
Завантажте спеціально створений файл
Боб імпортує свій спеціально створений файл через ту саму функцію. Для браузера це просто ще одне завантаження.
Охоплення стандартів безпеки
OWASP Top 10
- A03:2025 Software Supply Chain Failures
- A06:2021 Vulnerable and Outdated Components
CWE
- CWE-1104 Use of Unmaintained Third Party Components
- CWE-1395 Dependency on Vulnerable Third-Party Component
CIS Controls
- CIS 16 Application Software Security
- CIS 7 Continuous Vulnerability Management
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security
- ID.RA Risk Assessment