Наиболее часто встречающиеся уязвимости
Эти уязвимости известны и изучены, но они по-прежнему часто встречаются и не планируют исчезать. Последствия атак могут быть значительными. Эксплуатация недостатков может быть использована для компрометации содержимого страницы с целью получения конфиденциальной информации, кражи токенов сессии и т. д.
Защита от уязвимостей межсайтового скриптинга (XSS)
Чтобы противостоять этой уязвимости, мы рекомендуем кодировать пользовательские данные на стороне вывода. Все вводимые пользователем данные должны быть закодированы в HTML, когда они повторно используются на веб-странице приложения.
По желанию можно также фильтровать и проверять входящие данные. Это подразумевает обработку данных, отправленных пользователями, перед их принятием. Например, в форме можно установить фильтры таким образом, чтобы почтовый индекс состоял только из пяти цифр.
Для получения дополнительной информации о защите от межсайтового скриптинга OWASP предоставляет очень хорошую шпаргалку, в которой подробно описаны различные кодировки.
XSS-уязвимости могут быть выявлены техническими командами во время ручного просмотра кода или с помощью автоматических инструментов.
Наиболее часто встречающиеся уязвимости: проблемы с правами
Проблемы с правами охватывают уязвимости, связанные с контролем доступа. Средства контроля доступа проверяют, уполномочен ли пользователь выполнять требуемое действие или получать доступ к запрашиваемым данным.
Проблемы с правами не зависят от сложности решения (несколько уровней прав, различные профили, которые можно изменять по меню, и т. д.) или бизнес-функции. Мы обнаружили, что существует недостаточная осведомленность об этих недостатках. Часто забывают, что во время обмена между клиентом и сервером запросами легко манипулировать. Можно, например, изменить идентификатор, повторно использовать cookie в неожиданном месте и т. д., если нет соответствующих средств контроля.
Защита от проблем с правами
Эта уязвимость возникает, когда средствами контроля можно манипулировать, обходить или они недостаточны, чтобы получить доступ к новым функциональным возможностям или другим данным.
Фактически существует два типа проблем контроля доступа к данным:
- вертикальная: в системе, где существуют различные уровни прав (пользователь, менеджер, администратор), злоумышленник пытается получить максимально возможные права, поскольку это дает доступ к большей функциональности. В зависимости от бизнеса это может включать создание или удаление пользователей, проверку финансовых потоков, доступ к конфиденциальным данным и т.д.
- Горизонтальная: в приложении, где существуют различные учетные записи пользователей, злоумышленник пытается получить доступ к данным или ресурсам других пользователей.
Для защиты от этих уязвимостей одним из принципов является учет того, что доступ и ресурсы не авторизованы по умолчанию. Затем следует внедрить средства контроля для проверки того, разрешено ли пользователю выполнять определенное действие в определенное время. Окончательная проверка всегда должна осуществляться на стороне сервера, независимо от наличия внешней проверки.
Вы можете выбрать различные методы контроля доступа: на основе ролей, на основе организации, на основе атрибутов… В OWASP есть шпаргалка с подробным описанием преимуществ и недостатков этих различных методов контроля доступа.
Чтобы выявить эти недостатки, команды разработчиков могут воспроизводить запросы, например, с помощью Postman. Важно тщательно протестировать и провести аудит установленных средств контроля, чтобы убедиться, что они работают так, как задумано.
Отсутствие ограничения скорости передачи данных
Отсутствие ограничения скорости — это уязвимость, с которой мы сталкиваемся очень часто. Она имеет низкий уровень или информационный характер и в основном встречается в API и в определенных функциях, таких как вход в систему, сброс пароля.
Эту уязвимость необходимо ограничить на уровне хостинга или приложения, чтобы снизить нагрузку и защитить конечные точки.
Внедрение ограничения скорости
Ограничение скорости, как следует из названия, ограничивает количество раз выполнения операции. Оно используется для защиты от чрезмерного использования для поддержания доступности услуг и предотвращения злоупотребления определенными функциями (например, функциями электронной почты).
Отсутствие ограничения скорости может привести к отказу в обслуживании или замедлить выполнение нужной операции.
Чтобы защитить себя, мы советуем вам установить глобальное ограничение скорости. Это означает установку максимального количества возможных запросов на один IP.