API1:2019 - Некорректная Авторизация на Уровне Объектов |
API зачастую предоставляют точки входа, оперирующие идентификаторами объектов, тем самым создавая широкую поверхность атаки на уровне управления доступом. Необходимо принимать во внимание проверки авторизации на уровне объектов в каждой функции, которая обращается к источнику данных, используя пользовательский ввод. |
API2:2019 - Некорректная Аутентификация Пользователей |
Механизмы аутентификации часто функционируют некорректно, позволяя злоумышленникам компрометировать аутентификационные токены или эксплуатировать несовершенства в реализации механизма с целью временного или постоянного присвоения учетной записи пользователя. Компрометация системы идентификации пользователей или клиентов компрометирует API в целом. |
API3:2019 - Предоставление Излишних Данных |
Будучи нацеленными на универсальную реализацию функций API, разработчики зачастую раскрывают все свойства объектов, не учитывая критичность каждого из них и рассчитывая, что клиентское приложение отфильтрует данные перед отображением пользователю. |
API4:2019 - Отсутствие ограничений на количество запросов и потребляемые ресурсы |
Зачастую API не устанавливают ограничений на размер или количество ресурсов, запрашиваемых клиентским приложением или пользователем. Это может повлиять на производительность API, приводя к отказу в обслуживании, а также открывает возможность атак перебором на механизм аутентификации. |
API5:2019 - Некорректная авторизация на уровне функций |
Сложные политики контроля доступа с различными иерархиями, группами и ролями, а также нечеткое разделение административного и пользовательского функционала приводят к ошибкам механизма авторизации. Эксплуатируя эти ошибки, злоумышленник может получить доступ к ресурсам других пользователей и административному функционалу. |
API6:2019 - Массовое переназначение параметров (Mass assignment) |
Присвоение поступивших от пользователя данных, например в формате JSON, модели данных без надлежащей фильтрации параметров на базе белого списка обычно приводит к массовому переназначению параметров. Злоумышленник может изменить свойства объектов, к которым он не должен иметь доступ, угадав эти свойства, найдя их в других точках входа API или документации, или же отправив запрос с дополнительными свойствами. |
API7:2019 - Ошибки настроек безопасности |
Как правило, ошибки настроек безопасности - результат небезопасных настроек по умолчанию, неполных или временных настроек, незащищенного облачного хранилища, некорректно настроенных заголовков HTTP, излишних методов HTTP, нестрогой политики разделения ресурсов между источниками (CORS) и детальных сообщений об ошибках, содержащих критичные данные. |
API8:2019 - Инъекции |
Инъекции, такие как SQL, NoSQL, инъекции команд на операционной системе и другие, случаются, когда недоверенные данные отправляются в интерпретатор как часть команды или запроса. Злоумышленник может вынудить интерпретатор выполнить команду или получить данные в обход проверок авторизации. |
API9:2019 - Ненадлежащее управление активами |
API обычно имеют больше точек входа по сравнению с традиционным веб приложениями, что приводит к необходимости постоянного ведения и обновления документации. Надлежащая инвентаризация хостов (доменов и серверов, на которых функционирует API) и развернутых версий API играет важную роль в предотвращении проблем, таких как публикация устаревших версий API и точек входа, используемых для отладки. |
API10:2019 - Недостаточное логирование и мониторинг |
Недостаточное логирование и мониторинг вместе с отсутствующим или неэффективным реагированием на инциденты позволяет злоумышленникам атаковать и оставаться в системе, атаковать другие системы, доступные из скомпрометированной, а также извлекать или уничтожать данные. Большинство исследований произошедших атак показывает, что время обнаружения атак превышает 200 дней, а также что обычно атаки обнаруживаются извне, а не внутренними процессами или мониторингом. |