Віртуальний патчинг: як виграти час проти zero-day і свіжих CVE
Небезпечне вікно — не сама вразливість, а час до патча
Про критичну вразливість у популярній бібліотеці ви дізнаєтеся вранці. Оновлення від вендора виходить того ж дня. А от викотити його у продакшн ви зможете хіба що за кілька днів: треба протестувати, узгодити вікно обслуговування, переконатися, що нова версія нічого не поламала. Увесь цей проміжок — від публічного розкриття до реального оновлення — ваш застосунок вразливий, і скани в інтернеті починаються буквально за години після розкриття.
Для невеликої команди це найгостріший момент. Ви знаєте про діру, ви не можете закрити її миттєво в коді, і ви бачите, як зростає ймовірність, що по ній вдарять. Саме це вікно й закриває віртуальний патчинг.
Що таке віртуальний патч
Віртуальний патч — це правило на edge, яке блокує саме той шаблон запиту, що експлуатує вразливість, не змінюючи код застосунку. Ви не виправляєте баг — ви робите так, щоб запит, який його тригерить, ніколи не дійшов до origin.
Різниця у швидкості принципова:
- Справжній патч змінює вашу програму. Він правильний і остаточний, але повільний у розгортанні: збірка, тести, деплой, вікно обслуговування.
- Віртуальний патч змінює лише правило фільтрації на edge. Він тимчасовий і зовнішній, зате застосовується за секунди й розлітається на всі вузли через watch за сховищем конфігурації менш ніж за секунду.
Одне не замінює інше. Віртуальний патч купує вам час, щоб накотити справжній без паніки й нічних деплоїв.
Як це працює на практиці
Коли з’являється свіжий CVE із відомим шаблоном експлуатації, послідовність така:
- Опис шаблону. Визначається сигнатура зловмисного запиту — конкретний шлях, параметр, заголовок чи їхня комбінація, яку використовує експлойт.
- Публікація правила. Правило додається до фільтра. Багато класів атак уже покриває базовий набір правил OWASP, тож інколи «патч» — це просто впевненість, що потрібне правило активне.
- Спершу спостереження, потім блокування. Нове правило корисно спочатку запустити в режимі детекції: воно фіксує збіги в аудит-логу, але не блокує. Так ви бачите, чи не ловить воно легітимний трафік, — і лише потім переводите в блокування. Ця обережність тісно пов’язана з тюнінгом хибних спрацювань.
- Зняття після справжнього патча. Коли origin оновлено, віртуальне правило можна прибрати — або лишити як додатковий рубіж.
Чому саме edge, а не сам застосунок
Сенс у тому, що фільтр стоїть перед вразливим кодом. Зловмисний запит зупиняється на нашому вузлі в ЄС і ніколи не торкається діри, навіть якщо вона все ще у вашому застосунку. Ви керуєте цим окремо від релізного циклу: правило змінюється без передеплою й миттєво діє на всьому парку. Для команди, яка не може дозволити собі екстрений нічний деплой на кожен CVE, це різниця між керованою реакцією й пожежею.
Чого ми не обіцяємо
Віртуальний патч — це відстрочка, а не лікування. Він закриває відомий шаблон експлуатації; по-справжньому вразливість усуває лише оновлення коду. Ми не стверджуємо, що edge-правило робить діру «неіснуючою» — воно робить її недосяжною для відомих атак, поки ви готуєте нормальний патч. І кожне спрацювання лишає слід у незмінному аудит-логу, щоб згодом ви бачили, скільки спроб було відбито у тому небезпечному вікні. Накладні витрати на перевірку тримаються в межах проєктного бюджету — як ми його міряємо.
Хочете мати змогу закрити свіжий CVE за секунди, а не за дні? Напишіть нам.