WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

8 рекомендаций по безопасности API для защиты конфиденциальных данных

918

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

К сожалению, новые API-интерфейсы также являются отличной новостью для хакеров, поскольку они предоставляют еще один способ использования информации, хранящейся на ваших серверах. Цель API – облегчить передачу данных, часто частных, между вашей системой и внешними пользователями. Следовательно, плохо обслуживаемый и небезопасный API – это незаблокированные ворота для ваших конфиденциальных данных.

Если это покажется паникером, знайте, что в результате кибератак были обнаружены миллиарды записей, многие из которых связаны с небезопасными API:

8 рекомендаций по безопасности API для защиты конфиденциальных данных

Успешные взломы API затронули такие компании, как Facebook, Venmo, Twitter и даже Почтовая служба США. Чтобы не попасть в этот список, вам необходимо интегрировать принципы безопасности API в процесс планирования и сборки. Итак, в этом посте мы объясним основы безопасности API, включая распространенные угрозы API и лучшие способы защиты от них.

Что такое безопасность API?

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

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

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

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

Еще одна вещь: если ваша организация создает API, скорее всего, это REST API. API-интерфейсы REST передают данные через протокол передачи гипертекста (HTTP), тот же метод, который используется для отправки HTML-документов в браузеры (которые мы рассматриваем как веб-сайты). Около восьми из 10 API сегодня являются RESTful, включая общедоступные API и внутренние API (например, используемые в микросервисах ).

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

Типы кибератак API

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

Украденная аутентификация

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

Атака человека посередине

Атака «человек посередине» (MITM) происходит, когда хакер перехватывает запрос или ответ API между конечным пользователем и API. Они могут украсть конфиденциальное содержимое этого сообщения (например, учетные данные для входа в учетную запись или платежную информацию) или изменить содержимое запроса / ответа.

Кодовые инъекции

API-интерфейсы с пробелами в аутентификации и проверке также уязвимы для инъекций кода, когда злоумышленник отправляет сценарий на сервер приложения через запрос API. Этот сценарий предназначен для раскрытия или удаления данных, внесения ложной информации и / или повреждения внутренних компонентов приложения. Вы также увидите, что используется термин «внедрение SQL» – это внедрение кода, выполняемое в базе данных SQL.

Атака отказа в обслуживании

Атаки типа «отказ в обслуживании» (DoS) перегружают ресурсы сервера запросами API, чтобы замедлить, сломать или вывести из строя веб-сервер. Часто эти атаки совершаются из нескольких вредоносных источников одновременно – это распределенная атака типа «отказ в обслуживании» (DDoS).

Рекомендации по безопасности API

  1. Реализуйте аутентификацию.
  2. Реализуйте авторизацию.
  3. Подтвердите все запросы.
  4. Зашифруйте все запросы и ответы.
  5. Включайте в ответы только необходимую информацию.
  6. Ограничьте количество запросов API и установите квоты.
  7. Журнал активности API.
  8. Проведите тесты безопасности.

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

Вот почему следующие советы являются общими и применимы к любому приложению, реализующему REST API. Следуя этим рекомендациям, вы значительно снизите риски, связанные с поддержкой API, независимо от вашей ниши.

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

1 Реализуйте аутентификацию.

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

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

Сегодня протокол OAuth является общепринятым стандартом аутентификации пользователей API. Первоначально OAuth был разработан для входа в социальные сети, позволяя пользователям входить в сторонние приложения с паролями, не раскрывая свои пароли. Например, OAuth позволяет мне использовать свой пароль Google для входа на сторонний веб-сайт, такой как LinkedIn, без необходимости хранить мой пароль в LinkedIn.

OAuth построен на HTTP, что также отлично подходит для REST API. Хотя внутренняя работа OAuth выходит за рамки этой статьи, на базовом уровне OAuth дает администраторам API возможность предоставлять токены аутентификации утвержденным третьим сторонам. Администраторы могут устанавливать собственные правила доступа, которые определяют, какие запросы API разрешены, в зависимости от источника запроса.

2 Реализуйте авторизацию.

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

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

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

3 Подтвердите все запросы.

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

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

4 Зашифруйте все запросы и ответы.

Чтобы предотвратить атаки MITM, любая передача данных от пользователя к серверу API или наоборот должна быть должным образом зашифрована. Таким образом, любые перехваченные запросы или ответы бесполезны для злоумышленника без правильного метода дешифрования.

Поскольку API-интерфейсы REST используют HTTP, шифрование может быть достигнуто с помощью протокола TLS или его предыдущей итерации, протокола Secure Sockets Layer (SSL). Эти протоколы предоставляют S в «HTTPS» («S» означает «безопасный») и являются стандартом для шифрования веб-страниц и обмена данными REST API.

TLS / SSL шифрует данные только при их передаче. Он не шифрует данные, находящиеся за вашим API, поэтому конфиденциальные данные также должны быть зашифрованы на уровне базы данных.

5 Включайте в ответы только необходимую информацию.

Подобно тому, как вы могли случайно раскрыть секрет, рассказывая историю другу, ответ API может раскрыть информацию, которую могут использовать хакеры. Чтобы предотвратить это, все ответы, отправляемые конечному пользователю, должны включать только информацию об успешном или неудачном выполнении запроса, запрошенный ресурс (если таковой имеется) и любую другую информацию, непосредственно связанную с этими ресурсами.

Другими словами, избегайте «чрезмерного совместного использования» данных – ответ – это шанс для вас непреднамеренно раскрыть личные данные либо через возвращенные ресурсы, либо через подробные сообщения о состоянии.

6 Ограничьте количество запросов API и установите квоты.

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

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

Оба метода должны разрешать обычные запросы API, но предотвращать потоки трафика, предназначенные для прерывания, а также неожиданные всплески запросов в целом.

7 Журнал активности API.

До этого момента мы рассмотрели превентивные методы противодействия угрозам API. Однако в случае успешного взлома вашей системы вам понадобится способ отследить источник инцидента, чтобы вы могли исправить и сообщить о проблеме.

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

8 Проведите тесты безопасности.

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

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

  • Могут ли только аутентифицированные пользователи получить доступ к вашим конечным точкам?
  • Предоставляется ли пользователям доступ только к необходимым конечным точкам в зависимости от их ролей?
  • Верная ли информация возвращается в ответах на каждый потенциальный запрос?
  • Отклоняются ли доброкачественные, но недействительные запросы?

Однако вам также необходимо смоделировать внедрение кода, MITM, DoS и атаки с украденным паролем на ваши системы в надлежащей среде тестирования. Обратите внимание на следующие вопросы в своих тестах:

  • Может ли моя проверка подлинности встречать попытки взлома методом перебора?
  • Как мой API справляется со значительными всплесками запросов?
  • Что, если аутентифицированный пользователь отправит вредоносный сценарий или файл через запрос?
  • Все ли передаваемые данные зашифрованы? Запрещены ли запросы без TLS / SSL (т.е. с HTTP, а не HTTPS)?
  • Что делать, если запрос или ответ будет перехвачен? Как мой API и пользователь узнают?

Тестирование – это не одноразовый процесс – его следует выполнять на регулярной основе, особенно при обновлении вашего API.

Защитите своих пользователей, защитив свой API

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

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

Источник записи: https://blog.hubspot.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее