В этой статье пойдет речь о 10 популярных программах для тестирования безопасности API. Читатели узнают особенности и характерные черты инструментов.
Введение
Интерфейсы прикладного программирования (API) являются важнейшим компонентом большинства современных программ и приложений. На самом деле, деплои в облаке и мобильные приложения сейчас сильно полагаются на API, поскольку они предназначены для управления различными элементами. Многие крупные компании, особенно те, которые ведут активную деятельность в Интернете, имеют сотни или даже тысячи API, встроенных в их инфраструктуру. Количество API-интерфейсов будет только увеличиваться с течением времени.
Гениальная особенность API заключается в том, что многие из них представляют собой всего лишь крошечные фрагменты кода. Более того, все они спроектированы так, чтобы быть небольшими и незаметными с точки зрения их требований к сетевым ресурсам. Стоит отметить, что API также гибкие в использовании и способны продолжать работать и выполнять свои основные функции даже если программа, с которой они взаимодействуют, подвержена исправлениям и доработкам.
Какими бы замечательными ни были API, у них тоже есть свои недостатки. Поскольку они могут быть спроектированы практически для чего угодно (от повторения отдельных функций снова и снова до разумного управления важнейшими аспектами различных программ или платформ), их создание практически не регулируется никакими стандартами и нормами. Большинство API-интерфейсов уникальны – многие организации создают их новые версии по мере необходимости. Это может стать настоящим кошмаром для отдела безопасности фирмы.
Еще одна особенность, из-за которой API-интерфейсы привлекательны для злоумышленников, заключается в том, что многие из них имеют избыточные разрешения. Даже API, которые выполняют всего несколько функций, часто имеют привилегии администратора. Многие разработчики просто уверены в том, что такой крошечный API не сможет причинить никакого вреда. Хакеры компрометируют API-интерфейсы, а затем используют полученные учетные данные для достижения новых целей, таких как эксфильтрация данных или глубокое проникновение в сеть. Согласно исследованию в сфере ИБ-безопасности, проведенному Akamai, почти 75% современных атак на учетные данные были нацелены на уязвимые API.
Проблема только обостряется с годами. По данным Gartner, к 2022 году уязвимости, связанные с API, будут наиболее часто связаны с атаками во всех отраслях кибербезопасности.
Инструменты тестирования API
Наличие критического сетевого и программного компонента на прицеле у злоумышленников уже само по себе плохо, но с API ситуация еще более нестабильна из-за отсутствия стандартов, связанных с их созданием. Многие организации даже не знают, сколько API они используют, какие задачи они выполняют и насколько высокий уровень разрешений они имеют. Следовательно, возникает важный вопрос, имеются ли у этих API какие-либо уязвимости.
Отраслевые и частные компании разработали инструменты и платформы для тестирования API, которые помогут ответить на данный вопрос. Некоторые программы предназначены для выполнения одной функции, например, определения причин неправильной настройки API-интерфейсов Docker. Другие – используют более целостный подход ко всей сети, находят все доступные API-интерфейсы, а затем предоставляют информацию о том, что они делают и почему они могут быть уязвимыми или по ошибке обладать высокими разрешениями.
Доступно несколько известных коммерческих платформ тестирования API, а также большой пул бесплатных или недорогих инструментов с открытым исходным кодом. Коммерческие инструменты, как правило, имеют больше возможностей в плане поддержки и могут быть развернуты удаленно через облако или даже в качестве службы. Некоторые программы с открытым исходным кодом могут быть столь же хороши и пользоваться поддержкой сообщества пользователей, которые их создали. Какой из инструментов выберет пользователь, зависит от его потребностей, опыта в ИБ и бюджета.
Ниже представлены популярные на рынке коммерческие инструменты тестирования API и подробно описаны их главные функции. Читатели также познакомятся с инструментами с открытым исходным кодом, которые заслуживают их внимания не меньше.
Коммерческие инструменты и платформы для тестирования API
APIsec
Платформа APIsec работает как инструмент тестирования на проникновение, предназначенный для API. В то время как многие программы могут сканировать API на наличие распространенных уязвимостей для типичных атак, таких как инъекции скриптов, APIsec проводит стресс-тестирование каждого аспекта, чтобы гарантировать, что все (от основной сети до конечных точек, получающих к ней доступ) защищено от недостатков в коде.
Одним из больших преимуществ APIsec является то, что он может быть развернут на этапе разработки во время программирования API. Полное сканирование приложений, которые находятся в процессе создания, занимает всего пару минут, а результаты сопоставимы с операциями тестирования на проникновение «старой школы», на выполнение которых раньше уходили дни или даже целые недели.
AppKnox
AppKnox готов предложить свою помощь тем, кто покупает и развертывает определенную платформу. С простым в использовании интерфейсом этот инструмент станет отличным выбором для организаций, в которых нет больших групп ИБ, разбирающихся в своих API. AppKnox начинает со сканирования, чтобы обнаружить все доступные API-интерфейсы либо в производственной среде, на конечных точках, либо везде, где они могут быть развернуты. После определения их местоположения специалисты могут решить, какие API-интерфейсы им следует оставить для дальнейшего тестирования.
AppKnox находит все уязвимости, которые могут привести к сбою или компрометации API. Таким образом, инструмент обнаруживает уязвимости, связанные с внедрением команд в HTTP-запросы, межсайтовой трассировкой и инъекциями SQL. AppKnox включает в себя полный анализ веб-серверов, баз данных и всех компонентов на сервере, которые взаимодействуют с API.
После сканирования API специалисты могут отправить полученные результаты для расширенного анализа исследователю в сфере ИБ. Фидбек обычно приходит в течение трех-пяти дней.
Data Theorem API Secure
Data Theorem API Secure был разработан таким образом, чтобы вписываться в любую среду непрерывной интеграции и непрерывной доставки/развертывания (CI/CD) для обеспечения постоянной безопасности API на каждом этапе разработки и в производственной среде. Его анализатор постоянно ищет в сети новые API-интерфейсы и может быстро идентифицировать неавторизованные или те, которые являются частью теневой ИТ-службы.
Анализатор непрерывно обновляет информацию о последних уязвимостях, обнаруженных в API, и проверяет защищенные активы. Он совместим как с локальными, так и с облачными средами, что дает возможность убедиться, что никакие API-интерфейсы не могут стать жертвами новейших угроз. Чтобы CI/CD-пайплайн работал корректно, Data Theorem API Secure может автоматически устранять обнаруженные проблемы, не требуя вмешательства человека. Таким образом, организации смогут защитить свои API-интерфейсы даже от новейших угроз, если они готовы мириться с высоким уровнем автоматизации.
Postman
Хотя Postman, безусловно, считается инструментом для тестирования API, он претендует на звание полноценной платформы для совместной работы во время создания безопасных API. Программа используется миллионами разработчиков, работающих в средах Windows, Linux и iOS.
Postman предоставляет разработчикам полный набор инструментов API для использования при разработке, а также включает в себя безопасное хранилище кода, которое организации могут создать с течением времени. Использование защищенного хранилища может гарантировать, что будущие API-интерфейсы с самого начала будут соответствовать строгим стандартам безопасности компании.
Рабочие пространства, предоставляемые Postman, предназначены для того, чтобы помочь разработчикам правильно организовать свою работу. Инструмент также может выдавать предупреждения об угрозе безопасности, когда код приложения начинает отклоняться от установленного в организации шаблона или содержит потенциальную уязвимость. Таким образом, проблема может быть устранена задолго до того, как API попадет в производственную среду.
Smartbear ReadyAPI
В дополнение к тестированию безопасности платформа Smartbear ReadyAPI предназначена для оптимизации использования и производительности API в любой среде. Человек может выполнить анализ безопасности API одним щелчком мыши, однако инструмент также поддерживает другие важные функции, такие как просмотр того, насколько хорошо или плохо API сможет справиться с неожиданной нагрузкой или внезапным скачком в использовании.
Вы можете настроить ReadyAPI для генерации определенных видов трафика, который, как ожидается, будет обрабатывать API. Программа также может записывать трафик API в режиме реального времени, чтобы будущие тесты были более точными и адаптированными к уникальной среде, в которой они будут работать. Кроме того, платформа способна импортировать практически любую спецификацию или схему для тестирования API с использованием самых популярных протоколов. Изначально ReadyAPI поддерживает Git, Docker, Jenkins, Azure DevOps, TeamCity. Его также можно запускать в любой среде (от разработки до обеспечения качества, даже задолго до запуска API).
Synopsis API Scanner
Одна из причин, по которой сканер Synopsis API Scanner такой мощный, заключается в том, что в дополнение к тестированию безопасности он также включает в себя фаззинг (как часть целого набора глубоких сканирований и тестов). Во время фаззинга инструмент отправляет тысячи неожиданных, недопустимых или случайных входных данных в API. Это необходимо сделать, чтобы понять, как API будут вести себя при взаимодействии с такими вещами, как очень большие числа или нечетные команды.
Программа отображает все пути и логику работы API, включая все конечные точки, параметры, проверки подлинности и спецификации. Это дает разработчикам четкое представление о том, какие функции они смогут выполнять с помощью своих API, по сравнению с тем, что они могут делать в данный момент. Помимо этого, инструмент помогает понять, каким образом будут вести себя API в неожиданной ситуации, а также какие потенциальные уязвимости они имеют.
Инструменты для тестирования API с открытым исходным кодом
Хотя инструменты с открытым исходным кодом, как правило, не имеют такой же поддержки, как коммерческие платформы, опытные разработчики могут с легкостью их развернуть, часто даже бесплатно, для повышения уровня безопасности своих API.
Astra
Astra в основном концентрируется на передаче репрезентативного состояния (REST) API, что может быть чрезвычайно сложным, потому что они постоянно меняются. Учитывая, что архитектура REST подчеркивает масштабируемость при взаимодействии между компонентами, бывает сложно обеспечить безопасность API REST с течением времени. Astra помогает решить данную проблему, предлагая интеграцию с CI/CD-пайплайном, а также проверяя, чтобы наиболее распространенные уязвимости больше не появлялись в предположительно безопасном REST API.
crAPI
У инструмента crAPI не самое приятное название («crap» — «отстой»), но он эффективно выполняет свои функции по тестированию API. Это одна из немногих программ, которые могут подключаться к целевой системе и использовать базовый комплект тестов с целым набором дополнительных функций для изучения root-клиента. Программа может сделать это без необходимости создавать какие-либо новые соединения. Продвинутые разработчики API смогут сэкономить много времени с помощью crAPI.
Apache JMeter
Apache JMeter (неудивительно, что он написан на Java) изначально разрабатывался для тестирования нагрузки на веб-приложения, но недавно расширил свои возможности – теперь он подходит для анализа работы любого приложения, программы или API. Его функционал позволяет тестировать производительность как на статических, так и на динамических ресурсах. Инструмент может генерировать большую имитированную (но реалистичную) нагрузку трафика, чтобы разработчики смогли понять, как их API будут справляться с подобным давлением.
Taurus
Taurus дает возможность превратить автономные программы тестирования API в непрерывный процесс тестирования. На первый взгляд, инструмент прост в использовании. Пользователь устанавливает его, создает файл конфигурации и позволяет инструментам тестирования выполнять свою работу. Однако есть и дополнительные функции: возможность создавать интерактивные отчеты, более сложные скрипты для тестирования своих API-интерфейсов, настраивать критерии сбоя, чтобы немедленно приступить к устранению обнаруженных проблем.
Автор переведенной статьи: John Breeden II.
Больше интересного материала на cisoclub.ru. Подписывайтесь на нас: Facebook | VK | Twitter | Instagram | Telegram | Дзен | Мессенджер | ICQ New | YouTube | Pulse.