Вразлива бібліотека: як jQuery з 2015 року може зламати ваш сайт у 2025
Більшість сайтів використовують JavaScript-бібліотеки. Стара версія — це відома хакерам вразливість. Пояснюємо просто.
На вашому сайті, швидше за все, є jQuery. Або Bootstrap. Або Swiper, Slick, Chart.js, Lightbox — десятки різних JavaScript-бібліотек, які розробник встановив під час створення сайту. Ви про більшість з них навіть не знаєте. А хакери — знають. І знають, яка версія у вас стоїть.
У цій статті ми розберемо, що таке JavaScript-бібліотека, як виникають вразливості, як хакери їх знаходять і використовують — і що потрібно зробити щоб захиститись.
Що таке JavaScript-бібліотека: аналогія з автозапчастинами
Уявіть, що ваш сайт — це автомобіль. Розробник не виготовляє кожну деталь з нуля — він використовує готові запчастини від перевірених виробників. Двигун від одного виробника, гальма від іншого, підвіску від третього, навігатор від четвертого.
JavaScript-бібліотеки — це саме такі "запчастини". jQuery відповідає за зручну роботу зі сторінкою (як клацають кнопки, як відкриваються меню). Bootstrap — за зовнішній вигляд і адаптивність. Slick — за слайдшоу. Ці бібліотеки написані тисячами розробників по всьому світу і використовуються мільярдами сайтів.
Але є проблема. Іноді в деталях виявляються дефекти — конструктивні недоліки, які не були помічені при виробництві. Виробник оголошує відкликання і випускає нову версію з виправленням. Якщо ви не замінили деталь — ваш автомобіль уразливий.
Нова версія JavaScript-бібліотеки — це "відкликання" старої. Якщо розробник не оновив jQuery 1.x до 3.x — ваш сайт стоїть на відкликаній деталі. І в базі даних вразливостей є інструкція як саме цю деталь зламати.
Що таке CVE і чому це важливо розуміти
CVE (Common Vulnerabilities and Exposures) — це публічна база даних відомих вразливостей програмного забезпечення. Підтримується MITRE Corporation за підтримки уряду США. Кожна вразливість отримує унікальний номер (наприклад, CVE-2019-11358) і детальний опис.
Ця база доступна всім. Абсолютно всім. Включаючи хакерів. І кожен новий запис — це, по суті, публічна інструкція: "ось яке ПЗ, ось яка версія, ось що зламано, ось як це можна використати".
Реальний приклад: XSS через jQuery
XSS (Cross-Site Scripting) — один із найпоширеніших видів атак через вразливі бібліотеки. Давайте розберемо конкретний приклад з jQuery.
CVE-2019-11358: вразливість у jQuery до версії 3.4.0. Через особливість обробки об'єктів зловмисник міг "впровадити" шкідливий код який виконається в браузері кожного відвідувача вашого сайту.
Що це означає практично:
- ▸Хакер знаходить ваш сайт з вразливою версією jQuery
- ▸Через форму коментаря, пошуку або контакту відправляє спеціально сформований запит
- ▸Шкідливий JavaScript виконується в браузері наступного відвідувача
- ▸Скрипт може: красти cookies і сесійні токени, робити скріншот введених даних, перенаправляти на фішинговий сайт, завантажувати шкідливе ПЗ
Ви про це не знаєте. Ваш сайт виглядає нормально. Але кожен клієнт, який зайшов на нього за останні тижні, міг стати жертвою. Такі атаки виявляються тільки якщо є моніторинг.
Не тільки jQuery: які ще бібліотеки в зоні ризику
- ▸Bootstrap (старі версії) — вразливості в компонентах модалок, тултіпів
- ▸Moment.js — RegEx DoS (атака що вішає сервер через регулярні вирази)
- ▸Underscore.js / Lodash — прототипне забруднення (prototype pollution)
- ▸Angular, React старих версій — різноманітні XSS вразливості
- ▸Swiper, Slick — менш критичні, але теж мають CVE
- ▸Font Awesome старих версій — аналогічно
- ✗jQuery 1.12 (2016) — 15+ відомих CVE
- ✗Bootstrap 3.x — кілька XSS вразливостей
- ✗Хакери знають точну версію
- ✗Автоматизовані сканери знаходять за годину
- ✗Атака — автоматична, без людського втручання
- ✓jQuery 3.7+ — активно підтримується, патчі виходять
- ✓Bootstrap 5.x — без відомих критичних CVE
- ✓Rank Sentinel щодня перевіряє версії
- ✓При новій CVE — миттєве сповіщення
- ✓Розробник отримує конкретне завдання з деталями
Як Rank Sentinel відстежує бібліотеки
Rank Sentinel автоматично сканує ваш сайт і виявляє версії JavaScript-бібліотек що завантажуються на сторінках. Порівнює їх з базою відомих вразливостей (CVE).
При виявленні вразливої бібліотеки ви отримуєте сповіщення з деталями:
- ▸Назва і версія вразливої бібліотеки
- ▸Номер CVE і рівень критичності
- ▸Опис що саме зламано (зрозуміло для нетехнічного власника)
- ▸Рекомендована версія для оновлення
- ▸Орієнтовний обсяг роботи для розробника
Ваш розробник отримує конкретне завдання з деталями — і виправляє за 1–2 години те, що без моніторингу роками залишалось невидимою загрозою.
Готові захистити ваш сайт?
Перевірте вразливі бібліотеки вашого сайту→