Pull to refresh

Comments 5

Не совсем понятно про десятый пункт (Underprotected APIs).
Что конкретно имеется в виду? (если можно на примере). Спасибо.
В принципе, все тоже самое что и остальные пункты вместе взятые, но упор делается на то, что api предназначено для использования программами (скрипты в браузере, другие серверы, мобильные приложения) а не человеком, плюс отсутствие UI и большой выбор форматов: swagger, rest, json, xml и т.д. усложняет тестирование.
По сути, то же самое, что остальные 9 пунктов, но применительно к API. Например:
  • Легко сделали веб-сервис, добавив аннотацию Resource к доменному классу, но забыв настроить права доступа к веб-сервису. Думали, что веб-сервис разрешает только чтение, а на самом деле он разрешает также изменение объекта
  • SQL инъекция в одном из полей JSON
  • На клиенте проверяют доступ, скрывая недоступные пункты меню, а на стороне API — не проверяют. Любой может послать API запрос к административной функции
  • При конвертации объекта в JSON также конвертируются лишние поля (или всё дерево объектов). Не только ИД и имя пользователя, а и пароль, адрес, номер паспорта и т. д.
Проверка значений, передающихся через API.

Example Attack Scenarios

Scenario #1: Imagine a mobile banking app that connects to an XML API at the bank for account information and
performing transactions. The attacker reverse engineers the app and discovers that the user account number is passed as part of the authentication request to the server along with the username and password. The attacker sends legitimate
credentials, but another user’s account number, gaining full access to the other user’s account.

Scenario #2: Imagine a public API offered by an Internet startup for automatically sending text messages. The API
accepts JSON messages that contain a “transactionid” field. The API parses out this “transactionid” value as a string and
concatenates it into a SQL query, without escaping or parameterizing it. As you can see the API is just as susceptible
to SQL injection as any other type of application. In either of these cases, the vendor may not provide a web UI to use these services, making security testing more difficult.
Всем спасибо за ответы.
Я просто не понял, почему это в отдельный пункт вынесли.
По сути то дублирует остальные, точнее может быть частным случаем других пунктов.
Sign up to leave a comment.