8 рекомендаций по безопасности API для защиты конфиденциальных данных.
8 рекомендаций по безопасности API для защиты конфиденциальных дан.
Внедрение ноого
К сожалению, ноые API-интерфейсы также яляются отличной ноостью для хакеро, поскольку они предосталяют еще один способ использоания информации, хранящейся на аших серерах. Цель API – облегчить передачу данных, часто частных, между ашей системой и нешними пользоателями. Следоательно, плохо обслужиаемый и небезопасный API – это незаблокироанные орота для аших конфиденциальных данных.
Если это покажется паникером, знайте, что
Успешные зломы API затронули такие компании, как
Что такое безопасность API?
Безопасность API – это практика защиты API от кибератак и непраомерного использоания. Надлежащие меры безопасности API гарантируют, что се обрабатыаемые запросы к API поступают из законных источнико, что се обработанные запросы дейстительны, что се отеты от API защищены от перехата или использоания.
Хотя
Трудно переоценить потенциальный эффект успешной атаки. Хотя финансоые последстия могут быть значительными, ущерб ашему бренду может быть непопраимым. Вы наерняка потеряете доерие клиенто, а также доерие компаний, использующих аш API. Сторонние интегрироанные приложения могут даже пострадать от расширения.
Тем не менее, API ближайшее ремя не исчезнут. Практически любому онлайн-приложению, стремящемуся интегрироаться с другими, потребуется один или несколько API-интерфейсо, и каждый ноый еб-API предосталяет хакерам еще одну озможность для использоания личных данных. Следоательно, любой, кто контролирует интеграцию программного обеспечения, должен понимать надлежащие меры безопасности, специфичные для API.
Еще одна ещь: если аша организация создает API, скорее сего, это
Хотя любой API подержен риску нарушения безопасности, я осноном буду обсуждать здесь REST API, чтобы се было легко усаиаемым.
Типы кибератак API
Прежде чем мы рассмотрим лучшие практики по усилению защиты ашего API, нам нужно знать, с чем мы сталкиаемся. Вот наиболее распространенные атаки на API, о которых ам следует знать:
Украденная аутентификация
Один из простейших способо доступа к API – перехатить личность аторизоанного пользоателя. Например, если токен аутентификации попадает чужие руки, его можно использоать для доступа к ресурсам со злым умыслом, но при этом он ыглядит легитимным. Киберпреступники также будут пытаться угадыать пароли аутентификации или нарушать слабый процесс аутентификации, чтобы получить доступ.
Атака челоека посередине
Атака «челоек посередине» (MITM) происходит, когда хакер перехатыает запрос или отет API между конечным пользоателем и API. Они могут украсть конфиденциальное содержимое этого сообщения (например, учетные данные для хода учетную запись или платежную информацию) или изменить содержимое запроса / отета.
Кодоые инъекции
API-интерфейсы с пробелами аутентификации и проерке также уязимы для инъекций кода, когда злоумышленник отпраляет сценарий на серер приложения через запрос API. Этот сценарий предназначен для раскрытия или удаления данных, несения ложной информации и / или пореждения нутренних компоненто приложения. Вы также уидите, что используется термин «недрение SQL» – это недрение кода, ыполняемое
Атака отказа обслужиании
Атаки типа «отказ обслужиании» (DoS) перегружают ресурсы серера запросами API, чтобы замедлить, сломать или ыести из строя еб-серер. Часто эти атаки соершаются из нескольких редоносных источнико одноременно – это распределенная атака типа «отказ обслужиании» (DDoS).
Рекомендации по безопасности API
- Реализуйте аутентификацию.
- Реализуйте аторизацию.
- Подтердите се запросы.
- Зашифруйте се запросы и отеты.
- Включайте отеты только необходимую информацию.
- Ограничьте количесто запросо API и устаноите коты.
- Журнал актиности API.
- Проедите тесты безопасности.
Хотя целью может быть любая организация с API, каждая из них будет реализоыать API и безопасность API по-разному. API, предосталяющий доступ к платежной информации, требует больше мер предосторожности, чем, скажем, серис обмена изображениями.
Вот почему следующие соеты яляются общими и применимы к любому приложению, реализующему REST API. Следуя этим рекомендациям, ы значительно снизите риски, сязанные с поддержкой API, незаисимо от ашей ниши.
Также обратите нимание, что менеджер API или инструмент шлюза будет обрабатыать или помогать ыполнять приеденные ниже рекомендации. Тем не менее, это не поод терять бдительность. В случае успешной атаки на аш API пострадашие будут инить ас, а не инструменты, которые ы используете. Вы сегда должны быть курсе того, какими ашими данными можно делиться, как эти данные находятся опасности и как ы можете их защитить.
1 Реализуйте аутентификацию.
Перед обработкой запроса API ыполняет аутентификацию – ему необходимо проерить личность пользоателя или программы, отпраишей запрос.
Обычно API-интерфейсы аутентифицируются с помощью пароля, многофакторной аутентификации и / или токена аутентификации, который предсталяет собой строку симоло, которая служит уникальным идентификатором для пользоателя. Для аутентификации запроса с помощью токена API сопосталяет токен, отпраленный запросе, с токеном, хранящимся его базе данных. Токены помогают организации отслежиать тех, кому доеряют ее ресурсы.
Сегодня протокол
построен на HTTP, что также отлично подходит для REST API. Хотя нутренняя работа ыходит за рамки этой статьи, на базоом уроне дает администраторам API озможность предосталять токены аутентификации утержденным третьим сторонам. Администраторы могут устаналиать собстенные праила доступа, которые определяют, какие запросы API разрешены, заисимости от источника запроса.
2 Реализуйте аторизацию.
После проерки личности пользоателя, отпраишего запрос, API необходим способ предосталения доступа только аторизоанным ресурсам и методам. Например, пользоателю может быть разрешен доступ к API, но если ему не разрешено добалять информацию базу данных приложения с помощью метода POST, любой запрос на это следует отклонить. Информация аторизации также может содержаться запросе иде токена.
В отличие от некоторых других типо API, REST API должны аутентифицироать и аторизоать каждый запрос, сделанный на серер, даже если несколько запросо поступают от одного и того же пользоателя. Это сязано с тем, что сязь REST не имеет состояния, то есть каждый запрос может быть понят API отдельно, без информации из предыдущих запросо.
Аторизация может регулироаться ролями пользоателей, каждая из которых имеет разные разрешения. Как праило, разработчики API должны придержиаться принципа наименьших приилегий, согласно которому пользоатели должны иметь доступ только к ресурсам и методам, необходимым для их роли, и не более того. Предарительно определенные роли упрощают наблюдение и изменение разрешений пользоателей, снижая ероятность того, что злоумышленник сможет получить доступ к конфиденциальным данным.
3 Подтердите се запросы.
Как уже упоминалось, иногда запросы из соершенно достоерных источнико могут быть попытками злома. Следоательно, API нуждаются праилах, чтобы определить, яляется ли запрос дружестенным, дружестенным, но недейстительным или редным, например, попыткой недрения редоносного кода.
Запрос API обрабатыается только после того, как его содержимое проходит тщательную проерку – протином случае запрос никогда не должен достигать уроня данных приложения.
4 Зашифруйте се запросы и отеты.
Чтобы предотратить атаки MITM, любая передача данных от пользоателя к сереру API или наоборот должна быть должным образом зашифроана. Таким образом, любые перехаченные запросы или отеты бесполезны для злоумышленника без праильного метода дешифроания.
Поскольку API-интерфейсы REST используют HTTP, шифроание может быть достигнуто с помощью протокола TLS или его предыдущей итерации,
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. Хотя устранить се угрозы неозможно, приеденные ыше принципы необходимы любой организации, которая заботится о соей репутации и, что более ажно, о соих клиентах.
Источник записи: