03 Апр, 2023

Недостаточный контроль доступа к API

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

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

Пример уязвимого кода на разных языках программирования:


в Java:

				
					public class MyAPI {
   public void sensitiveOperation(String secretKey) {
       if (secretKey.equals("mySecretKey")) {
           // Perform sensitive operation
       } else {
           throw new SecurityException("Unauthorized access");
       }
   }
}

				
			

 

В этом фрагменте кода Java есть конфиденциальная операция, которая требует предоставления секретного ключа. Однако код проверяет только, соответствует ли предоставленный ключ жестко заданному значению “mySecretKey”. Это недостаток безопасности, поскольку злоумышленник может легко угадать секретный ключ или обойти проверку, разрешив несанкционированный доступ к конфиденциальной операции.

• в Python:

				
					def sensitive_operation(api_key):
   if api_key == "myAPIkey":
       # Perform sensitive operation
   else:
       raise ValueError("Unauthorized access")


				
			

 

Аналогично, этот фрагмент кода Python проверяет только, соответствует ли предоставленный ключ API жестко заданному значению “myAPIkey”. Злоумышленник может легко угадать ключ или использовать другие методы, такие как перечисление API, для обнаружения действительных ключей, что позволяет получить несанкционированный доступ к конфиденциальной операции.

• в Node.js:

				
					app.post('/api/sensitiveOperation', function(req, res) {
   var apiKey = req.body.api_key;
   if (apiKey == "myAPIkey") {
       // Perform sensitive operation
   } else {
       res.status(401).send("Unauthorized access");
   }
});

				
			


В этом Node.js фрагмент кода, ключ API получен из тела запроса, но код проверяет только, соответствует ли он жестко заданному значению “myAPIkey”. Это недостаток безопасности, поскольку злоумышленник может легко угадать ключ или перехватить запрос API для получения действительного ключа, что позволит получить несанкционированный доступ к конфиденциальной операции. Кроме того, код возвращает только неавторизованный ответ 401, который может привести к утечке информации о существовании конфиденциальной операции и ее местоположении.

Примеры эксплуатации Недостаточный контроль доступа к API

Несанкционированный доступ к конфиденциальным данным:

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

Несанкционированное изменение данных:

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

Отказ в обслуживании (DoS):

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

Перечисление конечных точек API:

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

Методы повышения привилегий при Недостаточном контроле доступа к API

Угадывание ключа API:

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

Манипулирование конечной точкой API:

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

Подделка запроса API:

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

Перехват сеанса:

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

Атака "Человек посередине" (MITM):

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

Общая методология и контрольный список из-за недостаточного контроля доступа к API

Методология:

  1. Определите все конечные точки API и их параметры, которые используются для доступа или изменения конфиденциальных данных или функциональности.

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

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

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

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

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

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

Контрольный список:

  1. Определите все конечные точки API и их параметры, которые используются для доступа или изменения конфиденциальных данных или функциональности.

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

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

  4. Проверьте отсутствие проверок аутентификации или авторизации.

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

  6. Проверьте отсутствие или недостаточное ограничение скорости.

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

  8. Проверьте наличие уязвимостей DoS, которые могут сделать API недоступным для законных пользователей.

  9. Проверьте наличие других уязвимостей, таких как CSRF или XSS.

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

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

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

Набор инструментов для эксплуатации Недостаточный контроль доступа к API

Автоматизированные инструменты:

  • OWASP ZAP – Сканер веб-приложений с открытым исходным кодом, который может обнаруживать и эксплуатировать уязвимости, включая недостаточный контроль доступа, посредством автоматического и ручного тестирования.

  • Burp Suite – Популярный набор инструментов для тестирования безопасности веб-приложений, который включает в себя множество инструментов для автоматического и ручного тестирования, включая сканер для обнаружения недостаточных средств контроля доступа.

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

  • Acunetix – Сканер веб-приложений, который может обнаруживать уязвимости, включая недостаточный контроль доступа, с помощью автоматического тестирования.

  • Netsparker – Сканер веб-приложений, который может выявлять уязвимости, включая недостаточный контроль доступа, с помощью автоматического тестирования.

  • AppSpider – Сканер веб-приложений, который может обнаруживать уязвимости, включая недостаточный контроль доступа, с помощью автоматического тестирования.

  • Qualys Web Application Scanning – Сканер облачных веб-приложений, который может выявлять уязвимости, включая недостаточный контроль доступа, с помощью автоматического тестирования.

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

  • Grendel-Scan – Сканер веб-приложений с открытым исходным кодом, который может выявлять уязвимости, включая недостаточный контроль доступа, с помощью автоматического тестирования.

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

Ручные Инструменты:

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

  • Fiddler – Прокси-сервер веб-отладки, который может использоваться для ручного тестирования API, включая тестирование на недостаточный контроль доступа.

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

  • CURL – Инструмент командной строки для создания HTTP-запросов, который может использоваться для ручного тестирования API, включая тестирование на недостаточный контроль доступа.

  • HTTPie – Инструмент командной строки для создания HTTP-запросов, который может использоваться для ручного тестирования API, включая тестирование на недостаточный контроль доступа.

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

  • RESTClient – Расширение браузера для Firefox и Chrome, которое можно использовать для ручного тестирования API, включая тестирование на недостаточный контроль доступа.

  • Insomnia – Кроссплатформенный инструмент для тестирования API, который можно использовать для ручного тестирования, включая тестирование на недостаточный контроль доступа.

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

  • SOAPSonar – Инструмент для тестирования веб-сервисов SOAP, который можно использовать для ручного тестирования API, включая тестирование на недостаточный контроль доступа.

Общее перечисление слабых мест (CWE)

• CWE-285: Неправильная авторизация: эта уязвимость возникает, когда приложение неправильно применяет средства контроля доступа или разрешения пользователя, позволяя злоумышленнику выполнять действия, которые должны быть ограничены.

• CWE-287: Неправильная аутентификация: эта уязвимость возникает, когда приложение неправильно аутентифицирует пользователей или проверяет их учетные данные, позволяя злоумышленнику выдавать себя за законного пользователя и выполнять несанкционированные действия.

• CWE-434: Неограниченная загрузка файла с опасным типом: эта уязвимость возникает, когда приложение позволяет пользователям загружать файлы без надлежащей проверки, что может привести к выполнению вредоносного кода или раскрытию конфиденциальной информации.

• CWE-506: Встроенный вредоносный код: эта уязвимость возникает, когда приложение позволяет пользователям отправлять или выполнять произвольный код, который может быть использован для обхода контроля доступа или выполнения несанкционированных действий.

• CWE-611: Неправильное ограничение ссылки на внешние объекты XML: эта слабость возникает, когда приложение обрабатывает вводимые XML-данные без надлежащей проверки внешних объектов, что может привести к раскрытию конфиденциальной информации или выполнению вредоносного кода.

• CWE-749: Несоблюдение принципа наименьших привилегий: эта уязвимость возникает, когда приложение предоставляет пользователям чрезмерные разрешения или привилегии, что может увеличить риск несанкционированного доступа или утечки данных.

• CWE-862: Отсутствует авторизация: эта уязвимость возникает, когда приложению не удается обеспечить надлежащий контроль доступа или разрешения пользователя, что позволяет злоумышленникам обойти аутентификацию и получить несанкционированный доступ к конфиденциальным данным или функциям.

• CWE-863: Неправильная авторизация: эта уязвимость возникает, когда приложение неправильно применяет средства контроля доступа или разрешения пользователя, позволяя злоумышленникам выполнять действия, которые должны быть ограничены.

• CWE-935: Неправильная проверка криптографической подписи: эта уязвимость возникает, когда приложение неправильно проверяет цифровые подписи, позволяя злоумышленникам выдавать себя за законных пользователей или изменять данные без обнаружения.

• CWE-1175: Ненадлежащим образом контролируемая модификация критически важных элементов безопасности: эта уязвимость возникает, когда приложение допускает несанкционированное изменение критически важных элементов безопасности, таких как средства контроля доступа или разрешения, что может привести к несанкционированному доступу или утечке данных.

Топ-5 CVE, связанных с Недостаточным контролем доступа к API

• CVE-2023-24029 – В Progress WS_FTP Server до версии 8.8 администратор хоста может повысить свои привилегии через административный интерфейс из-за недостаточного контроля авторизации, применяемого к рабочим процессам изменения пользователем.

• CVE-2022-30316 – Honeywell Experion PKS Safety Manager 5.02 имеет недостаточную проверку подлинности данных. Согласно FSCT-2022-0054, существует проблема с обновлением прошивки Honeywell Experion PKS Safety Manager, не прошедшим проверку подлинности. Затронутые компоненты характеризуются как: Функциональность обновления прошивки. Потенциальное воздействие заключается в манипуляциях с прошивкой. Honeywell Experion PKS Safety Manager использует последовательный интерфейс FTA связи DCOM-232/485 и загрузчик Enea POLO для управления встроенным программным обеспечением. Инженерная рабочая станция, на которой установлено программное обеспечение Safety Builder, осуществляет связь по последовательному каналу или через Ethernet с интерфейсом DCOM-232/485. Было обнаружено, что образы прошивки не имеют аутентификации (в форме подписи прошивки) и полагаются только на небезопасные контрольные суммы для регулярных проверок целостности. Образы встроенного ПО не подписаны. Злоумышленник, имеющий доступ к последовательному интерфейсу (либо через физический доступ, скомпрометированный EWS или незащищенный шлюз serial-to-ethernet), может использовать жестко закодированные учетные данные (см. FSCT-2022-0052) для загрузчика POLO, чтобы управлять процессом загрузки и отправлять образы вредоносных прошивок на контроллер, что позволяет манипулировать прошивкой, выполнять удаленный код и воздействовать на отказ в обслуживании. Смягчающим фактором является то, что для запуска обновления встроенного программного обеспечения необходимо перезагрузить Safety Manager, что обычно выполняется с помощью физических средств управления самим Safety Manager. Таким образом, злоумышленнику придется либо бездействовать до тех пор, пока не произойдет законная перезагрузка, либо, возможно, попытаться принудительно перезагрузить компьютер с помощью вторичной уязвимости.

• CVE-2022-30315 – Менеджер по безопасности Honeywell Experion PKS (SM и FSC) до 2022-05-06 имеет недостаточную проверку подлинности данных. Согласно FSCT-2022-0053, в Honeywell Experion PKS Safety Manager существует проблема с недостаточным контролем логической безопасности. Затронутые компоненты характеризуются как: Honeywell FSC runtime (FSC-CPU, QPP), Honeywell Safety Builder. Потенциальное воздействие таково: Удаленное выполнение кода, Отказ в обслуживании. Семейство контроллеров безопасности Honeywell Experion PKS Safety Manager использует протокол Safety Builder, не прошедший проверку подлинности (FSCT-2022-0051), для инженерных целей, включая загрузку проектов и управляющей логики в контроллер. Логика управления загружается в контроллер поблочно. Загружаемая логика состоит из кода FLD, скомпилированного в собственный машинный код для модуля CPU (который относится как к семействам Safety Manager, так и к FSC). Поскольку эта логика, по-видимому, не проходит криптографическую проверку подлинности, она позволяет злоумышленнику, способному запустить загрузку логики, выполнить произвольный машинный код в модуле центрального процессора контроллера в контексте среды выполнения. Хотя исследователи не смогли проверить это подробно, исследователи полагают, что микропроцессор, лежащий в основе процессорных модулей FSC и Safety Manager, не способен обеспечить защиту памяти или возможности разделения привилегий, которые предоставили бы злоумышленнику полный контроль над процессорным модулем. Проверка подлинности логики управления, загруженной на контроллер, отсутствует. Возможно, отсутствуют возможности защиты памяти и разделения привилегий для среды выполнения. Исследователи подтвердили наличие рассматриваемых проблем в Safety Manager R145.1 и R152.2, но подозревают, что проблема затрагивает все контроллеры FSC и SM и связанные с ними версии Safety Builder, независимо от версии программного обеспечения или встроенного ПО. Злоумышленник, который может взаимодействовать с контроллером Safety Manager по протоколу Safety Builder, может выполнять произвольный код без ограничений для модуля центрального процессора, что позволяет скрытно манипулировать операциями управления и внедрять возможности, аналогичные вредоносной программе TRITON (MITRE ATT & CK software ID S1009). Смягчающим фактором в отношении некоторых, но не всех вышеперечисленных функций является то, что для них требуется, чтобы физический ключевой переключатель Safety Manager находился в правильном положении.

• CVE-2022-27673 – Недостаточный контроль доступа в приложении AMD Link для Android потенциально может привести к раскрытию информации.

• CVE-2021-35534 – Уязвимость недостаточного контроля безопасности во внутреннем механизме доступа к базе данных Hitachi Energy Relion 670/650/SAM600-IO, Relion 650, GMS600, PWC600 позволяет злоумышленнику, который успешно воспользовался этой уязвимостью, из-за которой продукт недостаточно ограничивает доступ к внутренним таблицам базы данных, может позволить любому пользователю с учетными данными обойти средства контроля безопасности, которые применяются продуктом. Следовательно, эксплуатация может привести к несанкционированным изменениям данных / встроенного программного обеспечения и / или к постоянному отключению продукта. Эта проблема затрагивает: Hitachi Energy Relion 670 Series 2.0 все редакции; 2.2.2 все редакции; 2.2.3 версии до 2.2.3.5. Hitachi Energy Relion 670/650 Series 2.1 все редакции. 2.2.0 все редакции; 2.2.4 все редакции; Hitachi Energy Relion 670/650/SAM600-IO 2.2.1 все редакции; 2.2.5 версии до 2.2.5.2. Hitachi Energy Relion 650 1.0 все редакции. 1.1 все редакции; 1.2 все редакции; 1.3 версии до 1.3.0.8; Hitachi Energy GMS600 1.3.0; 1.3.0.1; 1.2.0. Hitachi Energy PWC600 1.0.1 версии 1.0.1.4 и предыдущих версий; 1.1.0 версии 1.1.0.1 и предыдущих версий.

Недостаточный контроль доступа к API подвиги

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

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

  • Подделка данных: Злоумышленник может изменять или удалять данные, используя уязвимость, которая позволяет ему обходить средства контроля доступа или манипулировать параметрами API. Это может привести к потере данных или проблемам с целостностью.

  • Манипулирование параметрами API: Злоумышленник может манипулировать параметрами API для выполнения действий, которые должны быть ограничены, таких как доступ к конфиденциальным данным или выполнение несанкционированных транзакций.

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

  • Байпас, ограничивающий скорость API: Злоумышленник может обойти элементы управления, ограничивающие скорость, воспользовавшись уязвимостью, которая позволяет ему отправлять запросы с более высокой скоростью, чем предполагалось. Это может вызвать проблемы с отказом в обслуживании (DoS) или другие проблемы с производительностью.

  • Подделка межсайтовых запросов (CSRF): Злоумышленник может обманом заставить пользователя выполнять действия с API без его ведома или согласия, используя уязвимость, которая позволяет ему внедрять вредоносный код в законный запрос. Это может привести к несанкционированному доступу к данным или выполнению транзакции.

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

Практикуясь в тестировании на Недостаточный контроль доступа к API

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

Выполните упражнение по моделированию угроз: определить потенциальные векторы атак и определить приоритетность областей для тестирования.

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

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

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

Проверка на наличие уязвимостей в управлении сеансами: например, перехват сеанса или фиксация сеанса, чтобы обеспечить безопасное управление сеансами.

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

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

Тест на подделку межсайтовых запросов (CSRF): чтобы гарантировать, что вредоносные запросы не могут быть выполнены через API.

Используйте автоматизированные инструменты: например, Burp Suite или OWASP ZAP, для оказания помощи в тестировании и выявления распространенных уязвимостей.

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

Для изучения Недостаточный контроль доступа к API

Проект безопасности OWASP API: Проект OWASP API Security Project содержит рекомендации и лучшие практики по обеспечению безопасности API, включая соображения по контролю доступа.

NIST SP 800-53: Документ NIST SP 800-53 содержит рекомендации по обеспечению безопасности федеральных информационных систем и включает раздел о контроле доступа к API.

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

Руководство по тестированию безопасности API: Руководство по тестированию безопасности API содержит рекомендации по тестированию безопасности API, включая тестирование на наличие уязвимостей в системе управления доступом.

Подход к обеспечению безопасности API: Книга “The API Security Mindset” дает целостное представление о безопасности API и включает главу, посвященную контролю доступа.

Онлайн-курсы и учебные пособия: Такие платформы, как Udemy, Coursera и Pluralsight, предлагают онлайн-курсы и учебные пособия по безопасности API, которые включают в себя описание уязвимостей в системе контроля доступа.

Форумы и обсуждения сообщества: Участие в форумах и дискуссиях сообщества, таких как сообщество OWASP или r / netsec Reddit, может дать представление об уязвимостях в системе контроля доступа в реальном мире и о том, как их устранить.

Книги с обзором Недостаточного контроля доступа к API

Подход к обеспечению безопасности API Изабель Мауни и Филипп Де Райк: Эта книга охватывает широкий спектр тем безопасности API, включая уязвимости в управлении доступом и способы их устранения.

Безопасность API в действии автор: Нил Мэдден: Эта книга содержит обзор концепций безопасности API и включает главу об уязвимостях в управлении доступом.

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

Защита веб-служб RESTful с помощью OAuth 2.0 Прабат Сиривардена: Эта книга посвящена использованию OAuth 2.0 для защиты API, включая устранение уязвимостей в системе управления доступом.

API: Руководство по стратегии Дэниел Джейкобсон, Грег Брейл и Дэн Вудс: Эта книга предоставляет высокоуровневый обзор API и включает раздел о безопасности, включая контроль доступа.

Дизайн веб-API: создание интерфейсов, которые нравятся разработчикам Брайан Маллой: В этой книге рассматриваются лучшие практики разработки API, включая соображения безопасности, такие как контроль доступа.

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

Кулинарная книга OAuth 2.0 автор: Адольфо Элой Насименто: В этой книге приведены рецепты внедрения OAuth 2.0 для обеспечения безопасности API, включая устранение уязвимостей в системе управления доступом.

RESTful API Design: Лучшие практики в разработке API с помощью REST автор Марк Масс: В этой книге рассматриваются лучшие практики разработки RESTful API, включая соображения безопасности, такие как контроль доступа.

Профессионал ASP.NET Безопасность веб-API: Обеспечение ASP.NET Веб - API Бадринарайанан Лакшмирагхаван: Эта книга содержит практическое руководство по обеспечению ASP.NET Веб-API, включая устранение уязвимостей в системе контроля доступа.

Список полезных нагрузок Недостаточный контроль доступа к API

Полезные нагрузки SQL-инъекций: Они могут быть использованы для проверки того, уязвима ли конечная точка API для атак с использованием SQL-инъекций. Некоторые примеры включают:

				
					' OR 1=1 --
%27%20OR%20%271%27=%271
UNION ALL SELECT NULL,NULL,NULL-- 

				
			

 

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

				
					' or 1=1 or ''='
' or 1=1 or ''=''
"/users/user[id='1' or 1=1]"

				
			

 

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

				
					?id=1
?id=1' OR '1'='1
?id=1%20OR%201=1

				
			

 

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

				
					../../../../../../etc/passwd
..\..\..\..\..\..\..\..\windows\system32\drivers\etc\hosts
../../../../../boot.ini

				
			

 

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

				
					admin' --
'or 1=1 --
'or 1=1 /* 

				
			

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

  1. Внедрите надежные механизмы аутентификации, такие как многофакторная аутентификация, надежные пароли и политики паролей.

  2. Убедитесь, что ваши API защищены надлежащими механизмами контроля доступа, такими как управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и обязательное управление доступом (MAC).

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

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

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

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

  7. Внедрите механизмы ограничения скорости для предотвращения злоупотреблений и снижения риска атак, таких как атаки методом перебора и атаки типа "отказ в обслуживании" (DoS).

Заключение

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

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

Другие Услуги

Готовы к безопасности?

Связаться с нами