API є важливою частиною сучасної розробки вебдодатків і складають значну частину загальної поверхні вебатак. Далі про те, як Invicti допомагає організаціям зробити тестування вразливостей API невіддільною частиною безпечного SDLC.
Регулярне завчасне тестування
Експерти галузі погоджуються, що тестування безпеки додатків має починатися якомога раніше в процесі розробки. Зсув вліво (shift left) – це звичайний термін для цієї практики, хоча, кращим терміном було б розширення вліво (extending left) – тестування безпеки дійсно повинно охоплювати всі фази життєвого циклу додатка, аж до виробництва включно. Незалежно від назви, зрозуміло, що зупинка конвеєра розробки для очікування результатів тестування безпеки не є прийнятним варіантом в епоху гнучких DevOps, і що сучасний AppSec повинен бути невіднятною частиною процесу розробки програмного забезпечення.
В реальному світі проведення тестування безпеки вебдодатків таким чином, щоб охопити всю поверхню атаки, одночасно виконуючи такі вимоги, як точність тестів і ефективна інтеграція робочого процесу, є дуже складним завданням. Крім того, що сучасні додатки – це набагато більше, ніж просто набір вебсторінок, це складні комбінації вебсервісів, які взаємодіють за допомогою прикладного програмного інтерфейсу, або API. Тож як ці вебінтерфейси вписуються в загальний стан безпеки?
Перевірка всього, а не лише видимих сторінок
Існує багато різних способів тестування безпеки програмного забезпечення, але будь-який набір інструментів AppSec повинен включати принаймні динамічне тестування (DAST) у вигляді сканування вразливостей у поєднанні з періодичним тестуванням на проникнення (penetration testing). Це надає найбільш реалістичне і повне уявлення про стан системи безпеки, оскільки досліджується середовище додатків, використовуючи ті ж методи та точки входу, які є в розпорядженні зловмисників. Всі потенційні точки входу разом складають поверхню атаки – і це охоплює як користувацький інтерфейс, так і всі відкриті API-інтерфейси.
При вивченні вебдодатка ззовні першим кроком є запуск сканера, щоб виявити всі елементи, які потрібно протестувати. Тут виникає перша велика різниця між вебсайтами та вебінтерфейсами: не можна сканувати API, так само як вебсторінку. Єдиний спосіб бути впевненим, що відбувається повне тестування всіх вебінтерфейсів API в середовищі – це завжди мати найновіші API дефініції, які створюються і підтримуються розробниками.
У великих середовищах розробки, які включають тисячі інтерфейсів API, нереально просити у розробників файли дефініцій API кожного разу, коли потрібно запустити сканування вразливостей, тим більше, що конвеєри розробки значною мірою автоматизовані, і будь-яке мануальне втручання забирає багато часу. Реалістичним способом розв’язання цієї проблеми є автоматичне зберігання та оновлення файлів дефініцій API в центральному сховищі, звідки інтегрований сканер вразливостей може отримувати їх перед кожним скануванням. Однак, щоб повною мірою використовувати ці дані в робочому процесі тестування безпеки, потрібно автоматизоване рішення для тестування безпеки додатків, яке може не тільки інтегруватися з життєвим циклом розробки, але й запускати тести на вразливості для відповідних типів API.
Перетворення API на невіднятну частину безпечного SDLC
У світі, де вебдодатки надсилають набагато більше даних через API, ніж через користувацькі інтерфейси, тестування безпеки додатків має постійно вдосконалюватись, інакше існує ризик залишити значну частину поверхні вебатак неперевіреною і вразливою для атак. Навіть API, які є внутрішніми за своєю суттю, часто стають доступними для завзятих зловмисників, відкриваючи прямі канали до внутрішніх систем, що зберігають конфіденційні дані. Крім того, API спеціально розроблені для тихого та автоматизованого доступу, що полегшує їхній злам, не викликаючи підозр.
Знаючи все це, зловмисники зміщують свою увагу на атаки на API, сподіваючись отримати доступ до незахищених вебінтерфейсів і сервісів для прямого доступу до конфіденційних даних або виконання неавтентифікованих операцій. Кіберзлочинці обходять інтерфейси та атакують дані все більше, оскільки багато вебдодатків мають безліч незалежних вебсервісів на back-end системах.
Програма AppSec, яка безпосередньо охоплює тестування вразливостей API, – це єдиний спосіб уникнути величезних «сліпих зон» в системі безпеки.







