## OWASP
- Что такое OWASP
- Основные проекты OWASP: Top 10, WSTG и ASVS
- Обзор OWASP Top 10
- A01 Ошибки разграничения доступа
- A02 Ошибки при использовании криптографии
- А03 Инйекции
- А04 Небезопасный дизайн
- А05 Ошибки настроек подсистем защиты
- А06 Уязвимые и устаревшие компоненты
- A07 Ошибки аутентификации и авторизации
- A08 Проблемы с контролем целостности данных и приложений
- A09 Логирование и мониторинг
- A10 Атаки на доверие (SSRF)
## Что такое OWASP
Проект, который собирает топ 10 рисков для веб-приложений и способов их минимизации. На базе проекта существуют рекомендации и наборы справочных материалов, которые рассказывают о методах тестирования и предотвращения атак на веб-приложения.

## Основные проекты OWASP: Top 10, WSTG и ASVS
Проекты являются флагманскими с точки зрения создания процессов безопасной разработки.
OWASP Top 10 - набор рисков
## Обзор OWASP Top 10
### A01 Ошибки разграничения доступа
Здесь перечислены основные проблемы с разграничением доступа. Проблемы позволяют раскрывать конфиденциальную информацию, которую обрабатывает приложение.

Примеры уязвимостей:
- Нарушение принципа наименьшего количества привилегий
- Обход механизмов проверки авторизации, может быть осуществлено тривиальным изменением адреса или заголовка при запросе
- Доступ к данным чужого аккаунта
- Получения доступа к API без предоставления токена
- Манипуляция механизмов авторизации через модификацию идентификаторов сессии
- Неверная конфигурация CORS
### A02 Ошибки при использовании криптографии

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

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

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

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

Проблемы, которые появились из-за пакетных менеджеров и сложных приложений, которые переиспользуют функциональность операционной системы или других приложений.
Могут быть большой проблемой, так как эксплойты для таких компонентов, обычно находятся в общем доступе и представляют собой удобные инструменты для проведения атак с наименьшим приложением сил.
### A07 Ошибки аутентификации и авторизации
Проблемы с основным механизмом, который нужен для разграничения доступа пользователей.
Проблемы могут быть:
- уязвимы для проведения атак грубой силы
- уязвимы для автоматического перебора
- используются уязвимые методы для восстановления паролей
- использование дефолтных логинов и паролей
- отсутствующая мультифакторная аутентификация
- переиспользование идентификаторов от старых сессий
- отсутствие механизмов инвалидации пользовательских идентификаторов
### A08 Проблемы с контролем целостности данных и приложений

Набор уязвимостей, которые приводлят к изменению исходного алгоритма приложения за счет изменения объектов языка программирования во время работы приложения.
Наиболее популярный вариант уязвимости - небезопасная десериализация.
### A09 Логирование и мониторинг

Проблемы с механизмом логирования и мониторинга системы, где работает приложение. Логирование в большинстве случаев нужно для того чтобы можно было отслеживать аномалии в работе приложения, а так же вести расследование инцидентов.
Поэтому проблемы в этой категории,
- отсутствие событий, которые отражают ключевые действия пользователей в системе
- нет генерации проблем и предупреждений
- нет мониторинга аномалий
- логи хранятся рядом с приложением на одном серевере
- нет триггеров для отправки уведомлений об инциденте для администратора и отдела безопасности
### A10 Атаки на доверие (SSRF)

Тип проблем, который использует доверительные отношения между приложением и инфраструктурой, где это приложение работает. Может быть использовано как основной вектор атаки из внешних систем во внутренние.
Появляется во всех механизмах, где есть обработка URL.
## WSTG
OWASP Web Security Testing Guide - набор практик для проведения тестрования. Включает в себя основной проект с инструкциями - https://github.com/OWASP/wstg
И CheckList - https://github.com/OWASP/wstg/tree/master/checklists
## ASVS

Стандарт описывает подходы к созданию, тестированию, созданию механизмов безопасности, включая особенности архитектуры. Позволяет провести построение и оценку SSDLC.
### Дополнительные материалы
- https://ginandjuice.shop
- https://owasp.org/Top10/