Як працюють сканери? Методи виявлення вразливостей.

Сканери вразливостей DAST за своєю суттю дещо схожі на сканери вірусів. В обох випадках застосунки шукають певні відхилення. Сканер вірусів сканує локальні ресурси та носії, щоб знайти потенційно шкідливе програмне забезпечення. Тоді як, сканер вразливостей сканує вебресурс, щоб знайти потенційно вразливе програмне забезпечення. При цьому використовуються подібні методи.

Метод сигнатур

У разі сканування на основі методу сигнатур сканер шукає характерні ознаки присутності того чи іншого шкідливого програмного забезпечення. База сигнатур може бути або загальнодоступною або створена виробником сканера.

  • Сканер вірусів шукає певний ланцюжок байтів, присутніх у шкідливому виконуваному файлі. Якщо він знаходить цей ланцюжок байтів, він припускає, що шкідливий файл знайдено.
  • Мережевий сканер шукає певну відповідь від сервера, щоб розпізнати точну версію програмного забезпечення, яке використовує сервер. Це може бути простим – якщо відповідь програмного забезпечення міститиме інформацією про версію, або складнішим процесом, наприклад, якщо перевірка потребує розпізнавання певної типової поведінки.
  • Сканер SCA шукає певні елементи у вихідному коді, проміжному коді або двійковому коді, щоб розпізнати відомий компонент, який використовується/імпортується програмним забезпеченням, а також його точну версію.

Сканування на основі методу сигнатур має кілька переваг:

  • Зазвичай це досить швидко, тому що не потрібно виконувати жодних операцій, окрім порівняння ланцюжків байтів із бібліотеки сканера з ланцюжками байтів, отриманих від ресурсу.
  • Порівняно менший масштаб втручання в роботу системи та менша кількість побічних ефектів.
  • Легший й швидший процес розробки для виробника сканера, оскільки немає потреби писати спеціальний код. Існують також публічні бази сигнатур, які також можна застосовувати.

На жаль, цей тип сканування також має деякі серйозні недоліки:

  • Знайдена сигнатура не гарантує наявність шкідливого програмного забезпечення.
  • Відсутність доказів. Оскільки сканер лише порівнює сигнатури, він не перевіряє, чи правильні його припущення.
  • Більшість сканерів обмежені відомими сигнатурами та не можуть розпізнавати мутації (наприклад, сигнатура з одним іншим байтом), порушення (наприклад, інакше налаштований сервер) або нововиявлені загрози.

Сканування на основі поведінки (евристичний метод сканування)

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

  • Коли евристичний антивірусний сканер знаходить потенційно виконуваний файл, він може виконати зворотну розробку, щоб зрозуміти, що саме робить код (щоб перевірити, чи є його дії шкідливими). Він також може спробувати виконати код у безпечному середовищі, щоб побачити результати.
  • Коли сканер вебвразливостей знаходить елемент, який дозволяє вводити дані користувачеві, він намагається обманути алгоритми ресурсу, надсилаючи несподівані дані. Потім він аналізує його відповідь, щоб переконатися, чи це вдалося.

Евристичне сканування має кілька основних переваг:

  • Теоретично воно здатне знайти будь-яку загрозу, навіть кастомізовану або нульового дня (zero day). Очевидно, це залежить від того, наскільки просунуте програмне забезпечення.
  • Воно точніше, оскільки перевіряє правильність своїх припущень. Іноді можна навіть отримати докази.

На жаль, евристичне сканування також має деякі недоліки:

  • Затрачує набагато більше ресурсів ніж сканування на основі сигнатур. Сканеру, що використовує поведінковий підхід, потрібно більше часу, щоб знайти результати, і він може сповільнити ресурс більше, ніж сканер на основі сигнатур.
  • Створити хороший евристичний сканер дуже важко і потребує неабиякого вміння. На відміну від сканерів на основі сигнатур, кожен новий тип атаки, що додається у базу вразливостей евристичного сканеру попередньо необхідно прописати у вигляді коду, що буде її симулювати. Бібліотека евристичного сканера — це не просто список рядків для порівняння — вона потребує справжнього спеціального програмного забезпечення для кожного типу перевірки.

Найкраще з обох підходів

Багато професійних сканерів намагаються використовувати обидва типи сканування, але основний тип завжди залежить від специфіки:

  • Сканери вірусів в основному базуються на сигнатурах. Деякі просунуті антивірусні сканери також мають сканування на основі поведінки, але воно, в цьому випадку, часто є необов’язковим (оскільки таке сканування потребує більше часу та ресурсів).
  • Мережеві сканери майже завжди базуються на сигнатурах. Це тому, що вони зосереджуються на пошуку застарілих версій програмного забезпечення та неправильних конфігурацій, які можна легко розпізнати за допомогою сигнатур.
  • Сканери вебвразливостей є переважно евристичними, але можуть використовувати сигнатури, де це доречно.

В сканері вебвразливостей Acunetix поєднується найкраще з обох підходів:

  • Сканер Acunetix — це в основному поведінковий сканер. Усі алгоритми його розширених перевірок були розроблені окремо та виконують безпечні (імітаційні) атаки. На додаток – у більшості випадків Acunetix підтверджує, що атака була успішною, показавши, наприклад, файл, до якого сканер ніколи не повинен мати доступу (наприклад, файл конфігурації сервера). Це унікальна здатність, якої немає у більшості сканерів.
  • Оскільки сканер перевіряє такі речі, як застарілі версії програмного забезпечення, а також виконує перевірку SCA, він виконує деякі перевірки на основі сигнатур, де це можливо та де не потрібен спеціальний код. Це робить сканування ресурсу швидшим і зменшує навантаження. Тому, Acunetix часто називають найефективнішим сканером на ринку.

Варто зауважити, що попри те, що багато вразливостей, знайдених Acunetix, ідентифікуються за допомогою кодів CVE/CWE, програмне забезпечення використовує не тільки бази даних для перевірки вразливості, але і спеціальні алгоритми їх ідентифікації. Це дає змогу шукати вразливості навіть в унікальних користувацьких системах, які відхиляються від стандартних методів розробки та гарантувати найвищу точність і надійність результатів перевірки.

Підписатися на новини