Безопасность веб-приложений

Некоммерческая организация OWASP Foundation предоставляет важные рекомендации по безопасности веб-приложений, на которые ссылаются крупнейшие создатели стандартов кибербезопасности.
Опубликовано
12.6.2024

Некоммерческая организация OWASP Foundation предоставляет важные рекомендации по безопасности веб-приложений, на которые ссылаются крупнейшие создатели стандартов кибербезопасности, такие как MITRE, PCI DSS и DISA. OWASP Top Ten, обновляемый каждые 3-4 года, выявляет критические уязвимости, чтобы помочь разработчикам и специалистам по безопасности создавать и поддерживать безопасные веб-сайты и приложения. Последнее обновление от 2023 года включает:

  1. API1:2023 Некорректная авторизация на уровне объекта
  2. API2:2023 Некорректная аутентификация пользователей
  3. API3:2023 Нарушенная авторизация на уровне свойств объекта
  4. API4:2023 Неограниченное потребление ресурсов
  5. API5:2023 Нарушенная авторизация на уровне функции
  6. API6:2023 Неограниченный доступ к конфиденциальным бизнес-потокам
  7. API7:2023 Подделка запроса на стороне сервера
  8. API8:2023 Ошибки настроек безопасности
  9. API9:2023 Ненадлежащее управление активами
  10. API10:2023 Небезопасное использование API

• Некорректная авторизация на уровне объекта

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

• Некорректная аутентификация пользователей

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

• Нарушенная авторизация на уровне свойств объекта

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

• Неограниченное потребление ресурсов

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

• Нарушенная авторизация на уровне функции

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

• Неограниченный доступ к конфиденциальным бизнес-потокам

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

• Подделка запроса на стороне сервера

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

• Ошибки настроек безопасности

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

• Ненадлежащее управление активами

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

• Небезопасное использование API

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