Онлайн-перевірка вразливостей Shellshock

Опубликовано: Artem Prysyazhnuk 2014-06-12 все статьи | Глосарій | ПОШИРЕНІ ЗАПИТАННЯ

Перевірте ваш сервер на вразливість

Як це працює?

Він розроблений для Linux-сервера з встановленим на ньому веб-сервером. Алгоритм дуже простий. Ми послідовно генеруємо 4 http запити:

  • 1. Звичайний запит
  • 2. Запит намагається, використовуючи уразливість, відправити "шкідливий" cookie, який викликає затримку в 2 секунди у відповіді на наш спеціальний http запит.
  • 3. Запит намагається, використовуючи уразливість, відправити "шкідливий" cookie, що призводить до 4-секундної затримки у відповіді на наш спеціальний http-запит.
  • 4. Те ж саме, що і #3

Як зрозуміти результат?

Ми порівнюємо час відповіді на всі 4 запити. Можливі три ситуації:

  • 1. Знайдено уразливість. Ми можемо стверджувати це, якщо різниця у відповідях становить близько 2 секунд для запитів без куки і з куки з 2-секундною затримкою, а також для запитів з куки з 2- і 4-секундною затримкою. Це означає, що наш запит зміг використати уразливість і встановити ці куки.
  • 2. Уразливість не знайдена. Всі запити мають приблизно однаковий час відповіді. Скоріш за все, куки не були встановлені через відсутність уразливості.
  • 3. Невизначена ситуація. Якщо час відповіді сильно відрізняється, не збігаючись із заданою кукісами затримкою, ми не можемо сказати напевно. Це може бути, якщо сервер знаходиться під високим навантаженням. Щоб перевірити це, ми використовуємо два запити з однаковими файлами cookie (№3 і №4). Якщо час відповіді для двох однакових перевірок відрізняється, ми робимо висновок, що куки не впливають на час відповіді. Принаймні, не тільки вони. Отже, в цьому випадку наш метод не може виявити уразливість

Безпека перевірок

Наш тест не може зашкодити вашому серверу. Ризик полягає в появі одного додаткового cookie, який використовується тільки для наших запитів і не може вплинути на нормальну роботу вашого сайту.

Теги: usecase
Генеральний директор та засновник компанії HostTracker. Він пристрасний підприємець із сильним технічним бекграундом у F#. Артем працює в індустрії розробки програмного забезпечення більше 20 років.