Некоммерческая организация OWASP Foundation предоставляет важные рекомендации по безопасности веб-приложений, на которые ссылаются крупнейшие создатели стандартов кибербезопасности, такие как MITRE, PCI DSS и DISA. OWASP Top Ten, обновляемый каждые 3-4 года, выявляет критические уязвимости, чтобы помочь разработчикам и специалистам по безопасности создавать и поддерживать безопасные веб-сайты и приложения. Последнее обновление от 2023 года включает:
• Некорректная авторизация на уровне объекта
- При авторизации на уровне объекта важно проверять доступ к определенным объектам. Отсутствие этой проверки открывает возможности для несанкционированного доступа к конечным точкам API и критическим данным. Рекомендуется использовать надежные механизмы авторизации, учитывающие политику пользователей и иерархии доступа, а также генерировать уникальные и непредсказуемые идентификаторы для записей.
• Некорректная аутентификация пользователей
- Проблемы с механизмами аутентификации могут привести к серьезным проблемам безопасности. Неправильные механизмы аутентификации открывают двери для злоумышленников, позволяя создавать ненадежные пароли, обходить проверки токенов, менять личные данные без подтверждения пароля и т.д. Рекомендуется проводить тщательное исследование уязвимостей аутентификации и использовать двухфакторную аутентификацию для повышения безопасности.
• Нарушенная авторизация на уровне свойств объекта
- Многие API предоставляют данные об объектах, подверженных уязвимостям из-за неадекватной аутентификации на уровне свойств. Несанкционированный доступ к конфиденциальным данным или возможность изменять и удалять значения свойств объектов представляют серьезные угрозы. Рекомендуется строго проверять доступ пользователя к свойствам объектов и ограничивать объем возвращаемых данных.
• Неограниченное потребление ресурсов
- Обработка запросов API требует ресурсов, и без ограничений злоумышленники могут вызвать отказ в обслуживании или увеличение расходов на операции. Необходимо устанавливать ограничения на потребление ресурсов, например, ограничивать потребление памяти, количество запросов от клиента, и так далее, чтобы предотвратить подобные атаки.
• Нарушенная авторизация на уровне функции
- Сложная иерархия пользователей и ролей может привести к ошибкам в авторизации, где злоумышленники могут получить доступ к данных и функциям, к которым не должны иметь доступа. Рекомендуется тщательно проверить функции API на уязвимости авторизации на уровне функций и обеспечить адекватное разделение обычных и административных функций.
• Неограниченный доступ к конфиденциальным бизнес-потокам
- API часто предоставляют доступ к бизнес-потокам, где угрозы могут происходить из-за неограниченного доступа к определенным функциям. Идентификация критически важных потоков и внедрение механизмов защиты, таких как обнаружение аномалий и подтверждение личности, помогут уменьшить риски.
• Подделка запроса на стороне сервера
- Ошибка SSRF возникает, когда API не проверяет URL, предоставленный пользователем, что может привести к утечке критической информации. Для снижения риска рекомендуется тщательно проверять все входные данные, отключать переадресацию HTTP и устанавливать список разрешенных источников данных.
• Ошибки настроек безопасности
- Недостаточная защита, незакрытые уязвимости и неправильная настройка безопасности могут привести к компрометации системы. Для уменьшения рисков необходимо регулярно обновлять и проверять настройки безопасности, а также следить за обновлениями и патчами.
• Ненадлежащее управление активами
- Использование устаревших версий API или ненадлежащее управление активами увеличивает уязвимости. Документирование действующих версий API и перенос улучшений безопасности на старые версии помогут управлять активами более эффективно.
• Небезопасное использование API
- Непроверенный ввод данных из сторонних API может привести к уязвимостям в безопасности. Рекомендуется тщательно проверять все полученные данные, обеспечивать безопасное подключение и создать список разрешенных действий стороннего API.