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