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

Дні програмного забезпечення, такого як qmail Деніела Бернштейна, давно пройшли. Коли в 1995 році блискучий математик Бернштейн побудував свій популярний поштовий сервер, він написав все з нуля – кожну функцію. Він взагалі не використовував сторонній код. Це був геніальний підхід Бернштейна до безпеки, який дуже добре спрацював – qmail дуже довгий час не мав ніяких вразливостей.

Сьогодні такий підхід неможливий, тому що на написання веб-додатка з нуля у вас піде в сто разів більше часу. Тільки уявіть, що ваші фронтенд-розробники застрягли без Angular або jQuery, а бекенд-розробники повинні вручну писати всі функції для доступу до баз даних.

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

Ось чому вам потрібен аналіз програмних компонентів (SCA – software composition analysis).

Традиційний аналіз програмних компонентів

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

Інструменти SCA працюють дуже просто. Зазвичай вони взаємодіють з менеджерами пакетів програмного забезпечення, які використовуються в поточних середовищах розробки для імпорту компонентів. Вони перевіряють всі імпортовані програмні пакети і порівнюють цю інформацію з існуючими базами даних вразливостей. Наприклад, вони можуть визначити, що ваш диспетчер пакетів імпортує jQuery 2.2.4, а потім знайти CVE-2015-9251, в якому говориться, що версії jQuery до 3.0.0 вразливі до міжсайтового скриптингу (XSS).

Динамічний аналіз програмних компонентів

Динамічний підхід до SCA – це нова концепція, представлена Acunetix, яка включає в себе об’єднання можливостей IAST і SCA разом. AcuSensor, модуль Acunetix IAST, має доступ до інформації про встановлені пакети програмного забезпечення. Таким чином, він може відразу ідентифікувати всі компоненти, які ви використовуєте для свого веб-додатка.

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

Що ви отримуєте з динамічним SCA

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

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