В основу исследования легли данные, полученные экспертами «Ростелеком-Солар» в ходе киберучений, тестирований на проникновение и проектов по анализу защищенности. Всего было проанализировано более 30 веб-приложений, среди которых – интернет-порталы компаний, системы дистанционного банковского обслуживания, CRM и другие. Результаты свидетельствуют о том, что критические и легко эксплуатируемые уязвимости содержатся практически в каждом веб-приложении. Большая часть из них связана с отсутствием фильтрации поступающих данных на стороне веб-сервера, а также с недостатками на уровне бизнес-логики приложений.
Почти 70% веб-приложений оказались подвержены IDOR-уязвимостям (Insecure direct object references – небезопасные прямые ссылки на объекты). Эксплуатируя их, злоумышленник может методом перебора найти используемые в системе идентификаторы и получить несанкционированный доступ к данным пользователей. Чаще всего эта уязвимость встречается в веб-приложениях со сложной логической структурой, например, в системах дистанционного банковского обслуживания. Успешная эксплуатация IDOR-уязвимости в этом случае может позволить злоумышленнику, например, получить информацию о транзакциях и состоянии счетов пользователей или изменить данные их профилей.
«Как показывает наша практика, логические уязвимости, например, класса IDOR, встречаются чаще других – причина в том, что уязвимости, связанные с логикой, очень сложно выявить с помощью сканеров кода, – поясняет Александр Колесов, руководитель отдела анализа защищенности «Ростелеком-Солар». – Но они же являются и одними из самых критичных – ведь злоумышленники могут получить доступ к данным других пользователей. В случае с банковскими системами это может быть очень чувствительная информация».
Более 50% веб-приложений содержат недостатки в фильтрации поступающих на сервер данных, что дает возможность провести атаки типа XSS (Cross-Site Scripting – межсайтовое выполнение сценариев). Такие атаки, позволяют злоумышленнику внедрить в веб-страницу вредоносный JavaScript-код, который будет выполнен в браузере жертвы при открытии страницы. Этот код может взаимодействовать с веб-сервером злоумышленника и передавать туда, например, cookie-файлы пользователя – с их помощью злоумышленник может авторизоваться на интернет-ресурсах под учетными данными жертвы и действовать от ее имени.
Еще 30% уязвимостей связаны с возможностью внедрения SQL-кода из-за отсутствия или некорректной фильтрации входящих запросов от пользователя. За счет этого злоумышленник может получить контроль над базой данных организации и в том числе доступ к конфиденциальным данным клиентов (например, данным паспорта, кредитной карты, информации о транзакциях и т.п.) и возможность менять их непосредственно на сервере. В определенных случаях злоумышленник может запустить выполнение кода операционной системы и тем самым получить контроль над сервером, что позволит ему в дальнейшем дублировать все данные в свое хранилище. Этот тип уязвимости влечет наиболее серьезные риски утечки данных (в том числе персональных и платежных), а также финансовых и репутационных потерь.
«Эти уязвимости существуют очень давно – к примеру, уже много лет эксперты предрекают смерть SQL-инъекциям, однако даже в новых приложениях сегодня можно встретить данную уязвимость, – комментирует Александр Колесов, руководитель отдела анализа защищенности «Ростелеком-Солар». – Защита веб-приложений – прежде всего, задача разработчика. Не стоит полностью полагаться на средства защиты – в частности, Web Application Firewall не может обнаружить атаки, направленные на уязвимости в логике работы приложения, например, IDOR. Необходимо уже на этапе создания приложения соблюдать ключевые принципы безопасной разработки: всегда фильтровать поступающие от пользователя данные и проверять права доступа – на уровне Back-end, а не клиентского интерфейса. Кроме того, необходимо периодически проводить анализ защищенности приложения».