Топ-5 критических рисков и угроз для веб-приложений от OWASP
Open Web Application Security Project, или OWASP, является международной некоммерческой организацией, занимающейся безопасностью веб-приложений. Список OWASP Топ 5 - это регулярно обновляемый отчет о безопасности для защиты веб-приложений, сосредоточенный на наиболее критических рисках.
Атаки типа инъекции
Инъекционные атаки происходят, когда ненадежные данные отправляются интерпретатору кода через форму ввода или какой-либо другой передачи данных в веб-приложении. Например, злоумышленник может ввести код базы данных SQL в форму, которая ожидает имя пользователя в виде открытого текста. Если входные данные формы не защищены должным образом, это приведет к выполнению кода SQL. Это известно, как SQL-инъекции.
Атаки могут быть предотвращены путем проверки или очистки пользовательских данных. (Проверка означает отклонение подозрительных данных, в то время как очистка относится к очистке подозрительных частей данных.) Кроме того, администратор базы данных может установить элементы управления, чтобы свести к минимуму объем информации, которую может произвести инъекционная атака.
Внешние объекты XML (XEE)
Это атака на веб-приложение, которое анализирует входные данные XML. Эти входные данные могут ссылаться на внешнюю сущность, пытающуюся использовать уязвимость в анализаторе. "Внешняя сущность" в этом контексте относится к единице хранения, например жесткому диску. XML-анализатор можно обмануть, отправив данные неавторизованному внешнему объекту, который может передать конфиденциальные данные непосредственно злоумышленнику.
Наилучшие способы предотвращения атак XEE - заставить веб-приложения принимать менее сложные типы данных, такие как JSON, или, по крайней мере, исправить XML-анализаторы и отключить использование внешних сущностей в XML-приложении.
Ошибка проверки подлинности
Уязвимости в системах аутентификации (входа в систему) могут дать злоумышленникам доступ к учетным записям пользователей и даже возможность захватить всю систему с помощью учетной записи администратора. Например, злоумышленник может взять список, содержащий тысячи известных комбинаций имени пользователя и пароля, полученных во время нарушения данных, и использовать сценарий, чтобы попробовать все эти комбинации в системе входа.
Некоторые стратегии для уменьшения уязвимости аутентификации требуют двухфакторной аутентификации (2FA), а также ограничения или задержки повторных попыток входа в систему с использованием ограничения скорости.
Конфиденциальные данные
Если веб-приложения не защищают конфиденциальные данные, такие как финансовая информация и пароли, злоумышленники могут получить доступ к этим данным и использовать их для гнусных целей. Одним из популярных методов кражи конфиденциальной информации является атака "человек посередине".
Риск раскрытия данных можно свести к минимуму, зашифровав все конфиденциальные данные, а также отключив кэширование любой конфиденциальной информации. Кроме того, разработчики веб-приложений должны позаботиться о том, чтобы не хранить ненужные конфиденциальные данные.
Контроль доступа
Управление доступом — это система, которая управляет доступом к информации или функциям. Неработающие элементы управления доступом позволяют злоумышленникам обходить авторизацию и выполнять задачи, как если бы они были привилегированными пользователями, например администраторами. Например, веб-приложение может позволить пользователю изменить учетную запись, в которую он вошел, просто изменив часть url-адреса без какой-либо другой проверки.
Средства управления доступом могут быть защищены, если веб-приложение использует маркеры авторизации и устанавливает на них жесткие элементы управления.
Многие службы выдают маркеры авторизации при входе пользователей. Каждый привилегированный запрос, выполняемый пользователем, требует наличия маркера авторизации. Это безопасный способ убедиться, что пользователь тот, за кого себя выдает, без необходимости постоянно вводить свои учетные данные.