Как избежать «слепых зон» API при тестировании безопасности веб-приложений

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, – это единственный способ избежать огромных «слепых зон» в системе безопасности.

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