Как обеспечить безопасность API через прокси-серверы: обзор методов

Сегодня поговорим простым языком как обеспечить безопасность своих API, зачем это нужно и что/кто вообще угрожает этим API.
Как обеспечить безопасность API через прокси-серверы: обзор методов
Иллюстрация: Вера Ревина/Клерк.ру

Что такое API 

API (application programming interface) – это часть программы, которая отвечает за взаимодействие с другими программами. 

Например, у вас есть интернет магазин по продаже мебели. У интернет магазина может быть API для запроса товарных остатков или каталога. То есть это такая «точка» в сети Интернет, куда может обратиться любой желающий и спросить «а сколько у вас сейчас стоит диван с артикулом 1203432?»

Как правило пользователями  API являются другие программы, а не обычные пользователи. 

Например, в API вышеупомянутого магазина может обращаться сайт-агрегатор и автоматизировано собирать информацию о ценах в других интернет-магазинах. 

Простым языком API это такая «розетка» к которой можно подключиться и узнать какие то данные из другой ИТ-системы. Или еще проще API это сайт, но без интерфейса, на нем нет кнопок и окошек, это сайт для других программ. 

Используйте возможности самого быстрого и надежного в мире прокси API, чтобы за считанные секунды обойти любые ограничения по местоположению и анонимно провести сравнение цен, сопоставление продуктов, защиту бренда, исследование рынка, привлечение потенциальных клиентов и многое другое. 

Разграничение прав доступа

Теперь поговорим про безопасность. Казалось бы, API отдаёт информацию об остатках на складе и что тут такого? 

Но представим ситуацию, что не каждому пользователю можно видеть информацию о всех товарах. Это один из аспектов безопасности – разграничение прав доступа. Каждая роль видит только свою часть информации. Такие же правила доступа должны быть установлены и для API. А бывают такие ситуации, когда доступ к API возможен только ограниченному кругу лиц. 

Для примера возьмем API интернет-банка. Ситуация будет выглядеть фарсом, если любой желающий сможет обращаться к API и переводить деньги с одного счета на другой. Чтобы такого не происходило, используются специальные ключи — токены. Только пользователи / программы, которые передали вместе с обращением к API свой токен могут выполнить запросы к этому API.

DDOS-атаки

Следующей угрозой рассмотрим DDOS-атаки. Ок, вы сделали интернет магазин, доступ разграничили, лишний не пройдет. Но никто не отменял конкурентов, которым что нужно? Правильно, чтобы сайт перестал работать, ведь когда не работает ваш сайт, конкуренты зарабатывают больше. 

На простом языке, DDOS-атака это как если бы вы общались одновременно с десятками человек, не по-очереди, а одновременно пытались ответить очень большому количеству людей. Так и с сайтами в сети Интернет, если запустить сайт в сотнях тысяч браузеров, сервер с сайтом не справится с нагрузкой и перестанет отвечать на запросы пользователей.

Вредоносные запросы

Допустим, никто не выдает на ваш сайт бешеную нагрузку, все ок, переживать не о чем? На самом деле DDOS-атаки это довольно «топорный» метод атаки, при должном усердии можно заблокировать атакующих. 

Но злоумышленники могут работать и более «тонко». Практически любой сайт / API , подвержен уязвимостям. Какие-то уязвимости более известны и исходят из ошибок разработчиков операционных систем, языков программирования, а есть уязвимости которые порождает разработчик сайта / API. 

Но суть одна, злоумышленник может нарушить работу вашего сайта / API выполнив специальный «вредоносный» код, которые будет эксплуатировать уязвимости вашего ПО. 

Результатом такой атаки могут быть временный вывод из строя ПО, фальсификация данных, и даже полная утечка / удаление данных. 

Шифрование данных 

Следующим важным аспектом в обеспечение безопасности рассмотрим вопрос шифрования данных

Допустим, вы подключились к незнакомой точке Wi-Fi и решили заполнить форму на сайте, передав свои персональные данные. Казалось бы, в чем риск. Но одной из самых распространенных атак в сети является «атака посредника». Простыми словами, вы думаете, что общаетесь с оригинальным сайтом, но на самом деле вы работаете с подменным сайтом, который злоумышленник продемонстрировал вам через уязвимую точку Wi-Fi.

Одним из способов защиты от такого вида атак можно порекомендовать использовать VPN-сервисы и стараться избегать подключения к «бесплатным» Wi-Fi точкам. 

Как видим, есть целые классы угроз, которые могут нарушить работу вашего сайта / API. Тогда сразу возникает вопрос: «А как этот интернет еще продолжает работать, если вокруг все такое не безопасносное?»

Давайте разбираться. 

Методы обеспечения безопасности

Начнем с самого простого. Ваш сайт или API , могут быть не опубликованы в глобальной сети и работать в сети локальной, корпоративной. И конечно, кроме глобального Интернета есть множество других сетей.

Например, локальные сети компаний, в которые просто так с любого браузера не зайдешь.

Это кардинальные меры, как говорится если «у вас нет сайта, то вам его и не взломают». Но сегодня поговорим о кейсах, когда ваше API опубликовано в сети и доступно практически любому желающему.

Одним из надежных способ обеспечить безопасность ваших сайтов и API это использование прокси-серверов.

Рассмотрим основные преимущества таких решений.

Фильтрация трафика

Если все очень сильно упростить, Интернет работает так. Есть сервер, на котором хранится код сайта , и есть браузеры мобильные и десктопные, которые посылают запрос к серверу, получают код сайта и отрисовывают его в своем окне. 

Между пользователем и сайтом или между API происходит обмен данными.

Прокси-серверы позволяют анализировать такой трафик, отсекать вредоносные запросы и сохраняют вашу приватность.

Авторизация и аутентификация и ограничение доступа

В ИТ-сфере, как и любой другой инженерной среде есть множество способов решения одних и тех же задач. Выше мы обсуждали, для чего нужна ролевая модель доступа к API и сервисам. Такую ролевую модель можно реализовать как на уровне кода API / сайта. Так и делегировать задачи авторизации и аутентификации прокси-серверам. 

Помимо задач авторизации бывают задачи ограничения доступа к API на основе IP-адресов, геолокации или других параметров для повышения безопасности. В таких задачах также широко используются прокси-серверы. 

К дополнительным функциям прокси-серверов можно отнести:

  • обеспечение дополнительного шифрования данных, передаваемых через API, для защиты конфиденциальности и целостности информации;

  • повышение отказоустойчивости и масштабируемости через использование прокси-серверов, позволяющих сбалансировать нагрузку на различные серверы API.

Когда в организациях приходят к решению -- нам точно понадобятся прокси-серверы, сразу приходят, как правило, к следующему выбору: 

  • собрать свою сеть прокси-серверов самостоятельно

  • арендовать у вендора.

Попробуем сравнить каждый из подходов и найти свои плюсы и минусы в каждом из них.

Собственная прокси-сеть

✅возможно, получится сэкономить;

✅полный контроль над всем трафиком, насколько это возможно;

✅гибкие возможности в настройке собственной инфраструктуры.

❌сложность в настройке и масштабировании;

❌высокая стоимость поддержки актуальности инфраструктуры, т.е. нужно постоянно думать, а все ли уязвимости мы закрываем?

Арендованная прокси-сеть

✅простота настройки;

✅простота масштабирования;

✅высокая скорость сети;

✅делегирование вопроса поддержания актуальности обновлений – провайдеру сети.

❌потребует некоторых регулярных вложений в аренду сети;

❌более ограниченные, по сравнению с собственной сетью, возможности по настройке 

Подведем итог

Если у вас бизнес в своей основной деятельности не занимается ИТ-направлением, мы бы рекомендовали обратиться к провайдерам прокси-сетей

Если же у вас есть собственный штат системных администраторов, стоит задуматься о создании своей инфраструктуры. Хотя, все конечно, зависит от задачи. Если перед вами стоит задачи масштабного парсинга с прокси-сетями от специальных провайдеров вряд ли смогут конкурировать сети собранные для более простых задач.

Начать дискуссию