Безопасность API: как в интерфейсах находят уязвимости
Чтобы понять, что такое уязвимость в программном интерфейсе приложений, можно представить такую картину. Злоумышленник делает в ресторане сразу несколько тысяч заказов. Разумеется, к его столику сбегается весь персонал, который олицетворяет API, и пытается записать все пожелания относительно блюд. Царит небывалая суматоха, остальные клиенты уныло ждут своей очереди, а между тем напарник мошенника незамеченным вскрывает и обчищает сейф с выручкой. Затем виновник неразберихи внезапно отказывается от своих намерений и быстро уходит.
Что позволило двум темным личностям безнаказанно совершить преступление? Отсутствие внятных инструкций для персонала при возникновении подобных инцидентов и недостаточная защищенность хранилища. Это и есть уязвимость, полную аналогию которой можно обнаружить в сыром коде API или пропустить в уже готовом.
API – это канал взаимодействия со сложными информационными системами. Поэтому ни один разработчик не застрахован от того, чтобы недооценить отдельный структурный элемент, который в конечном итоге создаст проблему безопасности. Как же с этим бороться? Для этих целей служит специальная процедура.
Тестирование на проникновение API
В ходе отработки метода (API Penetration Testing), применяя контролируемые и безопасные кибератаки, можно оценить степень защищенности API и выявить наиболее успешные направления для эксплуатации уязвимостей:
- потенциал для злоупотребления имеющимися методами;
- варианты обхода процедур аутентификации и авторизации;
- возможности применения отдельных способов внедрения команд;
- определение успешности межсайтового скриптинга;
- способность посредством API заставить браузер отрендерить страницу с вредоносным кодом и так далее.
Таким образом удается выявить самые крупные уязвимости как в автономной структуре API, так и возникающие при интеграции API с другой информационной системой.
Инструменты для тестирования на проникновение
Можно выделить несколько приложений, которые используются, чтобы провести процедуры поиска уязвимостей, и являются не только популярными, но и могут быть быстро освоены благодаря большому количеству учебного материала на любой площадке в интернете. Вот простые инструкции для трех самых востребованных продуктов. Чтобы разобраться, даже не потребуются иллюстрации – достаточно взглянуть на интерфейс приложения.
Postman
После того как в адресную строку HTTP-клиента будет помещен API URL, потребуется:
- из выпадающего списка рядом выбрать один из методов: GET, POST, OPTION и т. д.;
- перейдя во вкладку Body, ввести API-запрос и затем установить API-Заголовки в позицию «Заголовки»;
- нажать кнопку **Send **и получить ответ API.
SoapUI
В этом приложении точно так же, как и в предыдущем, можно указывать API URL, составлять запросы API, задавать заголовки и генерировать API-ответы.
BorpSuite
Интегрированная платформа для аудита веб-приложений, позволяющая проводить проверки как в ручном, так и в автоматическом режимах. Инструмент можно настроить для захвата запросов API через Postman и/или SoapUI и/или для сбора трафика целевого мобильного или веб-приложения. Конфигурируется BorpSuite так:
- в окне утилиты нужно перейти во вкладку **Proxy **и далее во вкладку Options, ввести IP-адрес хоста 127.0.0.1 и прописать порт 8080;
- перейти во вкладку **Intercept **и нажать кнопку Intercept is on, позволяющую начать процесс перехвата трафика.
Помимо выявления уязвимостей, важно обеспечить надежную точку доступа к своему API для других пользователей. Маркетплейс RICAPI гарантирует защиту от любых самых современных киберугроз и обеспечивает наилучшие условия функционирования за счет балансировки трафика.