Предполагается, что пользователи приложений должны быть осведомлены о правилах использования сайта и соблюдать установленные политики безопасности. Но всегда ли это так? У легитимных пользователей есть много потенциальных причин, чтобы иногда стать «плохими пользователями»:
- Чтобы избежать процедуры, которую они не понимают и могут обойти, используя функцию, к которой они не должны иметь доступ.
- Чтобы получить доступ к данным другого пользователя по различным причинам.
- Для получения доступа к функциям, которые ограничены для группы пользователей, например, для бесплатного использования платных услуг.
Управление правами доступа является центральным элементом безопасности веб-приложений. Это, безусловно, тот аспект, который больше всего интересует злоумышленников, желающих «повысить свои привилегии» для достижения своих целей. Повышение привилегий происходит, когда пользователь использует недостаток, дефект конструкции или ошибку конфигурации в приложении для получения повышенного доступа к ресурсам, которые в обычных условиях были бы для него недоступны. Затем они могут использовать полученные привилегии для кражи конфиденциальных данных, выполнения административных команд или установки вредоносного ПО, что может нанести серьезный ущерб вашей информационной системе и вашему бренду.
Как правило, злоумышленники начинают с использования уязвимости в правах доступа целевой системы или приложения, что позволяет им обойти ограничения текущей учетной записи пользователя. Затем они могут получить доступ к функциям и данным другого пользователя. Затем их целью становится получение повышенных привилегий, как правило, администратора (Святой Грааль!) или другого влиятельного пользователя.
Приложения являются самой легкой точкой входа для любой атаки, поэтому жизненно важно обеспечить их безопасность: внедряйте лучшие практики разработки, чтобы избежать ошибок программирования и конфигурирования, используйте сканеры уязвимостей, чтобы проверить, не являются ли ваши приложения уязвимыми, и проводите тесты на проникновение, чтобы убедиться, что у вас нет критических уязвимостей.
Эксплуатация XSS-уязвимостей
Межсайтовый скриптинг (сокращенно XSS) — это распространенная уязвимость в веб-приложениях, которая при правильной эксплуатации может привести к краже сеанса, перезаписи пользовательского интерфейса, загрузке вредоносного ПО [и т. д.] через внедрение кода (JavaScript, HTML, CSS). Существует 2 типа XSS-атак:
- Хранимые XSS-атаки, которые отправляют вредоносное содержимое на сервер, на котором размещено веб-приложение, чтобы оно вернулось в браузер пользователя.
- Отраженные XSS-атаки, которые не хранят вредоносное содержимое на веб-сервере, а доставляют его пользователям приложения через URL или непосредственно в браузер.
Короче говоря, XSS-атаки основаны на отправке вредоносного содержимого, отображаемого в браузере пользователей веб-приложения, в виде всплывающего окна или перенаправления на внешний сайт.
Трудно подробно описать все возможные последствия XSS-атак, список получился бы очень длинным. Для защиты от них необходимо исходить из того, что данные, получаемые веб-приложением, нельзя считать всегда безопасными. Важно следовать строгим правилам при работе с данными, поступающими извне. Все содержимое должно быть очищено, проверено и/или зашифровано перед использованием приложением. Сканеры уязвимостей могут обнаружить некоторые из этих уязвимостей, но более тщательным будет тест на проникновение или анализ кода.
Атаки с использованием SQL-инъекций
Атаки с использованием инъекций облегчаются тем, как работают веб-приложения, поскольку для их функционирования необходимы данные. Чем больше данных требуется, тем больше возможностей для инъекционных атак.
Распространенной уязвимостью являются дефекты SQL-инъекций, которые позволяют взаимодействовать с базой данных приложения посредством непреднамеренных запросов. Эти недостатки могут привести к краже, потере данных, удалению или манипулированию хранимыми данными.
Безопасность взаимосвязанных систем
Веб-приложения часто связаны со сторонними сервисами или системами, особенно для передачи данных. Например, большинство FinTech используют платежные системы, разработанные и продаваемые третьими сторонами, и интегрируют их со своими собственными веб-приложениями. Эти платежные системы, как правило, безопасны, поскольку существует множество стандартов безопасности в области электронных платежей, включая PCI-DSS.
Как видите, стороннее приложение может быть надежным с точки зрения безопасности, но уязвимости очень часто появляются из-за проблем с конфигурацией и/или реализацией системы взаимосвязи.