🕷️
Модуль 2Безпека10 хв читання

Вразлива бібліотека: як jQuery з 2015 року може зламати ваш сайт у 2025

Більшість сайтів використовують JavaScript-бібліотеки. Стара версія — це відома хакерам вразливість. Пояснюємо просто.

На вашому сайті, швидше за все, є jQuery. Або Bootstrap. Або Swiper, Slick, Chart.js, Lightbox — десятки різних JavaScript-бібліотек, які розробник встановив під час створення сайту. Ви про більшість з них навіть не знаєте. А хакери — знають. І знають, яка версія у вас стоїть.

У цій статті ми розберемо, що таке JavaScript-бібліотека, як виникають вразливості, як хакери їх знаходять і використовують — і що потрібно зробити щоб захиститись.

78%
сайтів використовують jQuery (w3techs.com, 2024)
100+
відомих CVE для різних версій jQuery
43%
сайтів використовують версії jQuery з відомими вразливостями
Лічені год.
від публікації CVE до першої автоматизованої атаки

Що таке JavaScript-бібліотека: аналогія з автозапчастинами

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

JavaScript-бібліотеки — це саме такі "запчастини". jQuery відповідає за зручну роботу зі сторінкою (як клацають кнопки, як відкриваються меню). Bootstrap — за зовнішній вигляд і адаптивність. Slick — за слайдшоу. Ці бібліотеки написані тисячами розробників по всьому світу і використовуються мільярдами сайтів.

Але є проблема. Іноді в деталях виявляються дефекти — конструктивні недоліки, які не були помічені при виробництві. Виробник оголошує відкликання і випускає нову версію з виправленням. Якщо ви не замінили деталь — ваш автомобіль уразливий.

🔧

Нова версія JavaScript-бібліотеки — це "відкликання" старої. Якщо розробник не оновив jQuery 1.x до 3.x — ваш сайт стоїть на відкликаній деталі. І в базі даних вразливостей є інструкція як саме цю деталь зламати.

Що таке CVE і чому це важливо розуміти

CVE (Common Vulnerabilities and Exposures) — це публічна база даних відомих вразливостей програмного забезпечення. Підтримується MITRE Corporation за підтримки уряду США. Кожна вразливість отримує унікальний номер (наприклад, CVE-2019-11358) і детальний опис.

Ця база доступна всім. Абсолютно всім. Включаючи хакерів. І кожен новий запис — це, по суті, публічна інструкція: "ось яке ПЗ, ось яка версія, ось що зламано, ось як це можна використати".

Від знахідки до атаки: як це відбувається
🔍
Дослідник знаходить вразливість
Звітує розробникам бібліотеки (відповідальне розкриття). Або — іноді — публікує одразу.
🔧
Розробники випускають виправлення
Нова версія бібліотеки з патчем. Описують що саме виправили.
📢
CVE публікується
Вразливість офіційно задокументована. Всі можуть прочитати деталі.
🤖
Хакери пишуть сканер
Автоматизований бот, що шукає сайти зі старою вразливою версією.
💥
Масова атака
Тисячі сайтів атакуються автоматично протягом днів або тижнів після публікації CVE.

Реальний приклад: 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 години те, що без моніторингу роками залишалось невидимою загрозою.