Інтерактивне тестування безпеки додатків (Interactive Application Security Testing, IAST) – це термін для інструментів, що поєднують в собі переваги статичного тестування безпеки додатків (SAST) і динамічного (DAST). Це загальний термін і саме тому інструменти IAST можуть значно відрізнятися у підходах до тестування безпеки веб-додатків. Далі розберемо, як з’явилися ці інструменти, яким чином вони виявляють вразливості, в чому їх переваги та недоліки.
Загалом, всі інструменти для захисту веб-додатків можна поділити на два класи:

Інструменти для тестування безпеки веб-додатків

1. Інструменти SAST (Static Application Security Testing), відомі, як сканери початкового коду:

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

2. Інструменти DAST (Dynamic Application Security Testing), включаючи автоматичні сканери вразливостей  і інструменти ручного тестування щодо можливості проникнення:

  • працюють лише над скомпільованими додатками
  • підтримують будь-яку мову програмування для створення веб-додатків
  • виявляють проблеми пов’язані з даними та конфігураціями
  • мають місце не такі часті (у порівнянні з SAST) повідомлення про помилкове спрацьовування
  • не визначають точне джерело проблеми (тобто рядок коду)

Бізнес, який чудово розбирається в веб-безпеці, традиційно повинен використовувати ці два типи інструментів окремо. Інструменти SAST будуть використовуватися для перевірки коду компаніями, які розробляють власні веб-додатки. Інструменти DAST будуть використовуватися частіше підприємствами, у яких є веб-сторінки або веб-додатки (включаючи ті, які розробляють свої власні).

Щоб спростити роботу підприємств, виробники засобів забезпечення безпеки веб-додатків зрозуміли, що методи статичного і динамічного тестування можна об’єднати, щоб створити більш досконалі інструменти, які б включали переваги обох. Так народився IAST (Інтерактивне тестування безпеки додатків).

Найбільша проблема з IAST полягає в тому, що ідея спала на думку виробникам інструментів SAST і DAST незалежно один від одного, і в результаті з’явилися продукти, які використовують один і той же загальний термін, але насправді зовсім різні. Доступні на ринку рішення IAST не створені з нуля: вони розширюють традиційні сканери вихідного коду або традиційні веб-сканери вразливостей. Таким чином, клієнт повинен бути певен при виборі, що продукт відповідає його потребам.

Інструменти SAST/IAST (статичне IAST)

Функціональність IAST, вбудована в інструменти SAST, дає їм одну перевагу перед чистим SAST. Це дозволяє таким сканерам підтверджувати деякі помилкові спрацьовування шляхом компіляції та тестування коду. Отже, кількість хибнопозитивних результатів зменшується.

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

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

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

Інструменти DAST/IAST (динамічне IAST)

Інструменти DAST з функціональністю IAST спрямовані на впровадження однієї з переваг SAST: точного визначення походження проблеми, щоб розробники не витрачали час на пошук проблемного рядка коду. Динамічне IAST також має додаткову цінність: забезпечує більш точні результати і значно скорочує кількість помилкових спрацьовувань.

На жаль, інструменти динамічного аналізу працюють в реальному часі з запущеними додатками, тому вони не мають прямого доступу до початкового коду. Однак вони можуть отримати доступ до компіляторів та інтерпретаторів. У разі таких мов, як PHP, активний інструмент IAST може точно визначити проблемний рядок коду. У випадку з попередньо скомпільованими мовами він може точно визначити проблему в байт-коді, що прискорює його пошук в початковому коді.

Рішення DAST з агентом IAST повністю не замінить сканер початкового коду, але воно має деякі переваги, а саме підвищує ефективність динамічного тестування.

IAST в життєвому циклі розробки програмного забезпечення

Однією з найбільших переваг IAST, незалежно від того, чи є воно статичним чи динамічним, є його зручність використання в процесі розробки. Компанії, які створюють свої власні веб-додатки, повинні знати про потенційні проблеми якомога швидше, щоб уникнути витрат і ризиків, пов’язаних з виявленням вразливостей в роботі. Ось чому в даний час однією з основних тенденцій в AppSec і розробці програмного забезпечення є заміна DevOps на DevSecOps.

Інструменти SAST за своєю природою створені для безперервної інтеграції. Інструменти DAST часто помилково сприймаються як непридатні для цього, але всупереч такої думки, передові рішення DAST успішно використовуються в процесах CI (Безперервна інтеграція)/CD (Безперервне розгортання) багатьма підприємствами. Введення агентів IAST в SDLC (Життєвий цикл програмного забезпечення) часто складніше, але воно того варте.

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

Який продукт IAST обрати?

Вибір інструмента IAST повинен ґрунтуватися на конкретних вимогах. Якщо компанія розробляє програми на PHP, Java або .NET, то Acunetix з AcuSensor є дуже хорошим кандидатом, тому що це інструмент DAST з агентом IAST. Таким чином, це може значно скоротити час усунення проблеми, надаючи точну інформацію.

Оскільки AcuSensor ™ надає Acunetix додатково й контекст, він може сканувати ще точніше і додатково знижує і без того низький показник помилкових позитивних результатів. Плюс, може ідентифікувати вразливості до конкретних рядків коду (для додатків PHP) або надати детальні сліди стека (для програм ASP.NET та Java). Крім того, для виявлених уразливостей SQL Injection AcuSensor ™ також надає попередній перегляд SQL запитів, як вони виконувалися б базою даних.

Джерело: https://www.acunetix.com/blog/web-security-zone/what-is-iast-interactive-application-security-testing/