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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
2
Оглавление
ВВЕДЕНИЕ .............................................................................................................. 3
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ ...................................................................................................... 6
1.1 Основные понятия, классификация и структура информационных
систем .................................................................................................................... 6
1.2 Жизненный цикл и модели жизненного цикла информационных
систем .................................................................................................................. 14
1.3 Оценка качества разработки программного обеспечения .................... 19
ГЛАВА 2 ОСОБЕННОСТИ ЗАЩИТЫ ОТ XSS-АТАК .................................... 23
2.1 Понятие и виды XSS –атак ...................................................................... 23
2.2 Анализ существующих методов обеспечения защиты информации
WEB-серверов от XSS атак ............................................................................... 28
2.3 Формирование требований к прототипу и выбор средств разработки 34
ГЛАВА 3 ОПИСАНИЕ РАЗРАБОТАННОГО ПРОТОТИПА ........................ 40
3.1 Описание функционала программного обеспечения ............................ 40
3.2 Структура базы данных и основные алгоритмы работы ...................... 44
3.3 Руководство по использованию прототипа ........................................... 53
ЗАКЛЮЧЕНИЕ ..................................................................................................... 59
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ ............................................. 61
Приложение. Фрагмент листинга программного кода ...................................... 66
3
ВВЕДЕНИЕ
Актуальность работы связана с тем, что современные средства защиты
информации предлагают широкий спектр алгоритмов и программного
обеспечения способного предотвращать различные угрозы информационной
безопасности. В большинстве случаев, требуется средство выполняющее
строго определенную функцию (в нашем случае анализ XSS-уязвимостей
сайта) и не использующего лишний функционал, который может замедлить
работу вычислительной системы и увеличить потребление ресурсов. К тому
же использование комплексных средств по защите информации может быть
не всегда доступно и целесообразно с финансовой точки зрения.
Большинство веб-приложений предусматривает функцию авторизации
на веб-ресурсе для увеличения привилегий пользователя, т.е.
авторизованным пользователям будет доступен весь предоставляемый
функционал веб-ресурса. Но в существующих решениях по детектированию
XSS-уязвимостей поиск осуществляется путем создания частичной карты
веб-сайта. Это является огромным недостатком так как XSS-уязвимость
может находиться в недоступной для поиска части веб-ресурса.
Обеспечение информационной безопасности вычислительных систем
является одной из приоритетных задач, решаемой любой организацией, в
хозяйственной деятельности которой применяются алгоритмы сбора,
обработки, хранения, передачи информации. Среди множества видов угроз
информационной безопасности существует категория опасностей,
негативные воздействия которых могут провоцировать сами пользователи
информационных ресурсов компании, подвергая, таким образом, опасности
внутреннюю вычислительную сеть и устройства в нее входящие. Все эти
угрозы стали возможны благодаря широкому распространению сети
Интернет. Ведь Интернет стал неотъемлемой частью нашей повседневной
жизни. Например, мы обычно переходим в Google для поиска информации,
4
Amazon или E-Bay для того чтобы купить книги и многие другие товары, и
мы также, часто посещаем социальные сети для общения с друзьями. Но при
этом никто не задумывается о безопасности своих данных в цифровой среде.
Десять лет назад большинство веб-приложений были статическими и
не интерактивные с пользователями, в них почти не было уязвимостей,
которые могли быть использованы злоумышленниками, поэтому веб-
разработчики проигнорировали основы безопасности веб-приложений.
Однако на сегодняшний день существуют миллионы динамических веб-
сайтов с множеством новых технологий, которые выполняются и
используются в веб-браузерах. Данные технологии позволяют подключать к
веб-приложениям различные модули, которые увеличивают взаимодействие
посетителей с веб-ресурсом, например, доски объявлений, формы обратной
связи и т.д.
Однако эти новшества имеют и отрицательную сторону. Динамические
веб-сайты обеспечивают хорошую платформу для злоумышленников, для
внедрения вредоносного кода. С помощью вредоносного кода
злоумышленник может получить доступ к данным авторизации
пользователей и, выдавая себя за них, совершать противоправные действия
как на локальных компьютерах пользователей, так и на серверах и сетевом
оборудовании компании, меняя конфигурацию сети и программного
обеспечения, выводя из строя дорогостоящее оборудование. Высокая
вероятность данных угроз, при отсутствии должных мер по соблюдению
правил и норм информационной безопасности, подвергают компании
большим финансовым и репутационным рискам.
Одним из таких видов опасностей является межсайтовый скриптинг, в
англоязычной литературе, называемый – XSS (cross site scripting, x –
используется в данной аббревиатуре для краткости, с – не используется,
чтобы избежать путаницы с CSS). [1] Межсайтовый скриптинг является
5
одним из самых распространенных по версии OWASP – открытого проекта
обеспечения безопасности веб-приложений. [2] С помощью XSS-уязвимостей
злоумышленник внедряет вредоносный программный код в веб-страницу,
отправляемую сервером клиенту. Данный код может позволить получить
доступ к данным авторизации пользователя и использовать ее с целью
совершения противоправных действий в отношении защищаемой
информации.
Объектом исследования является информационная безопасность,
предметом – защита от XSS –атак.
Цель работы - разработка прототипа программного обеспечения для
обнаружения XSS-уязвимостей.
Задачи работы:
1. анализ теоретических основ разработки программного
обеспечения;
2. анализ предметной области обнаружения XSS-уязвимостей;
3. формирование требований к разрабатываемому прототипу;
4. выбор средств разработки прототипа;
5. разработка прототипа и описание его структуры.
При написании выпускной квалификационной работы использовались
научные труды следующих авторов: Бузов Г.Г.[10], Воронцова С.В [11],
Гашков С. Б., Применко Э. А., Черепнев М. А. [13], Емельянова Н.А. [16],
Ишейнов В.А.[19], Осмоловский С.В.[26].
Выпускная квалификационная работа состоит из Введения, трех глав,
Заключения, Списка использованной литературы, приложений.
6
1 ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
1.1 Основные понятия, классификация и структура
информационных систем
Система понимается как объект, рассматриваемый одновременно и как
единое целое, и как некая составленная в интересах реализации
поставленных целей совокупность отдельных элементов [3].
Система определяется как совокупность совместных элементов,
имеющая либо цель работы, либо законы дальнейшего развития, так или
иначе изолированная от окружающей среды [19].
ИС поддерживают получение, хранение, анализ, поиск, представление
данных, необходимых в рамках принятия решений задач из каждой области.
Они позволяют изучить проблемы и реализовать новые продукты [20].
Сама ИС - это взаимосвязанная совокупность средств, персонала и
методик, применяемых для сохранения, анализа, представления данных в
интересах реализации поставленной цели [5].
Современное понимание ИС заключается в применении ПК в качестве
главного технического средства обработки данных.
Также, техническое воплощение ИС не будет значить ничего, если не
будет учтена деятельность человека, которому нужна производимая
информация и без которого нельзя ее получить и отобразить [6].
ИС можно определить, как сложную кибернетическую систему,
объединяющую потоки информации аппарата и объекта управления
экономической системы.
ИС включает в себя источник информации, аппаратную часть ИС,
программную часть ИС, а также потребителя данных.
7
Для адекватной работы АИС она включает в себя подсистемы
обеспечивающей части.
Среди обеспечивающих подсистем определяют информационное,
математическое, техническое программное, правовое и организационное
обеспечение.
ИО (информационное обеспечение) представляет собой совокупность
информационных ресурсов в распоряжение отдельного объекта или субъекта.
ИО АИС обычно состоит из внемашинного и внутримашинного ИО [25].
ТО (техническое обеспечение) представляет из себя комплекс
технических средств, необходимых для работы АИС, а также текущая
документация на эти техпроцессы и средства [21].
МО (математическое обеспечение) являются совокупностью
математических методов, алгоритмов, моделей и программ для создания
целей, задач АИС, а также адекватной работы совокупных технических
средств.
ПО (программное обеспечение) считается совокупностью программ и
документов, которые нужны для нормальной работы [26].
ОО (организационное обеспечение) считается совокупностью средств и
методов, которые описывают действия работников с техническими
средствами и между собой в рамках внедрения и эксплуатации АИС [22].
Пр. О (правовое обеспечение) считается сводом правовых норм,
описывающих создание, юридический статус и работу АИС, определяющих
порядок получения, модернизации и применения данных.
АИС и ее составные части могут находиться в одном месте, если связь
между компонентами АИС (или частями 1 компонента) реализована
посредством каналов связи, то подобная АИС является распределенной.
8
ЖЦ является непрерывным процессом, начинающимся с момента
зарождения решения о важности его создания и заканчивающимся тогда,
когда продукт изымается из эксплуатации [23].
Самые распространенные стандарты, это: [1]:
ГОСТ 34.601-90 относится к АИС и устанавливает части и
этапы их создания. Также в нем описано содержание работ на любом этапе.
Этапы и стадии проекта, указанные в стандарте, зачастую соответствуют
каскадной модели ЖЦ [27].
ISO/IEC 12207 - стандарт на процессы и реализацию ЖЦ.
Относится ко всем видам заказного ПО. Стандарт не включает описания фаз,
этапов и стадий [7].
Custom Development Method от Oracle по созданию прикладных
ИС - технологический материал, разработанный до уровня шаблонов
проектных документов, которые рассчитаны на применение в проектах,
связанных с Oracle. Используется CDM для стандартной модели ЖЦ (есть
все задачи и типы), а также для вариантов оперативной разработки (Fast
Track) или простого подхода, которые применяются в случае малых проектов
[8].
Rational Unified Process (RUP) описывает итеративную модель
разработки, состоящую из 4 фаз: начало, анализ, разработка и применение.
Каждая фаза делиться на этапы (итерации), по итогу которых выпускается
версия для применения внутри или вне [24]. Завершение всех 4 фаз считается
циклом разработки, каждый цикл по итогу представляет версию системы.
Если после этого проект не завершается, полученный продукт развивается
дальше и проходит все эти же фазы. Суть проекта в рамках RUP - это
разработка и сопровождение моделей на базе UML [37].
Microsoft Solution Framework (MSF) схожа чем-то с RUP, имеет 4
фазы: анализ, подготовка, создание, тестирование, является итерационной,
9
может применять объектно-ориентированного моделирования. MSF в
отличии от RUP более ориентирована на создание бизнес-приложений [38].
Extreme Programming (XP) - экстремальное программирование
(современная методология) была предложена в 1996 году. В базе
методологии командная работа, отличная коммуникация между
исполнителем и заказчиком в рамках выполнения всего проекта по созданию
ИС, а сам процесс реализуется посредством последовательно
оптимизируемых прототипов [28].
В процессе подбора стандарта главным фактором становится
полноценное и подробное описание работ на этапах и стадиях разработки
АИС.
Стандарт ISO/IEC 12207 не имеет полноценного описания работ на
этапах и стадиях создания АС.
Стандарт CDM применяется в проектах с Oracle технологиями, а в
данном проекте они не используются.
Стандарт MSF, исходя из описанного ранее, чаще всего ориентирован
на создание бизнес-приложений [8].
Стандарт XP относится к командной работе. В данном проекте
применяется ГОСТ 34.601-90, поскольку он включает описание работ на всех
этапах создания АС.
Опираясь на то, что ИС – это отдельная совокупность взаимосвязанных
средств, методов, сотрудников, используемых в процессе получения, анализа,
сохранения и представления данных для решения поставленных задач, всю ее
структуру можно отнести к как совокупности организованных определенным
образом подсистем, которые поддерживают все эти процессы.
Функции системы выражаются в качестве совокупности действий,
необходимых для конкретной частной цели. Все функции АИС делят на
информационные, управляющие и дополнительные.
10
Информационные функции помогают в процессе получения, анализа и
отображения данных о состоянии объекта автоматизации для персонала,
либо же передают всю информацию для дальнейшей обработки. К ним
можно отнести функции: корректировка параметров, отслеживание, подсчет
параметров, подготовка и представление их для спец. персонала или
системы, а также прогнозирование и оценка деятельности для совокупной
АС и ее подсистем. [34]
Управляющие функции самостоятельно реализуют и вырабатывают
управляющее воздействие на объекты управления. К ним относят логическое
воздействие, адаптивное или программное управление, корректировка
параметров.
Если функция автоматизирована, то есть несколько режимов работы:
Диалог – сотрудник самостоятельно отбирает параметры из
списка предложенных по управлению объектом при помощи ПО и КТС;
Советчик – сотрудник может принимать решения по
использованию рекомендаций, которые система предлагает;
Ручной режим – сотрудник проверяет обстановку, опираясь на
показания приборов и другой контролирующей аппаратуры.
Все подсистемы функциональной части ИС создаются в рамках,
определенных управляющими и информационными функциями.
Подсистема сбора данных позволяет снимать данные по каналам связи
различными методами – от автоматики до снятия вручную. [35]
Оператор реализует только первичный сбор и распределение данных.
Вся полученная инфа исследуется на предмет нахождения сущностей,
которые обычно случат шаблонами для таблиц БД. Далее вся информация
отправляется в системы управления, анализа и хранения.
Описанная подсистема реализует предмашинную подготовку данных и
переносит их в БД, которая выражается как информационная модель
11
предметной области. Оператор совместно с администратором БД по
утвержденным правилам заполняют всю БД подготовленными данными. Тут
же проходит проверка на достоверность и непротиворечивость полученных
данных и реализуется обработка, корректировка, сохранение информации, а
также генерация утерянной. Основа этой подсистемы – сама БД, управляемая
СУБД.
БД выражается как именованная совокупность структурированных и
поделенных данных, которая помогает отображать состояние объектов и их
отношения в конкретной предметной области.
В момент управления компанией основной задачей руководства
становится получение данных, их анализ и отправка сотрудникам. Для
эффективного управления компанией важно предвидеть ситуацию в
будущем. Помимо интуитивных оценок сейчас часто применяется
обоснованное оценивание состояния фирмы в рамках уже реализованных
изменений, или по-другому, экстраполяция. [37]
Сейчас большое распространение получила концепция распределенных
автоматизированных систем управления (АСУ), которые направлены на
локальную обработку информации. Это позволяет организовать разделение
труда управленческого персонала и полностью автоматизировать
выполнение их функций. Чтобы воплотить эту идею, нужно создать для
каждого уровня управления и каждой предметной области
автоматизированные рабочие места (АРМ) на базе персональных
компьютеров (ПК).
АРМ представляет из себя комплекс технических и программных
средств, который расположен непосредственно на рабочем месте сотрудника
и предназначен для автоматизации его повседневных обязанностей как
специалиста.
АРМ обычно разрабатывается в соответствии с предполагаемыми

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

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