Анализ защищенности web-приложения на основе моделирования сетевых атак

Бесплатный доступ

В статье рассматриваются ключевые угрозы безопасности современных веб-приложений, такие как межсайтовый скриптинг (XSS), подделка межсайтовых запросов (CSRF), фишинг, атаки типа "отказ в обслуживании" (DoS), утечки данных и несанкционированный доступ. Особое внимание уделяется анализу уязвимостей, связанных с клиентской и серверной частями приложений, а также методам их идентификации и оценки рисков. В работе подробно описаны современные методы и средства защиты, включая использование Web Application Firewall (WAF), шифрование данных, двухфакторную аутентификацию и механизмы контроля доступа. Проведено практическое моделирование сетевых атак, в частности SQL-инъекций, с целью оценки уровня защищенности веб-приложения и демонстрации типовых сценариев компрометации. Приведены рекомендации по обеспечению безопасности баз данных и резервных копий, а также предложены стратегии противодействия внутренним и внешним угрозам. Статья подчеркивает важность комплексного подхода к защите веб-приложений, включающего регулярное обновление ПО, контроль доступа, мониторинг и аудит действий пользователей, а также внедрение специализированных систем защиты. Результаты исследования могут быть использованы для повышения уровня безопасности корпоративных веб-ресурсов и защиты пользовательских данных.

Еще

Web-приложение, угрозы, сетевые атаки, методы защиты, безопасность, двухфакторная аутентификация, SQL-инъекция

Короткий адрес: https://sciup.org/14132674

IDR: 14132674   |   DOI: 10.47813/2782-5280-2025-4-2-2018-2027

Текст статьи Анализ защищенности web-приложения на основе моделирования сетевых атак

DOI:

В современном мире одним из повышающих мобильность пользователей и упрощающих доступ к требуемым ресурсам являются такие средства как WEB-приложения. WEB-приложение – это клиент-серверное приложение, в котором взаимодействие клиента с сервером осуществляется при помощи браузера.

Согласно     некоторым     исследованиям,

«нацеливание на веб-приложения» является одним из наиболее распространенных методов кибератак. Киберпреступники используют скомпрометированные сайты для различных целей: распространения вредоносного ПО, кражи конфиденциальных данных пользователей, внедрения несанкционированной информации, мошенничества, проникновения во внутреннюю инфраструктуру компании и т.п. Всё это напрямую угрожает работе и репутации организации и конкретных лиц, поэтому вебприложения необходимо защищать и устранять все слабые места. Для этого компании выделяют основные угрозы и уязвимости веб-приложений на основе результатов всестороннего анализа безопасности.

УГРОЗЫ WEB-ПРИЛОЖЕНИЙ

  • 1.    Attacks on clients:

Угроза «Атаки на клиентов» — это категория угроз, которая направлена на вредоносные действия, совершаемые в отношении клиентской части веб-приложения. Клиентская часть вебприложения включает в себя все компоненты и код, который выполняется на стороне клиента, обычно в браузере пользователя [1]. Данный типа атаки могут иметь различные цели, включая уклонение от аутентификации, внедрения вредоносного кода на устройство пользователя, кражу конфиденциальных данных.

Самые распространенные виды атак:

  •    Межсайтовый скриптинг (XSS).

В ходе данной атаки злоумышленник внедряет вредоносный JavaScript-код в веб-страницу или веб-приложение, который выполняется на стороне клиента. Код может использоваться для кражи сеансов, перенаправления на вредоносные сайты, кражи конфиденциальных данных и других вредоносных действий [2].

  •    Кросс-сайт запрос подделки (CSRF).

В этой атаке злоумышленник заставляет жертву выполнить нежелательные действия на вебприложения, обманывая ее для отправки запросов, которые выполняются с правами пользователя, что может привести к изменению состояния приложения, например, изменению данных пользователя или выполнению несанкционированных транзакций (списаний средств, если привязаны данные банковских карт).

  •    Фишинг.

  • 2.    Information Leakage:

  • 3.    Unauthorized Access to Application:

  • 4.    Unauthorized Access to Features or Content:

Злоумышленник создает поддельные вебстраницы или электронные письма, выдавая их за легитимные, чтобы обмануть пользователей и заставить их раскрыть конфиденциальную информацию – пароли, логины, номера кредитных карт [3].

Угроза утечки информации представляет собой потенциально серьезную угрозу для вебприложений, может привести к негативным последствиям как для пользователей, так и для организаций, владеющих приложением. Часто данная угроза связана с уязвимостями неправильной авторизации и аутентификации.

Угроза «Несанкционированного доступа к приложению» представляет собой ситуацию, когда злоумышленники получают доступ к вебприложению без правильной аутентификации или авторизации пользователя. Часто приводит к утечке информации, повреждению данных или выполнению нежелательных операций в системе.

Угроза несанкционированного доступа к функциям или контенту представляет собой риск для веб-приложений, связанный с возможностью неправильного или неполного контроля доступа к различным функциям и данным в приложении.

Вот несколько распространенных способов, которыми        может        происходить несанкционированный доступ к функциям или контенту веб-приложений:

  •    Отсутствие или неправильная реализация механизмов проверки прав доступа может привести к тому, что пользователи получат доступ к функциям или данным, которые они не должны видеть или использовать.

  •    Неправильно настроенные или уязвимые механизмы аутентификации и авторизации могут предоставить пользователям больше прав, чем необходимо, или позволить им обойти правила доступа.

  •    Прямой доступ к URL-адресам или ресурсам, что приводит к тому, что пользователи смогут получить доступ к защищенным страницам или     ресурсам     без     правильной

аутентификации.

  •    Некорректная реализация бизнес-логики приложения может привести к утечке конфиденциальной    информации    или

  • предоставлению доступа к функционалу, который не должен быть доступен определенным пользователям.
  •    Манипуляции с данными на клиентской стороне, например, скрытие или отключение элементов интерфейса пользователя (кнопок или ссылок), может привести к незаконному доступу к функциям или контенту.

  • 5.    Configuration Information Disclosure:

Угроза    раскрытия    конфигурационной информации возникает, когда злоумышленники могут получить доступ к конфигурационным данным, таким как пароли, ключи API, секреты сессии и другая чувствительная информация, которая может быть использована для несанкционированного доступа к приложению или системе, а также для проведения других видов атак.

Вот несколько распространенных способов, которыми может происходить утечка конфигурационной     информации     веб приложений:

  •    Неправильная конфигурация сервера или приложения.

  •    Уязвимости в приложении или фреймворке, которое возникает из-за некорректного обновленного или уязвимого программное обеспечение, используемое    в    веб

приложении, которое чаще всего содержит уязвимости [4].

  • Открытые и недостаточно защищенные

файлы конфигурации.

  • Утечка информации через сообщения об

  • 6.    Denial of service:

  • 7.    Attacks on Lan Resources.

  • 8.    Server-side execution of OS commands.

ошибках.

Угроза отказ в обслуживании – это кибератака на отдельный компьютер или веб-сайт с целью лишить доступа к услугам предназначенных пользователей. Ее целью является нарушение сетевых операций организации, лишая доступа ее пользователей. Отказ в обслуживании обычно достигается путем затопления целевой машины или ресурса избыточными запросами в попытке перегрузить системы и предотвратить выполнение некоторых или всех легитимных запросов.

АНАЛИЗ УГРОЗ И МЕТОДОВ БОРЬБЫ С СЕТЕВЫМИ АТАКАМИ

Многообразие методов, которые используют киберпреступники для кражи важной информации    из    веб-приложений    или дестабилизации их работы, обуславливает необходимость применения широкого спектра защитных механизмов. Исследование возможных угроз осуществляется поэтапно:

  • 1.    Идентификация угроз.

  • 2.    Оценка рисков

  • 3.    Разработка стратегий защиты и выбор методов борьбы с атаками

На данном этапе происходит идентификация всех потенциальных угроз для сетевой инфраструктуры – изучение типов атак, которые могут быть направлены на сеть, а также учитываются   специфические   уязвимости приложений, потому что при разработке вебприложений разработчики больше внимания уделяют обычно на обеспечение требуемой функциональности, а вопросам безопасности и качества программного кода уделяется недостаточно внимания [5]. В результате подавляющее большинство веб-приложений содержит уязвимости различной степени критичности.

При выявлении уязвимостей и угроз вебприложений проводится оценка рисков для определения потенциального воздействия на сеть, её ресурсы и пользователей. Данный этап включает в себя анализ вероятности возникновения атаки, потенциального ущерба, который может причинить пользователям и не только, а также какие последствия будут [6]. На основе оценки рисков определяются приоритеты в области безопасности и выделяются ресурсы для защиты от наиболее критических угроз безопасности.

Получив представление о том, какие критические процессы происходят в вебприложениях и какой ущерб они наносят системе, пользователям, разрабатываются стратегии защиты веб-приложений. Определяют меры безопасности,    например,    использование брандмауэров, межсетевых экранов и т.п., а также применение     методов     аутентификации, шифрования данных и другие средства защиты.

База    данных    приложения    содержит совокупность данных, с которыми пользователь взаимодействует в процессе работы с информационной системой. Практически всегда эти данные представляют ценность для организации, что повышает риск взлома и утраты этих сведений, поэтому защита баз данных в приложениях выходит на первый план [7].

Основные методы защиты баз данных:

  • •   Защита паролем – самый простой, но в то же

время достаточно эффективные способ защиты баз данных, который позволяет достичь       приемлемого       уровня информационной безопасности. Например, при условии двухфакторной аутентификации.

  • Криптографические    методы    защиты

(шифрование) – позволит предотвратить угрозы, связанные с кражей носителей базы данных и перехвата данных при передаче по коммуникационным каналам.

  •    Использование     инструментов     для

распределения прав доступа к объектам базы данных – гибкая система, которая позволяет системному администратору разграничивать доступ    пользователей    (или    групп пользователей) к различным объектам (таблицам, записям, представлениям и т.д.).

  •    Контроль действий пользователей баз данных – позволяет регистрировать операции, совершаемые пользователями баз данных, что позволяет значительно повысить уровень безопасности баз данных, за счет своевременного реагирования на инциденты и их расследования. Также в некоторых случаях возможна реализация отката транзакций, чтобы вернуть систему к исходному состоянию.

  •    Резервное копирование – позволяет восстановить базу данных в случае аппаратного или программного сбоя, которые могут привести к полному или частичному уничтожению информации в базе данных. В некоторых из случаев необходимо выполнение резервного копирования в реальном времени, когда потеря даже минимального количества информации может быть критична.

Для защиты сетевой инфраструктуры корпоративных WEB-приложений применяются:

  •    Технические средства защиты (инженернотехнические    решения,    позволяющие

ограничить доступ к инфраструктуре и создающие дополнительные рубежи на пути действия злоумышленников);

  •    Криптографические    методы    защиты

(шифрование, функции хеширования);

  •    Методы разграничения доступа (как на физическом, так и на программном уровне);

  •    Протоколирование и аудит;

  •    Защита от вирусов;

  •    Экранирование (использование сетевых экранов);

  •    Изоляция критичных сегментов сети.

МОДЕЛИРОВАНИЕ СЕТЕВОЙ АТАКИ И ОЦЕНКА ПОТЕНЦИАЛЬНОГО

ВОЗДЕЙСТВИЯ НА ПРИЛОЖЕНИЕ И ЕГО ПОЛЬЗОВАТЕЛЕЙ

Существует множество приложений, которые используют систему входа с помощью имени пользователя и пароля. Обычно мы создаем пароль и логин самостоятельно. На практике, если пользователь вводит имя пользователя, например, maxim и пароль student_iee_63_21, то приложение проверяет учетные данные, выполняя следующий SQL-запрос:

SELECT * FROM users WHERE username = 'maxim' AND password = 'student_iee_63_21'

При положительном результате запроса с данными пользователя система подтверждает авторизацию, при отрицательном - отклоняет попытку входа. Это создает уязвимость, позволяющую злонамеренному пользователю авторизоваться под любым логином, минуя проверку пароля. Для этого применяется SQL-инъекция с комментарием --, исключающим проверку пароля в условии WHERE [8]. К примеру, указав имя administrator'-- и оставив поле пароля пустым, злоумышленник формирует запрос вида:

SELECT * FROM users WHERE username = 'administrator'--' AND password = ' '

Этот запрос возвращает пользователя, у которого username есть administrator, и успешно регистрирует злоумышленника как этого пользователя. Реализация такой атаки представлена и описана ниже в рисунках 1-9. На рисунке 1 представлен главный экран на сайте, где можно осуществить атаку.

PortSwigger

Products v Solutions v | Research Academy Support v =

Login

Please enter your email address and password to log in.

Email address [maximokulov

Password

Forgot your password?

Remember me on this computer

Log in              I Create account

Рисунок 1. Главный экран сайта, на котором необходимо зарегистрироваться и выполнить SQL-АТАКУ.

Figure 1. The main screen of the website where you need to register and perform an SQL attack.

Ввод любых символов, чтобы посмотреть в коде SQL генерирует ли данное действие ошибку (рисунок 2).

На рисунке 3

Рисунок 2. Проверка на ошибку в коде SQL.

Figure 2. Checking for an error in the SQL code.

представлена ошибка

неправильного входа в систему.

Рисунок 3. Вывод сообщения об ошибке входа. Figure 3. Output of the login error message

Если посмотреть через Рroxy, то будет выдан результат, представленный на рисунках 4-5.

Рисунок 4. Просмотр через P ROXY исходного кода для обнаружения ошибки.

F IGURE 4. P ROXY VIEWING OF THE SOURCE CODE TO DETECT AN ERROR .

Рисунок 5. Просмотр через P ROXY исходного кода для обнаружения ошибки.

Figure 5. Proxy viewing of the source code to detect an error.

Базовая модель запросов SQL оформляется по структуре, представленной на рисунке 6.

username: administrator

I select * from users where username='' and passwor

Рисунок 6. Базовая модель SQL-ЗАПРОСА. Figure 6. The basic SQL query model.

Модель запроса SQL для решения задания оформляется по структуре, представленной на рисунке 7.

username: administrator select * from users where username='administrator 1' and passwords'1

Рисунок 7. Решение задачи для входа в систему. Figure 7. Solving the login problem.

My Account

Your username is: administrator

Updateernailj

Рисунок 8. Результат атаки (SQL-ИНЪЕКЦИИ), КОТОРАЯ ОСУЩЕСТВЛЯЕТ ВХОД В СИСТЕМУ ПОД ПРАВАМИ АДМИНИСТРАТОРА.

Figure 8. The result of an attack (SQL injection) THAT LOGS IN AS AN ADMINISTRATOR

Рисунок 9. Результат атаки (SQL-ИНЪЕКЦИИ), КОТОРАЯ ОСУЩЕСТВЛЯЕТ ВХОД В СИСТЕМУ ПОД ПРАВАМИ

АДМИНИСТРАТОРА.

Figure 9. The result of an attack (SQL injection)

THAT LOGS IN AS AN ADMINISTRATOR

МЕРОПРИЯТИЯ ПО ОБЕСПЕЧЕНИЮ ЗАЩИТЫ WEB-ПРИЛОЖЕНИЙ

Существуют эффективные методы защиты, позволяющие устранить данные уязвимости и обеспечить безопасность веб-приложений. В соответствии с рекомендациями  OWASP, первоочередные меры включают: корректную настройку    всех    элементов    системы, своевременное обновление ПО, отключение неиспользуемых сервисов, обязательную смену паролей по умолчанию, деактивацию невостребованных учетных записей (включая системные). Обязательным условием является использование шифрования для всех внутренних сетевых коммуникаций. Если функционал приложения позволяет, следует настроить систему разграничения прав, предоставив пользователям только необходимые для работы полномочия. Как правило, реализации этих базовых мер защиты достаточно для достижения требуемого уровня безопасности.

Для повышения надежности процедуры аутентификации в веб-системах применяют различные решения - от встроенных компонентов до автономных серверов проверки подлинности. Параллельно внедряют систему управления уязвимостями и регулярно проводят тестирование на предмет возможного взлома [9].

Когда организация использует сторонние приложения с закрытым исходным кодом, службе ИБ целесообразно применять специализированные инструменты для сканирования уязвимостей по методу "черного ящика" во время приемки ПО. Выявленные критические проблемы становятся основанием для отправки продукта на доработку. Для собственных разработок необходимо организовать процесс безопасного создания программного обеспечения, включающий проверку кода специальными анализаторами на всех этапах. Это помогает обнаруживать и устранять потенциальные уязвимости еще на стадии разработки, что в конечном итоге экономит ресурсы.

Современные средства анализа поддерживают два основных режима работы: статическую проверку исходного кода и динамическое тестирование работающего приложения. Для последнего варианта необходимо задать параметры взаимодействия и подготовить тестовые данные. Комплексное применение этих подходов дает возможность выявлять слабые места до ввода системы в эксплуатацию. Однако организация полноценного цикла проверки программного обеспечения требует существенных вложений как финансовых, так и временных.

В некоторых случаях оперативное обновление работающего приложения невозможно. Когда обрабатываемые данные представляют особую ценность, игнорировать потенциальные уязвимости становится недопустимо. В подобных ситуациях эффективным решением может стать развертывание межсетевого экрана уровня приложений (Web Application Firewall, WAF). На рынке доступны различные реализации WAF – как коммерческие продукты, так и решения с открытым исходным кодом [10]. При установке системы в разрыв сетевого соединения (режим прокси или моста) появляется возможность активного блокирования атак в реальном времени.

Альтернативный пассивный режим работы предполагает анализ копии сетевого трафика с ограниченным функционалом – мониторинг угроз и генерацию оповещений. Для детектирования атак применяются: сравнение с известными сигнатурами, проверка по репутационным базам, алгоритмы машинного обучения, анализ поведенческих паттернов, пользовательские фильтрующие правила.

Современные WAF-решения часто комплектуются дополнительными функциональными модулями: инструменты динамического тестирования на уязвимости, возможности виртуального устранения обнаруженных проблем, механизмы управления процессами аутентификации, средства интеграции с другими компонентами защиты.

Современные системы WAF часто оснащаются расширенным функционалом. Среди дополнительных возможностей стоит отметить инструменты для выявления уязвимостей в режиме реального времени, технологии временного устранения обнаруженных проблем, средства контроля доступа пользователей, а также интеграционные механизмы с другими защитными системами. Подобный комплексный подход значительно уменьшает количество потенциальных угроз для веб-приложений. Особую опасность представляют внутренние угрозы безопасности. К ним относятся как рядовые сотрудники, имеющие доступ к конфиденциальным данным в рамках своих обязанностей, так и администраторы баз данных, обладающие неограниченными правами доступа к серверам. Такие пользователи могут обходить стандартные механизмы защиты вебприложений, получая прямой доступ к информации. Для противодействия этим рискам применяются специализированные системы мониторинга и контроля обращений к базам данных. В зависимости от принципа работы и архитектуры, все подобные решения можно классифицировать на три основные категории. Каждый тип систем предлагает уникальный подход к обеспечению безопасности корпоративных данных.

Первая категория защитных систем функционирует по аналогии с межсетевыми экранами веб-приложений, но с важным отличием - они контролируют обмен данными не между клиентами и сервером, а между сервером приложений и серверами баз данных. Технология работы таких решений включает декодирование протоколов взаимодействия с СУБД и последующую проверку соответствия заданным политикам безопасности. Реализованы два основных сценария развертывания: активный режим с размещением системы непосредственно в канале передачи данных (прокси-режим) и пассивный вариант, требующий лишь копии сетевого трафика для анализа.

Для мониторинга локальных подключений к базам данных применяются специальные программные агенты, устанавливаемые на серверы СУБД. Однако при работе с традиционными трехзвенными архитектурами возникает характерная проблема - все запросы к базе данных идут от имени единой системной учетной записи веб-приложения, что затрудняет идентификацию конкретного пользователя, инициировавшего запрос. Для решения этой задачи предусмотрены механизмы интеграции с WAF, анализирующим исходные HTTP-запросы, либо альтернативный вариант - передача копии пользовательского трафика в систему защиты БД.

Современные решения данного класса предлагают ряд дополнительных функций, способствующих повышению общей безопасности: автоматизированное выявление уязвимостей в конфигурациях СУБД, инструменты обнаружения и каталогизации баз данных в корпоративной сети, технологии динамического маскирования конфиденциальных данных (включая финансовую информацию), средства построения детализированных матриц доступа, системы мониторинга изменений прав пользователей для оперативного выявления несанкционированных действий.

В ситуациях, когда технические ограничения не позволяют использовать стандартные методы анализа трафика или установить защитное решение в разрыв соединения, применяются специализированные системы защиты. Эти решения работают по иному принципу, обеспечивая контроль доступа к базам данных даже в сложных условиях.

Основу таких систем составляет специальный агент, который устанавливается непосредственно на сервер веб-приложения. Этот компонент интегрируется с драйверами баз данных, через которые приложение взаимодействует с СУБД. Благодаря такому расположению, агент получает возможность перехватывать и анализировать как входящие запросы от пользователей, так и исходящие обращения приложения к базам данных. Ключевым преимуществом данного подхода является точная идентификация пользователей. Агент может сопоставить каждый SQL-запрос с конкретным клиентом, что невозможно при анализе только трафика между сервером приложений и СУБД. На основе этой информации система позволяет: динамически маскировать конфиденциальные данные в результатах запросов, блокировать потенциально опасные или неавторизованные обращения, тонко настраивать бизнес-логику работы пользователей с приложением, контролировать весь цикл обработки запроса от клиента до базы данных.

Третья категория защитных решений использует криптографические методы для предотвращения утечек информации. Эти системы обеспечивают выборочное шифрование отдельных полей и таблиц в базах данных, гарантируя конфиденциальность хранимой информации. Доступ к зашифрованным данным предоставляется исключительно авторизованным пользователям, при этом все их действия тщательно протоколируются для последующего аудита.

Для усиления защиты могут применяться дополнительные меры безопасности, включая строгую двухфакторную аутентификацию. Это значительно усложняет возможность несанкционированного доступа, даже если злоумышленнику удастся получить учетные данные пользователя.

Внедрение подобных систем позволяет минимизировать риски компрометации данных в веб-приложениях. В случае возникновения инцидентов безопасности, детальные журналы действий помогают быстро выявить источник проблемы и собрать необходимые доказательства.

Особое внимание следует уделять защите резервных копий. Если данные в основной базе не шифруются, обязательно нужно использовать шифрование для бэкапов. Это последний, но крайне важный рубеж защиты, который может предотвратить утечку информации при компрометации основных систем. Резервные копии следует хранить на отдельно расположенных носителях с ограниченным доступом, что дополнительно снижает риски.

ЗАКЛЮЧЕНИЕ

На основе проведенных исследований, теоретических    изысканий    и    анализа деятельности, структуры рассматриваемого web-приложения была показана необходимость защиты корпоративных web-приложений. В ходе статьи были разобраны ключевые аспекты безопасности веб-приложений, начиная с классификации угроз и заканчивая конкретными мерами по обеспечению их безопасности.

Анализ угроз и методов борьбы с сетевыми атаками позволил выявить разнообразные угрозы, которые могут подвергнуть вебприложения риску, а также разработать стратегии защиты от них. Моделирование сетевых атак на веб- приложение позволило оценить уровень защищенности приложения и определить его уязвимости. Мероприятия по обеспечению защиты веб-приложений были представлены в виде конкретных шагов и рекомендаций, которые могут быть реализованы для повышения уровня безопасности.

Таким образом, статья подчеркивает важность обеспечения безопасности веб-приложений в современном информационном мире. Понимание угроз и применение соответствующих мер защиты являются ключевыми аспектами работы веб-разработчиков     и     администраторов, направленных на обеспечение безопасности корпоративных ресурсов и защиту данных пользователей.

Статья