Диплом: Разработка программного обеспечения для повышения эффективности защиты веб-приложения от XSS-атак

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
22
Отслеживание их функционирования в рамках работы;
Анализ заключений экспертов.
В результате материала, изложенного в первой главе, можно сделать
вывод, что автоматизированные информационные системы являются
сложными программными комплексами с самыми различными областями
применения, в том числе такие системы применяются и при управлении
торговыми предприятиями для снижения затрат на выполнение типовых
операций и повышения точности учета. То есть управление предприятиями в
настоящее время немыслимо без применения информационных систем, что
накладывает на методы управления определенные ограничения и имеет свои
особенности. Существующие методы планирования продаж подразумевают
использование информационных систем для упрощения вычислений и
получения отчетных документов.
23
2 ГЛАВА 2 ОСОБЕННОСТИ ЗАЩИТЫ ОТ XSS-АТАК
2.1 Понятие и виды XSS –атак
Межсайтовый скриптинг это уязвимость, которая позволяет
злоумышленнику внедрить вредоносный код в входные параметры веб-
страницы, отправляемые веб-браузеру пользователя. Внедряемый
вредоносный код похож на SQL инъекцию и может быть использован тремя
различными способами в виде «хранимой (stored) XSS», «отраженной
(reflected) XSS» и «XSS основанной на DOM-модели». [3]
Отраженная XSS-атака является наиболее распространенным и
уязвимость, которую эксплуатирует данный вид атаки очень легок в
детектировании. Однако, сложно осуществить отраженную XSS атаку
потому, что вредоносный код необходимо внедрить в URL адрес, затем
зараженный URL отправить пользователю чтобы он перешел по зараженной
ссылке для запуска внедренного вредоносного кода. Хотя отраженная XSS
атака сложна в реализации, но не стоит игнорировать данную уязвимость
потому, что как говорится в английской пословице «Малая течь, большой
корабль ко дну пустит». Рассмотрим наиболее опасные виды атак,
использующих отраженную XSS-уязвимости.
«Базовая отраженная XSS-атака»
Суть атаки заключается в том, что, когда пользователь переходит на
веб-сайт, содержащую отражаемую XSS уязвимость, выводится
предупреждающее окно. Это означает что выполнен скриптовый код.
Однако, если злоумышленник отправит данный URL
(http://site.ru/<script>alert(“XSS успешно выполнен”)</script>) своей жертве в
таком виде, то скорее всего продвинутый пользователь заметит что-то
неладное и не перейдет по ссылке. Потому что ссылка покажется
пользователю не надежным. Одним из методов сокрытия вредоносной
24
ссылки является использование кодирования RFC 1738. [4] Как мы видим на
рисунке 1, нетрудно обнаружить, что после кодирования вредоносного URL,
скриптовый код становится «грязным» и его трудно распознать.
Рисунок 1 – Кодирование ссылки
Тем не менее рассмотренная атака не выглядит надежным и
приемлемым для обмана пользователей. Поэтому злоумышленники
используют отраженную XSS с другими технологиями, чтобы повысить
пользу от эксплуатации уязвимости. Это послужило появлению нового вида
атаки, так называемой «кликджекинг (от англ. Clickjacking).
«Кликджекинг»
Кликджекинг (англ. Clickjacking – «угон клика») – это вид атаки,
при котором злоумышленник получает доступ к конфиденциальной
информации или компьютеру жертвы. [5] Его суть заключается в том, что
пользователь, совершая клик на специально сформированной странице
злоумышленника, на самом деле кликает по ссылке на совершенно другом
сайте.
Особенности «кликджекинга»:
угон ссылки происходит, когда пользователь нажимает кнопку,
сформированную злоумышленником, либо переходит по ссылке;
нет необходимости в инъецируемых скриптах, что делает атаку
более простым;
25
атака основана на Dynamic HTML;
для захвата ссылки злоумышленник всего лишь должен
контролировать некоторую часть веб-сайта.
Благодаря «кликджекингу» появился другой вид атаки, который
сочетает в себе JavaScript и тег Iframe. Специалисты по информационной
безопасности назвали атаку «Cross-Frame Scripting (XFS)».
«Cross-Frame Scripting (XFS)»
Эта атака обычно бывает успешной только в сочетании с
социальной инженерией. Суть атаки состоит в том, что злоумышленник
убеждает пользователя перейти на веб-страницу, сформированную
злоумышленником. Затем страница злоумышленника загружает вредоносный
JavaScript и фреймворк HTML, указывающий на легитимный сайт. Когда
пользователь вводит учетные данные в легитимный сайт в Iframe,
вредоносный JavaScript код крадет нажатия клавиш. [6]
Существует еще один вид XSS-атаки использующая отраженную
XSS-уязвимость, называемая «Redirection XSS».
«Redirection XSS»
«Redirection XSS» – это инстанцирование XSS-уязвимостей с
инъекциями, подгружаемые с ненадежного источника, при которых
вредоносный код вводится в надежные скрипты веб-приложения. Атака
«Redirection XSS» выглядит следующим образом:
данные поступают в веб-приложение через ненадежный
источник, чаще всего в виде веб-запроса;
полученные данные включаются в динамический контент веб-
приложения, который отправляется веб-пользователю без проверки на
наличие вредоносного кода.
26
Вредоносный контент, отправляемый в веб-браузер пользователя, часто
принимает форму сегмента JavaScript, но может также включать HTML, Flash
или любой другой тип кода, который сможет выполнить веб-браузер.
До этого момента были рассмотрены актуальные атаки,
эксплуатирующие «отраженные XSS-уязвимости». Атаки, использующие
«хранимые XSS-уязвимости» являются наиболее опасными в отличие от
«отраженных XSS», так как «хранимые XSS» могут быть использованы на
протяжении длительного времени. «Хранимые XSS-атаки» имеют множество
преимуществ перед отраженными атаками. В основном используются для
хищения личных данных, таких как cookies или другой информации о сеансе
или же перенаправляет пользователя на вредоносный веб-контент,
контролируемый злоумышленником, или выполняет другие вредоносные
операции на ПК пользователя.
Кража куков «XSS Stealing cookies»
Кража куков (от англ. Stealing cookies) разновидность XSS-атаки,
направленная на кражу файлов кук. [7] Как известно, cookies – это
небольшой фрагмент данных, который хранится в веб-браузере пользователя
и включает в себя пользовательские данные и много полезной информации,
используемой для распознавания пользователя для доступа к веб-
приложению. Cookies генерируются на стороне веб-сервера и отправляется
веб-браузеру пользователя для сохранения ее в локальном хранилище веб-
браузера. При последующем обращении пользователя к веб-приложению,
сохраненные cookies будут отправлены веб-серверу для распознавания
пользователя и выдачи доступа к веб-ресурсу основываясь на информации
записанной в cookies.
Иногда злоумышленники хотят совершить долгосрочную атаку, чтобы
они могли внедрить вредоносный код для перенаправления пользователей на
загрузку троянского коня. Большинство специалистов по информационной
27
безопасности называют данную атаку «XSS Based Trojan Horse», в переводе с
английского означает «XSS атака с внедрением троянского коня».
«XSS атака с внедрением троянского коня»
Данный вид атаки предусматривает, что злоумышленник должен
заставить пользователя загрузить троянский конь. Троянский конь – это
вредоносная программа, проникающая в компьютер под видом легального
программного обеспечения. [8]
Атака с внедрением троянской программы проходит следующим
образом. Обычно, злоумышленник использует хранимую XSS-уязвимость
веб-приложения, внедряет ссылку скачивания с троянской программой в
динамический контент веб-сайта или в теги. Например, если внедрить
вредоносный код для скачивания троянской программы в область с хранимой
XSS-уязвимостью, любой, кто посетит эту страницу, автоматически перейдет
по вредоносной ссылке и в фоновом режиме загрузит троянский JavaScript
код. Загруженный JS-код обработается браузером пользователя и в фоновом
режиме загрузит оставшуюся часть вредоносного кода на компьютер
пользователя. Жертва не заметит атаку, так как используются Iframe для
создания дочернего окна в родительском окне, настройках которого
прописан нулевой размер.
«XSS атака, основанная на DOM-модели»
XSS в DOM-модели возникает на стороне клиента во время обработки
данных внутри JavaScript сценария. Данный тип XSS получил такое
название, поскольку реализуется через DOM (Document Object Model) — не
зависящий от платформы и языка программный интерфейс, позволяющий
программам и сценариям получать доступ к содержимому HTML и XML-
документов, а также изменять содержимое, структуру и оформление таких
документов. [9] При некорректной фильтрации возможно модифицировать
28
DOM атакуемого сайта и добиться выполнения JavaScript-кода в контексте
атакуемого сайта.
2.2 Анализ существующих методов обеспечения защиты
информации WEB-серверов от XSS атак
Защита на стороне сервера включает в себя следующие возможные
варианты:
кодирование управляющих HTML - символов, JavaScript, CSS и
URL перед отображением в браузере. Для фильтрации входных параметров
можно использовать следующие функции: filter _ sanitize _ encoded (для
кодирования URL), htmlentities (для фильтрации HTML);
кодирование входных данных. Например, с помощью библиотек
OWASP Encoding Project, HTML Purifier, Anti - XSS Class;
регулярный ручной и автоматизированный анализ безопасности
кода и тестирование на проникновение с использованием таких
инструментов, как: Nessus, Nikto Web Scanner и OWASP Zed Attack Proxy;
указание кодировки на каждой web - странице (например, ISO -
8859 - 1 или UTF - 8) до каких - либо пользовательских полей;
обеспечение безопасности cookies, которая может быть
реализована путём ограничения домена и пути для принимаемых cookies,
установки параметра HttpOnly, использованием SSL;
использование заголовка Content Security Policy, позволяющего
задавать список, в который заносятся желательные источники, с которых
можно подгружать различные данные, например, JS, CSS, изображения.
Защита на стороне клиента включает в себя следующие возможные
варианты:
регулярное обновление браузера до новой версии;
29
установка расширений для браузера, которые будут проверять
поля форм, URL, JavaScript и POST - запросы, и, если встречаются скрипты,
применять XSS - фильтры для предотвращения их запуска.
Примеры подобных расширений: NoScript для FireFox, NotScripts для
Chrome и Opera [1].
XSS - атака находится на третьем месте в рейтинге рисков web -
приложений согласно OWASP [1]. Долгое время программисты не уделяли
должного внимания XSS - атакам, считая их неопасными. Однако, это
мнение ошибочно: на странице или в HTTP - Cookie могут быть достаточно
уязвимые и критичные данные (например, идентификатор сессии
администратора или номера платёжных документов), а там, где отсутствует
защита от CSRF, атакующий может выполнить любые действия, доступные
пользователю. Также стоит отметить, что межсайтовый скриптинг может
быть использован для проведения DoS - атаки [1].
Ниже приведена содержательная постановка задачи.
Дано: Web-рвер Intel Тандем 4308 Tower 2x Xeon E5-2600v2.
Сервер служит, в первую очередь, для хранения учетных записей
сотрудников и определения их прав по доступу к информации.
Новейший двухпроцессорный сервер в вертикальном исполнении
(возможно размещение в RACK 4U) на Xeon нового поколения E5-2600.
Поддержка памяти стандарта DDR3-1600, интерфейсы SAS и SATA на
скорости 6Gb, до 8 слотов расширения PCI Express 3.0 для внешних
контроллеров. Встроенная поддержка виртуализации в вариантах VMWare и
Microsoft.
Шасси имеет избыточные блоки питания и может идти в
конфигурациях с дисками форм-фактора 3»5 (4 или 8 штук), а также с
дисками 2»5 (8, 16 штук).
30
Поддерживаются диски с интерфейсом SAS/ SATA, а также
твердотельные SSD-диски. Возможна установка RAID-контроллеров с
расширенным функционалом. Стоимость сервера от 130000 руб.
Характеристики сервера приведены в таблице 1
Таблица 1 - Характеристики сервера
Поддерживаемые
процессоры
Два 4, 6 или 8-ядерных процессора Intel® Xeon® серии E5-
2600
Тип памяти, объем
16 слотов для памяти DDR3 1333/ 1600 с коррекцией ошибок
ECC
Разъемы расширения
6 слотов PCI Express* 3.0 x8 (до 8 слотов на более
продвинутых модификациях)
Жесткие диски
2 порта Serial ATA III 6G с поддержкой RAID 0, 1, 10
4 + 4 порта SAS/ SATA
(работа в режиме SAS и поддержка RAID включается
специальными ключами-активаторами)
Сетевые подключения
2x Gigabit Ethernet controller (4x на некоторых
модификациях)
Удаленный мониторинг
Intel® System Management Software, IPMI 2.0, Intel® Remote
Management Module 4 (Lite)
Блоки питания
Выбор из нескольких вариантов:
Фиксированный 550W, два 750W, 1200W или 1600W с
горячей заменой
Отсеки расширения
8 отсеков под диски 3»5
1-2-3 отсека под внешние устройства 5.25»
Варианты корпуса
Вертикальный - 43.8см х 63.2см х 17.3см
или в шкаф 19» (RACK 4U)
Прочие возможности
2x USB разъема на лицевой панели, Дверка, закрывающаяся
на ключ
Совместимость с
операционными системами
VMWare* vSphere 5.0
Microsoft* Windows* Server 2008R2, 2012
Microsoft* Windows* 7 Prof, 32-bit / 64-bit
Red Hat* Linux Enterprise Server
SUSE* Linux Enterprise Server
В виду совместимости со всеми операционными системами способен
осуществить требуемую защиту информации с применением ПО всех
известных разработчиков.
31
XSS атаки могут быть осуществлены следующим образом:
атакер помещает вредоносный код на взломанны WEB-сайт;
пользователь посещает это WEB-сайт и предоставляет свое куки;
WEB-сайт позволяет пользователю авторизоваться;
вредоносный код посылает куки пользователя атакеру.
Необходимый уровень защиты Web-серверов от XSS атак с точки
зрения показателей целостности, доступности и конфиденциальности
информации обеспечивают следующие средства (методы, способы) защиты:
1. Защита на стороне сервера включает в себя следующие
возможные варианты:
кодирование управляющих HTML - символов, JavaScript, CSS и
URL перед отображением в браузере. Для фильтрации входных параметров
можно использовать следующие функции: filter _ sanitize _ encoded (для
кодирования URL), htmlentities (для фильтрации HTML);
кодирование входных данных. Например, с помощью библиотек
OWASP Encoding Project, HTML Purifier, Anti - XSS Class;
регулярный ручной и автоматизированный анализ безопасности
кода и тестирование на проникновение с использованием таких
инструментов, как: Nessus, Nikto Web Scanner и OWASP Zed Attack Proxy;
указание кодировки на каждой web - странице (например, ISO -
8859 - 1 или UTF - 8) до каких - либо пользовательских полей;
обеспечение безопасности cookies, которая может быть
реализована путём ограничения домена и пути для принимаемых cookies,
установки параметра HttpOnly, использованием SSL;
использование заголовка Content Security Policy, позволяющего
задавать список, в который заносятся желательные источники, с которых
можно подгружать различные данные, например, JS, CSS, изображения.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран