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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
32
2. Защита на стороне клиента включает в себя следующие
возможные варианты:
регулярное обновление браузера до новой версии;
установка расширений для браузера, которые будут проверять
поля форм, URL, JavaScript и POST - запросы, и, если встречаются скрипты,
применять XSS - фильтры для предотвращения их запуска. Примеры
подобных расширений: NoScript для FireFox, NotScripts для Chrome и Opera.
Наиболее удобным, менее затратным и регулярно обновляющимся
способом защиты от XSS атак является соответствующее программное
обеспечение как сам виндоус с обновляемым браузером – порядка 10000 руб
в год, так и отдельные утилиты.
Так, одна из самых популярных утилит под названием «Find-Link»,
поможет обнаружить и удалить все скрытые ссылки. А утилита, известная
как «Find-Port», найдет все открытые порты на сервере. К другим полезным и
эффективным сервисам можно отнести упрощенный HTML валидатор,
который проверит сайт на ошибочные HTML теги. Имеется и сетевой сканер
«Find-XSS-Fire», выполненный как Add-on для браузера Firefox: он
осуществляет проверку любого проекта на XSS, SQL injection (SQL
инъекция), PHP including. Но самый мощный и полезный для любого веб-
мастера инструмент - это сканер кода. Его основное преимущество в
сравнении с прочими сетевыми сканерами заключается в том, что он
проверяет непосредственно сам код. Именно поэтому данный инструмент
способен обнаружить такие уязвимости, которые другие обычные сканеры
попросту не смогут найти.
Большинство специалистов по ИБ сходятся во мнении, что, хотя
средства автоматизации поиска интернет угроз становятся более
«интеллектуальными», требования к уровню знаний пользователей так же
растут. И для эффективного использования того или иного инструмента по
33
обеспечению безопасности информации уже необходимо знать основы в
соответствующей области знаний.
Рассмотрим наиболее популярные решения, направленные на
детектирование XSS-уязвимостей.
XenoTix – утилита для тестирования на проникновение в систему,
обнаруживающая возможности использования XSS. Осуществляет
нагрузочное тестирование с использованием различных видов XSS-нагрузок.
Имеет возможность как ручного, так и автоматического запуска алгоритмов,
нагружающих веб-приложение. Несмотря на простоту XenoTix обладает
несколькими ограничениями. При загрузке файлов на компьютер
пользователя могут запускаться только 16-битные исполняемые файлы. К
тому же, у пользователя каждый раз при загрузке файла или атаке через
обратную оболочку всплывают сообщения, поскольку приложение
использует апплеты, требующие само подписания (то есть по умолчанию
блокируемые браузером). Также поиск осуществляется путем создания
частичной карты веб-сайта.
Wapiti является консольным сканером веб-приложений, который
работает по принципу черного ящика. В плане организации тестирования –
Wapiti анализирует не исходники веб-приложения, а ответы сервера на
запросы с измененными параметрами. Утилита сначала анализирует
структуру сайта, ищет доступные сценарии, анализирует параметры, а затем
включает свой фаззер. Wapiti поддерживает поиск как хранимых, так и
отраженных уязвимостей, но не XSS основанные на DOM-модели.
Недостатком является то, что Wapiti не дает возможности
предварительно авторизоваться в системе, и может проверять только
функционал, доступный для незарегистрированного пользователя. Данная
программа написана на языке Python. Как известно Python является
34
однопоточным языком программирования. Таким образом, невозможно
параллельное выполнение задач с целью ускорения работы приложения.
NetSparker – является комплексным инструментом по поиску
угроз информационной безопасности, который позволяет разработчикам и
пользователям обнаруживать широкий спектр возможных источников угроз
ИБ.
К плюсам так же можно отнести развитую систему отчетов о
найденных уязвимостях, удобный в использовании интерфейс, наличие
гибкой системы конфигурирования необходимых компонентов, наличие
облачной версии и версии для ПК.
К минусам стоит отнести высокую стоимость от $1500 за
годовую подписку (или ее продление), высокие требования к уровню
подготовки пользователей. [10]
2.3 Формирование требований к прототипу и выбор средств
разработки
Повышение эффективности защиты веб-приложения от XSS-атак путем
разработки программного обеспечения детектирования уязвимостей на
основе анализа полной карты веб-приложения.
Решение задачи
Для достижения поставленной задачи использована методика,
основанная на последовательном применении различных алгоритмов
обнаружения уязвимостей. Алгоритмы отличаются друг от друга в
зависимости от типа обнаруживаемых XSS-угроз. В ходе разработки
программного обеспечения XSS Finder использовался язык
программирования Delphi.
35
Функции, реализуемые разработанным программным
обеспечением:
детектирование всех видов XSS-уязвимостей;
предварительная авторизация в веб-приложении и хранение кука;
составление списка всех внутренних URI веб-приложения;
создание отчета о найденных уязвимостях;
формирование рекомендаций по найденным уязвимостям.
На рисунке 2 представлена диаграмма, иллюстрирующая
алгоритм поиска отраженных XSS. Так как данный вид уязвимостей
проявляется только при отправке форм, алгоритм провоцирует их отправку
методом POST включая в отправляемые элементы значения и получая ответ в
виде HTML сообщения.
Найти на странице
следующий элмент
для отправки
формы
Проверить наличие
страниц в очереди
Выполнить отправку
формы
Обработка ответа
Добавление
страницы в список
уязвимых
[Очередь пуста]
[Страница найдена в очереди]
[Элемент найден]
[Элементы остутсвуют]
[Уязвимость обнаржуена]
[XSS не
обнаружено]
Рисунок 2 – Алгоритм поиска отраженных XSS-уязвимостей
Пришедшее сообщение затем анализируется на наличие значения
уязвимости следующим образом: если пришедший JavaScript код
36
устанавливает значение, хранящееся в объектной модели документа в
истинное значение (document. vulnerable=true), то страница помечается как
содержащая потенциальную угрозу соответствующего типа, иначе страница
помечается как безопасная и не добавляется в итоговый список. Для поиска
XSS-уязвимостей, основанных на использовании объектной модели
документа – DOM, используется алгоритм, блок-схема которого показана на
рисунке 3.
Рисунок 3 - Алгоритм поиска XSS-уязвимостей,
эксплуатирующих DOM.
В ходе работы алгоритма осуществляется анализ кода страницы
на наличие скриптов спрятанных в HTML тегах. После нахождения
содержимого всех скриптов на странице в найденных данных
осуществляется поиск вызовов методов объектной модели документа таких
как:
запись чистого HTML;
37
прямая модификация модели документа (в том числе события
Dynamic HTML);
прямое выполнение скриптов.
Для реализации поиска хранимых уязвимостей используется
алгоритм, блок схема которого показана на рисунке 4. Работа данного
алгоритма имеет свои особенности, так как в отличие от отраженных XSS –
хранимые уязвимости являются следствием сохранения скрипта в базу
данных. Данная операция должна осуществляться с помощью
предварительного POST-запроса, чтобы не позволить вредоносному коду
внести изменения в базу данных. Алгоритм во многом схож с алгоритмом
поиска отраженных XSS-угроз за исключением того, что необходимо
производить отправку формы и ждать ответа от сервера.
Найти элемент
поддерживающий
метод GET
Проверить наличие
страниц в очереди
Выполнить отправку
формы
Проверка
выполнения
скрипта
Добавление
страницы в список
уязвимых
[Очередь пуста]
[Страница найдена в очереди]
[Элемент найден]
[Элементы остутсвуют]
[Уязвимость обнаржуена]
[XSS не
обнаружено]
Ожидание ответа от
сервера
Вставка в
передаваемые
параметры XSS-
инъекции
Рисунок 4 – Алгоритм поиска хранимых XSS-уязвимостей
В случае, если скрипт выполнился, форма и XSS-инъекция
запоминается в специальную структуру вместе с прочей информацией о
38
найденной уязвимости. При выполнении скрипта продолжение поиска на
данной странице не осуществляется, поскольку при отправке формы, будет
осуществляться выполнение скрипта, находящегося в базе данных веб-
приложения. Поэтому данную проверку необходимо запускать повторно
после устранения уязвимости.
Формирование отчета о найденных уязвимостях будет доступно
после завершения поиска и при наличии записей во внутренней структуре,
хранящей найденные угрозы и их описание. На рисунке 5 представлен
фрагмент из сформированного отчета.
Рисунок 5 – Фрагмент сформированного отчета
Отчет предоставляет веб-разработчику полную информацию о
тестируемом веб-приложении. Также выдает рекомендации по устранению
каждой найденной уязвимости, это значительно облегчает работу
разработчика по их устранению. Выдача рекомендаций является большим
39
преимуществом разработанного программного обеспечения по сравнению с
аналогами.
40
3 ГЛАВА 3 ОПИСАНИЕ РАЗРАБОТАННОГО
ПРОТОТИПА
3.1 Описание функционала программного обеспечения
Программное обеспечение ИС - специальное разработанное в рамках
автоматизации программное обеспечение, реализующие разработанные
модели разной степени адекватности, отражающие функционирование
реального объекта; а также ПО общего назначения, предназначенное для
решения типовых задач анализа данных.
В рамках решения указанной задачи системным ПО выступает сама
ОС. Для всех видов серверов будет выбрана Windows 7 Professional,
поскольку нет смысла менять ОС, используемую для автоматизированной
системы управления компанией.
Требования, которым должно соответствовать создаваемое ПО:
• Стабильность, поскольку в процессе работы ИС важна ее
постоянная доступность;
• Эффективность, поскольку на основе выходных данных ИС
избираются управленческие решения;
• Простота использования для пользователя;
• Защита данных;
• Изменяемость, что вызвано планами на дальнейшее развитие
всей ИС предприятия в целом
• Компактность;
• Модифицируемость;
• Минимальные затраты на обслуживание и поддержку.
Также имеются требования, предъявляемые к программам и
приложениям, созданных в рамках автоматизированной ИС, с точки зрения
конечных пользователей, и они следующие:
41
• Все программные продукты, включенные в состав системы,
должны соответствовать требованиям, определяемым к человеко-машинному
интерфейсу;
• В приложениях автоматизированной системы должен
присутствовать стандартный интерфейс (классический вид окон, меню и
панелей инструментов, доступность настройки параметров среды);
• Приложение должно поддерживать встроенную справку и уметь
работать с контекстными подсказками;
• В процессе работы с приложением данные должны быть
защищены от неправильных действий пользователя.
Инструментальное программное средство определяется на основе
выбранной и утверждённой методологии и стратегии автоматизации задачи.
На этапе системного анализа лучше всего применять метод
функционального моделирования, поддерживаемый таким ПО, как ППП
Design/IDEF 3.5. Его выбор связан с тем, что данный ППП рассматривается
как средство CASE-технологий и обеспечивает строгое соответствие
принципов функционально-модульного или структурного подхода к
разработке. Нотация IDEF0, в которой создаются диаграммы бизнес-
процессов с применением принципов декомпозиции, соответствует всем
требованиям указанного подхода. В рамках сравнения с другими CASE-
средствами, к примеру: ARIS, BP Win, ER Win, также широко применяемыми
в российском бизнес-секторе, ППП Design/IDEF 3.5 становится относительно
недорогим и не менее качественным средством разработки. Т.к. автономная
задача планирования регулярных закупок материальных ценностей включает
в себя менее десяти уровней декомпозиции, используемое инструментальное
средство будет являться наиболее эффективным.
На этапе системного синтеза важно выбрать ПО для разработки
программных модулей, непосредственно составляющих указанную ИС.

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

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