Коротких ДИПЛОМНАЯ РАБОТА

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ООБРАЗОВАНИЯ
«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ МАТЕМАТИКИ И КОМПЬЮТЕРНЫХ НАУК
КАФЕДРА ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
Допустить к защите в ГАК
Заведующий кафедрой
информационной безопасности
д.т.н. профессор
А.А. Захаров
«___» ________20__ г.
Коротких Артем Игоревич
РАЗРАБОТКА ЗАЩИЩЕННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ
ОЦЕНКИ СОЦИАЛЬНОЙ АКТИВНОСТИ УЧАСТНИКОВ ПУБЛИЧНЫХ
МЕРОПРИЯТИЙ
(Выпускная квалификационная работа)
Научный руководитель:
доцент
/Е.А.
Оленников/
(подпись)
Автор работы:
/А.И.
Коротких/
(подпись)
Тюмень – 2014
Оглавление
СОКРАЩЕНИЯ И ОБОЗНАЧЕНИЯ ............................................................... 4
ВВЕДЕНИЕ............................................................................................................. 5
ГЛАВА 1. ОБЗОР ИНФОРМАЦИОННЫХ СИСТЕМ, НА ОСНОВЕ
КОТОРЫХ СТРОЯТСЯ СОЦИАЛЬНЫЕ СЕРВИСЫ, И ТЕХНОЛОГИЙ
ИХ
РАЗРАБОТКИ.
ОБЗОР
МЕТОДОВ
ОБЕСПЕЧЕНИЯ
ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ.................................................... 7
1.1
Информационные системы и их классификация ..................................... 7
1.2
Социальные сервисы и их виды ................................................................ 8
1.3
Методы
разработки
информационных
систем
основанные
на
технологиях Microsoft................................................................................. 9
1.4
Обзор возможностей платформы Windows Azure ................................. 15
1.5
Основные
угрозы
информационной
безопасности
и
методы
противодействия им .................................................................................. 21
ГЛАВА 2. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ИС .............................. 28
2.1
Определение требований к системе и разработка ее архитектуры ...... 28
2.2
Разработка структуры БД ......................................................................... 29
2.3
Разработка структуры сайта ..................................................................... 32
2.4
Разработка публичной части сайта.......................................................... 32
2.5
Разработка административной части ...................................................... 35
2.6
Реализация системы авторизации и регистрации. ................................. 39
ГЛАВА 3. МОДЕЛЬ УГРОЗ .............................................................................. 44
3.1
Цель защиты ИС и циркулирующей в ней информации ...................... 44
3.2
Модель нарушителя информационной безопасности ........................... 44
3.3
Предположения об имеющейся у нарушителя информации об
объектах реализации угроз....................................................................... 47
2
3.4
Предположения об имеющихся у нарушителя средствах реализации
угроз............................................................................................................ 48
3.5
Описание объектов и целей реализации угроз информационной
безопасности .............................................................................................. 49
3.6
Описание каналов реализации угроз информационной безопасности 50
3.7
Определение актуальных угроз и способов их реализации.................. 50
3.8
Методы защиты от актуальных угроз. .................................................... 51
ЗАКЛЮЧЕНИЕ ................................................................................................... 54
СПИСОК ЛИТЕРАТУРЫ ................................................................................. 55
ПРИЛОЖЕНИЕ 1................................................................................................ 57
ПРИЛОЖЕНИЕ 2................................................................................................ 58
3
СОКРАЩЕНИЯ И ОБОЗНАЧЕНИЯ
ИС – Информационная система
ИБ – Информационная безопасность
ТЗ – Техническое заданием
ПСЗИ - Программные средства защиты
ФСТЭК – федеральная служба по техническому и экспортному контролю
Событие – форумы, конференции и прочие массовые события с большим
количеством человек.
Мероприятие – тренинги, семинары, курсы и т.п. с небольшим количеством
человек, возможно проводимые в рамках события.
4
ВВЕДЕНИЕ
Судьба любой страны зависит от тех, кто ей управляет, будущее любой
страны это молодежь. Сохранение потенциала развития страны требует роста
качества молодого поколения, этого добиваются за счет изменения
сложившейся модели молодежной политики, повышение ее адресности,
разработки и внедрения новых инструментов, которые позволили бы
существенно
повысить
эффективность
деятельности
молодежных
организаций как на федеральном, так и на региональном (муниципальном)
уровнях.
В настоящее время проводится множество различных мероприятий,
направленных на развитие молодых граждан России.
Только в рамках
Федерального агентства по делам молодежи в 2013 году было проведено
более 40 мероприятий.
Актуальность моей дипломной работы определяется тем, что принятие
решений
в
области
молодежной
политики
требует
определенных
статистических данных о молодежи. Сейчас эти данные можно получить
путем проведения различных опросов и анкетирований среди участников
молодежных форумов, опрашивая преподавателей о том, как те или иные
участники проявили себя на мероприятиях, отслеживая время пребывания
молодых людей на тренингах. Собрав эти данные можно выявить наиболее
талантливых и целеустремленных людей, и соответственно эти данные могут
серьезно повлиять на разного рода решения, в том числе финансовые и
управленческие.
В организацию, в которой я работаю, поступил заказ на разработку
информационной системы, которая должна иметь возможность выделить
наиболее перспективных молодых людей, предоставить определенную
статистическую информацию из которой в дальнейшем можно будет сделать
определенные выводы о качестве проведенного мероприятий, и об оценке его
воздействия на молодежь.
5
Проанализировав рынок на наличие готовых инструментов, которые
позволяли бы собрать необходимую информацию молодежи, и не найдя
такого инструмента было решено разработать платформу для сопровождения
различных массовых мероприятий.
Воплощение в жизнь данной работы дает следующие преимущества
 Упрощение подготовки к мероприятиям для организаторов.
 Наглядный просмотр результативности работы отправленных на
мероприятие молодых людей, для ответственных в государственных
органах.
 Формирование социологического портрета участника.
 Выявление лидеров среди участников, зарегистрированных в системе.
Цель
дипломной
работы
состоит
в
разработке
защищенной
информационной системы для оценки социальной активности участников
публичных мероприятий.
Поставленная цель обусловила следующие задачи дипломной работы:
1. Выработать требования и спроектировать ИС.
2. Выявить актуальные угрозы ИБ.
3. Разработать ИС с учетом требований ИБ.
6
ГЛАВА 1. ОБЗОР ИНФОРМАЦИОННЫХ СИСТЕМ, НА
ОСНОВЕ КОТОРЫХ СТРОЯТСЯ СОЦИАЛЬНЫЕ
СЕРВИСЫ, И ТЕХНОЛОГИЙ ИХ РАЗРАБОТКИ. ОБЗОР
МЕТОДОВ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ
БЕЗОПАСНОСТИ.
Информационные системы и их классификация
1.1
Термин информационная система используется как в широком, так и в
узком смысле.
В широком смысле информационная система есть совокупность
технического, программного и организационного обеспечения, а также
персонала, предназначенная для того, чтобы своевременно обеспечивать
надлежащих людей надлежащей информацией [1].
Также
в
достаточно
широком
смысле
трактует
понятие
информационной системы Федеральный закон РФ от 27 июля 2006 года №
149-ФЗ «Об информации, информационных технологиях и о защите
информации»: «информационная система — совокупность содержащейся в
базах
данных
информации
и
обеспечивающих
её
обработку
информационных технологий и технических средств» [2].
Стандарт
ISO/IEC
2382-1
дает
следующее
определение:
«Информационная система — система обработки информации, работающая
совместно с организационными ресурсами, такими как люди, технические
средства и финансовые ресурсы, которые обеспечивают и распределяют
информацию» [3].
В
узком
смысле
информационной
системой
называют
только
подмножество компонентов ИС в широком смысле, включающее базы
данных, СУБД и специализированные прикладные программы. ИС в узком
смысле
рассматривают
предназначенную
для
как
программно-аппаратную
автоматизации
целенаправленной
систему,
деятельности
7
конечных пользователей, обеспечивающую, в соответствии с заложенной в
неё логикой обработки, возможность получения, модификации и хранения
информации[4].
Тем не менее основной задачей ИС является удовлетворение конкретных
информационных потребностей в рамках определенной предметной области.
1.1.1 Классификация информационных систем
Большинство
информационных
систем
можно
классифицировать
следующим образом

Классификация по архитектуре - распределенные и настольные.

Классификация по степени автоматизации - автоматизированные
системы, которые требуют постоянное вмешательство персонала
и автоматические системы, которые не требуют вмешательства, или же
требуют эпизодически.

Классификация по характеру обработки данных - системы без сложных
алгоритмов обработки данных, главной целью которых является
удобное предоставление информации - информационно-справочные,
или информационно-поисковые ИС, а так же системы, в которых
данные подвергаются серьезной обработке по сложным алгоритмам.

Классификация по сфере применения - тип зависит от применяемой
сферы, например - медицинская ИС, экономическая ИС.

Классификация по охвату задач - системы, предназначенные для
решения задач одного человека, группы или целой корпорации.
1.2
Если
ИС
будет
Социальные сервисы и их виды
обеспечивать
какое-либо
взаимодействие
между
пользователями, например выражение своего мнения на новости, прошедшие
мероприятия в виде комментариев, то можно сказать что на основе ИС
строится социальный сервис.
8
Социальный сетевой сервис — виртуальная площадка, объединяющая
людей в сообщества с помощью программного обеспечения, компьютеров,
объединенных в интернете[5]. Сетевые социальные сервисы в сейчас
являются основным средством:

поддержки старых контактов в интернете, общения,

поиска различных медиа материалов,

творческой деятельности сетевого характера,

выполнения множества других задач, например планирование задач,
как индивидуальное, так и коллективное.
Каждый социальный сервис может отличаться от других какой-то своей
особенной целью и свойствами, с помощью социальных сервисов люди
могут вести совместную деятельность.
1.3
Методы разработки информационных систем основанные на
технологиях Microsoft
Microsoft предоставляет удобные инструменты для разработки веб-
сервисов, а так же определённые подходы к разработке.
Программная платформа .NET Framework позволяет создавать вебприложения и сервисы с помощью технологии ASP .NET на языке C#. При
разработке использовался ASP .NET MVC Framework последней - пятой
версии, который идет в комплекте с недавно выпущенной Visual Studio 2013.
Для удобства контроля версий и организации совместной работы
используется система контроля версий - Git.
В качестве плюсов для выбора данного инструментария разработки можно
выделить:
9

Среда разработки - Visual Studio самое популярное средство для
разработки, в котором есть отточенная годами технологи
автодополнения кода - IntelliSense.

Компилируемый код - значительно упрощает отладку.

MVC-паттерн проектирования - дает великолепную поддержку и
расширяемость проекта.
1.3.1 Шаблон проектирования (MVC, MVVMС)
ASP.NET MVC Framework - фреймворк для создания веб-приложений и
сервисов, который реализует шаблон Model-view-controller.
Данный паттерн разработки предусматривает разбиение приложения на три
основных компонента: Модель, Контроллер и Представление. MVC
Framework представляет собой упрощенную и легко тестируемую платформу
уровня представлений, которая тесно связана с уже существующими
возможностями ASP.NET, в качестве примера это - Master Pages (позволяет
создать определенную компоновку страниц и в дальнейшем использовать на
многих страницах в проекте) или встроенная система авторизации
пользователей.
Классический паттерн MVC включает в себя следующие компоненты:
Рисунок 1. Концепция Model-View-Controller
10
Модели (Models) - отвечают за логику взаимодействия с данными,
обычно объекты из модели получают и хранят состояние объекта из базы
данных.
Представления (Views) - компоненты которые служат для организации
интерфейса
пользователя(UI).
Обычно,
уже
обработанные
данные
передаются на представление, и для пользователя отображается готовая
страница.
Контроллеры(Controllers)
-
представляют
собой
компоненты,
осуществляющие взаимодействие с пользователем, моделью и, наконец,
выбирают представление для визуализации тех данных, которые отобразятся
пользовательским интерфейсом.
В MVC приложениях представления только отображают информацию;
контроллеры обрабатывают запросы и формируют ответы пользователю,
осуществляя, таким образом, взаимодействие с ним. Например, контроллер
обрабатывает значения строки запроса, передает эти значения модели, в
которой, в свою очередь, на основании этих значений формируется запрос к
базе данных.
Я в своем проекте использую шаблон MVVMС (Model-View-ViewModel with Controller) - который основан на MVC, но содержит некоторую
прослойку
между
контроллером
и
моделью
- View-Model. Модель-
представление представляет из себя обертку над моделью. Данный подход
удобен тем, что в действительности, зачастую пользователю нужно
передавать
какую-то
заготовку
для
отображения.
При
данном
подходе «связывание данных» между контроллером и моделью значительно
удобнее в веб-проектах, где данные заготовки используются многократно.
В данном случае архитектура приложения выглядит таким образом
11
Рисунок 2. Концепция Model-View-View-Model with Controller
1.3.2 MVC 5
В работе используется последняя версия MVC Framework - 5, в этой
версии появились следующие новые возможности, которые используются в
проекте:

ASP.NET Identity

Интегрированный шаблон Bootstrap

Attribute routing
1.3.2.1 ASP .NET Identity
Постепенно
интернет
отходит
от
парадигмы
того,
что
пользователям обязательно регистрироваться на сайтах и потом каждый раз
выполнять вход используя свой логин и пароль. Интернет стал более
социальным и пользователи общаются друг с другом через социальные
сервисы вроде Twitter, Facebook и Вконтакте. Современная система
12
авторизации должна позволять совершать вход через сторонние сервисы
такие как Facebook, Twitter и другие. Учитывая эти изменения в разработке
веб приложений, система ASP .NET Identity была разработана для
достижения следующих целей.

Единая система авторизации для фреймворка ASP .NET, таких
библиотек как ASP.NET MVC, Web Forms, Web Pages, Web API, и
SignalR.

Простота подключения пользовательских данных - позволяет легко
добавить в профиль пользователя дополнительные поля.

Управление ролями пользователей - например, пользователи с ролью
"Admin" имеет полные права.

Социальные логин - провайдеры (Social Login Providers) - позволяет
легко подключить авторизацию через социальные сервисы.

Windows Azure Active Directory - позволяет включить авторизацию
пользоватлей используя Windows Azure Active Directory, и хранить
данные пользователя у себя в приложении.

OWIN Integration - авторизация в ASP.NET теперь основана на
спецификации OWIN(The Open Web Interface for .NET) и может быть
применена на любом OWIN-ориентированном хосте.
Owin
это спецификация определяющая
интерфейс
и
описывающая
взаимодействие между всеми компонентами в веб-приложении. Целью
OWIN-интерфейса является разделение сервера и приложения, способствуя
тому, чтобы делать приложения более модульными. Используя OWIN, мы
можем подключать только те компоненты, которые нам нужны прямо здесь и
сейчас, например, это может быть модуль авторизации, SignalR, статические
страницы и т.п. И в отличие от IIS, сервер не будет перегружен ненужным
функционалом, а значит будет более производительным.
13
1.3.2.2 Интегрированный шаблон Bootstrap
Twitter Bootstrap — набор инструментов для создания сайтов и вебприложений. Включает в себя HTML и CSS шаблоны оформления для
типографики, веб-форм, кнопок, меток, блоков навигации и прочих
компонентов веб-интерфейсов, включая JavaScript расширения.
Bootstrap содержит
все
необходимые
инструменты
для
создания
качественных и удобных пользовательских интерфейсов.
1.3.2.3 Attribute routing
Маршрутизация в ASP .NET связывает URL и Action. MVC 5 теперь
поддерживает новое задание маршрутов, с использованием атрибутов, что
дает более полный контроль над маршрутами, по сравнению с предыдущими
версиями. Например, если раньше маршруты нужно было добавлять в общий
файл RouteConfig.cs,
routes.MapRoute(
name: "ProductPage",
url: "{productId}/{productTitle}",
defaults: new { controller = "Products", action = "Show" },
constraints: new { productId = "\\d+" }
);
Листнинг 1. Пример регистрации нового маршрута в системе
То теперь маршрут можно задавать атрибутом рядом с вызываемым
методом
[Route("{productId:int}/{productTitle}")]
public ActionResult Show(int productId) { ... }
Листнинг 2. Задание собственного маршрута для метода в контроллере.
14
1.4
Обзор возможностей платформы Windows Azure
1.4.1 Описание
Облачные вычисления уже стали реальностью. Запуск приложений и
хранение данных на компьютерах, расположенных в доступном через
Интернет центре обработки данных, может принести немало преимуществ.
Однако независимо от того, где выполняются приложения, они создаются на
определенных
платформах.
Например,
для
локальных
приложений,
выполняемых в центре обработки данных организации, в понятие платформы
обычно входит операционная система, тот или иной̆ способ хранения данных
и, возможно, некоторые другие аспекты. Приложениям в облачной̆ среде
требуется аналогичная база для работы.
Именно такую базу предоставляет платформа Windows Azure — базу
для запуска приложений и хранения данных в облаке.
Рисунок 3. Общая схема работы приложения Windows Azure
15
Вместо того чтобы предоставлять программное обеспечение, которое
заказчики Microsoft могли бы самостоятельно устанавливать и выполнять на
своих компьютерах, Windows Azure предлагается в качестве сервиса.
1. Вычисления: выполнение приложений в облаке. В этом случае
приложения работают в среде, во многом схожей со средой Windows
Server, хотя модель программирования Windows Azure несколько
отличается от модели локальных приложений Windows Server.
2. Хранилище: хранение двоичных и структурированных данных в
облаке.
3. Fabric
Controller:
развертывание
и
мониторинг
приложений,
управление ими. Fabric Controller также обновляет системной ПО всей
платформы.
4. Сеть доставки контента (Content Delivery Network, CDN): повышает
скорость глобального доступа к двоичным данным в хранилище
Windows Azure за счет ведения кэшированных копий таких данных по
всему миру.
5. Подключения: позволяют создавать подключения IP-уровня между
локальными компьютерами и приложениями Windows Azure.
1.4.2 Вычисления в Azure
В среде вычислений Windows Azure могут выполняться приложения
многих типов. Но какие бы задачи ни выполняло приложение, оно должно
быть реализовано как одна или несколько ролей. Windows Azure выполняет
несколько экземпляров каждой роли, используя встроенную подсистему
балансировки нагрузки для равномерного распределения запросов между
ними.
16
Рисунок 4. Приложение, выполняемое в Windows Azure, может состоять из
любого сочетания экземпляров Web-ролей, Worker-ролей и VM-ролей.
В текущей̆ версии Windows Azure разработчики могут использовать на
выбор роли следующих трех типов.
1. Web-роли. Предназначены прежде всего для облегчения создания вебприложений. В каждом экземпляре Web-роли имеются предварительно
настроенные сервисы Internet Information Services (IIS) 7, что упрощает
создание приложений с помощью ASP.NET, Windows Communication
Foundation (WCF) и других веб-технологий.
2. Worker-роли. Предназначены для выполнения всевозможного кода на
платформе
Windows.
В
Worker-роли
может
выполняться
моделирование, обработка видео или практически любая другая задача.
Распространена
такая
схема:
приложение
взаимодействует
с
пользователями через Web-роль, а затем передает задачи для обработки
Worker-роли. И в этом случае разработчик также может по своему
усмотрению
использовать
.NET
Framework
или
другое
ПО,
выполняемое в среде Windows, в том числе технологии, производимые
17
не Microsoft.
3. VM-роли. В каждой из них выполняется указанный пользователем
образ Windows Server 2008 R2. Помимо прочего, VM-роль иногда
может пригодиться для перемещения локального приложения Windows
Server на платформу Windows Azure.
1.4.3 SQL Azure Database
Для хранения данных используется сервис, предоставляемый Microsoft SQL Azure Database. SQL Azure Database является частью Windows Azure.
В отличие от администрирования локального SQL Server, Windows Azure
SQL
Databases
разделяет
логический
и
физический
аспекты
администрирования. Клиент продолжает администрировать БД, управлять
логинами, пользователями и ролями, однако об оборудовании заботится
Microsoft. В результате, Windows Azure SQL Databases предоставляет
масштабируемый многопользовательский сервис баз данных с высочайшей
степенью
доступности,
расширяемости,
безопасности
и
самовосстановления[6].
Microsoft Windows Azure SQL Databases существенно увеличивает
границы возможностей SQL Server. Windows Azure SQL Databases состоит
из:

Windows Azure SQL Databases Data Sync — облачная служба
синхронизации данных, обеспечивающая синхронизацию данных.

Windows Azure SQL Databases Reporting — cлужба, позволяющая легко
встроить в приложение Windows Azure возможности работы с
отчетами. Через портал Windows Azure можно получить доступ к ним.
Благодаря возможностям Windows Azure можно не тратить время на
создание и поддержку собственной инфраструктуры отчетов;

Windows Azure SQL Databases Federations — компонент Windows Azure
SQL Databases упрощает масштабирование множества баз данных,
18
размещенных на различных узлах, что позволяет платить только за
реально используемые ресурсы;

веб-интерфейс для администрирования баз данных, размещенных в
Windows Azure.
1.4.4 Windows Azure Storage
WAS – система облачного хранилища, предоставляющая клиентам
возможность хранить практически неограниченные объёмы данных в течение
любого периода времени.
Из наиболее существенных характеристик архитектуры WAS можно
выделить следующее

Строгая согласованность – множество клиентов хотят иметь строгую
согласованность, особенно это касается корпоративных клиентов,
переносящих инфраструктуру в облако. Они также хотят иметь
возможность совершать операции чтения, записи и удаления согласно
некоторым условиям для оптимистичного контроля над строго
согласованными данными – для этого Windows Azure Storage
предоставляет то, что CAP-теоремой (Consistency, Availability, Partitiontolerance) описывается как сложнодостижимое в один момент времени:
строгую согласованность, высокую доступность и Partition Tolerance.

Глобальные и высокомасштабируемые пространства имён – для
упрощения использования хранилища в WAS реализовано глобальное
пространство имен, которое позволяет хранить данные и обращаться к
ним из любой точки земного шара. Так как одной из главных целей
WAS является предоставление возможности хранения больших
массивов данных, это глобальное пространство имен должно быть
способным адресовать экзабайты данных.

Восстановление после сбоев – WAS сохраняет данные клиентов в
нескольких датацентрах, которые расположены за несколько сотен
19
километров друг от друга, и эта избыточность предоставляет
эффективную защиту от потери данных из-за различных ситуаций,
таких как землетрясения, пожары, торнадо и так далее.

Мультитенантность и стоимость хранилища – для сокращения
стоимости хранилища множество клиентов обслуживаются из одной
разделяемой инфраструктуры хранилища, и WAS с помощью этой
модели, когда хранилища множества различных клиентов с
различными необходимыми им объёмами хранилища группируются в
одном месте, существенно снижает общий необходимый объем
предоставляемого хранилища, чем если бы WAS выделял отдельное
оборудование каждому клиенту.
1.4.5 Глобальное пространство имен
Ключевой целью системы хранилища Windows Azure является
предоставление одного глобального пространства имён, которое позволило
бы клиентам размещать и масштабировать любое количество данных в
облаке. Для предоставления глобального пространства имён WAS использует
DNS как часть пространства имён, и пространство имён состоит из трёх
частей: имени аккаунта хранилища, имени партиции и имени объекта.
Пример:
http(s)://AccountName.net/PartitionName/ObjectName
В WAS можно использовать для блобов полное имя блоба в качестве
PartitionName. В случае таблиц необходимо учитывать, что каждая сущность
в таблице имеет первичный ключ, состоящий из PartitionName и ObjectName,
что позволяет группировать сущности в одну партицию для осуществления
атомарной транзакции. Для очередей PartitionName является значение имени
очереди, каждое сообщение же, помещённое в очередь, имеет собственное
ObjectName, уникально идентифицирующее сообщение в пределах очереди.
20
Основные угрозы информационной безопасности и методы
1.5
противодействия им
1.5.1 Основные положения и основные угрозы ИБ.
При работе любой информационной системы неизбежно возникают
угрозы информационной безопасности, по отношению к самой системе и
данным которые в ней обрабатываются. Из курса по информационной
безопасности[9] эти угрозы можно разделить на три категории: угрозы
направленные на нарушение конфиденциальности, целостности и
доступности.
 Конфиденциальность — состояние информации, при котором доступ к
ней осуществляют только субъекты, имеющие на неё право [10];
 Целостность — избежание несанкционированной модификации
информации[10];
 Доступность — избежание временного или постоянного сокрытия
информации от пользователей, получивших права доступа[10].
Для разных систем эти угрозы могут проявляться в разной степени. Эти
угрозы
необходимо
необходимо
минимизировать.
выполнить
ряд
Для
минимизации
законодательных,
этих
угроз
организационных
и
технологических мер.
На законодательном уровне, в Российской Федерации существует
перечень действующих стандартов и руководящих документов в области
методов и средств обеспечения безопасности.
Нормативные акты правового регулирования вопросов информатизации и
защиты информации в Российской Федерации включают[11]:
 Законы Российской Федерации.
 Указы Президента Российской Федерации и утверждаемые этими
указами нормативные документы.
21
 Постановления Правительства Российской Федерации и утверждаемые
этими
постановлениями
нормативные
документы
(Положения,
Перечни и т.п.).
 Государственные и отраслевые стандарты.
 Положения, Порядки. Руководящие документы и другие нормативные
и методические документы уполномоченных государственных органов
(ФСТЭК, ФСБ).
Основываясь на типовых моделях угроз, разработанными ФСТЭК и ФСБ
следует построить модель угроз для разрабатываемой ИС.
По наличию права постоянного или разового доступа нарушители
подразделяются на два типа: нарушители, не имеющие доступа к ИС,
реализующие угрозы из внешних сетей связи общего пользования и (или)
сетей международного информационного обмена; нарушители, имеющие
доступ к ИС, включая пользователей, реализующие угрозы непосредственно
в ИС, внутренние нарушители [12].
В соответствии с документом «Базовая модель угроз безопасности
персональных данных при их обработке в информационных системах
персональных данных» от 15 февраля 2008 г., угрозы из внешних сетей
включают в себя:
 угрозы «Анализа сетевого трафика» с перехватом передаваемой во
внешние сети и принимаемой из внешних сетей информации;
 угрозы сканирования, направленные на выявление типа операционной
системы ИСПДн, сетевых адресов рабочих станций, открытых портов и
служб, открытых соединений и др.;
 угрозы выявления паролей;
 угрозы получения НСД путем подмены доверенного объекта;
 угрозы типа «Отказ в обслуживании»;
 угрозы удаленного запуска приложений;
22
 угрозы внедрения по сети вредоносных программ.
1.5.2 Основные атаки на веб-приложения и способы защиты от них
Для реализации угроз конфиденциальности, целостности и доступности
могут быть использованы различные методы атак на веб-приложения.
По итогам 2013 года, участниками проекта Open Web Application Security
Project (OWASP)[12] был составлен рейтинг из 10 самых опасных
уязвимостей веб-приложений. Список OWASP Топ-10 основан на восьми
базах данных от семи компаний, включая четыре консалтинговые фирмы и
трех вендоров SaaS. Общая база содержит более 500 000 уязвимостей в
сотнях организаций и тысячах приложений[13].
1. Внедрение кода
2. Некорректная аутентификация и управление сессией
3. Межсайтовый скриптинг (XSS)
4. Небезопасные прямые ссылки на объекты
5. Небезопасная конфигурация
6. Утечка чувствительных данных
7. Отсутствие контроля доступа к функциональному уровню
8. Подделка межсайтовых запросов (CSRF)
9. Использование компонентов с известными уязвимостями
10.Невалидированные перенаправления
Внедрение SQL кода (SQL-injection)
Метод атаки направленный на внедрение в посылаемые пользователем
параметры SQL кода, в случае успеха злоумышленник может изменить
логику запроса получить, удалить или добавить данные в базу. Существует
множество разновидностей использования этой атаки, но все они направлены
на изменения пользовательского запроса на свой синтаксически правильный
запрос.
23
Классической
защитой
от
SQL-инъекции
является
строгое
типизирование и фильтрация принимаемых параметров в зависимости от
типа, а именно фильтрация кавычек и символов “-/\*”. Большинство
современных средств разработки позволяют защититься от уязвимости путем
использования
ORM(объектное
представление
данных),
в
частности
компания Microsoft предлагает свое решение - EntityFramework.
Ошибки в реализации аутентификации и сессий
Данная уязвимость может эксплуатироваться при условии, что вебприложение использует механизм сессий с использованием cookie.
Рисунок 5. Пример ошибки в реализации сессий
Злоумышленник перебирает сессионный идентификатор и получает
доступ к сессиям пользователей.
Защищаться от данной атаки нужно путем использования надежного
алгоритма генерации уникальных идентификаторов для пользователей.
Межсайтовый скриптинг (XSS)
Атака заключается во внедрении в выдаваемую сервером веб-страницу
вредоносного кода, который будет выполнен при открытии пользователем
данной страницы. Данная атака может быть использована для получения
личных данных пользователя или вставки ссылок на другие сайты. По
статистике предоставленной Positive Technologies 43% процента атак были
произведены с помощью уязвимости XSS[13, 14]. На популярном вебресурсе скрипт может организовать DDoS атаку.
24
Рисунок 6. Пример кода без предварительной обработки входных параметров
Основные способы защиты от XSS это:
 валидация входных данных и их обработка («эскейпинг») при
генерации страниц
 важен HTML-контекст (body, attribute, JavaScript, CSS, URL)
 внедрение Content Security Policy
 HTTPOnly сессионные куки , чтобы их нельзя было прочитать из
JavaScript
Небезопасное указание на внутренние объекты
Уязвимость заключаться в выявлении ссылок по которым можно
получить интересующую злоумышленника, например о состоянии счета
пользователя.
Рисунок 7. Пример небезопасного указания на внутренние объекты
Основные способы защиты это:
 Проверка авторизации
 Минимизация прямых указателей на системные объекты
Неправильная настройка сервера(Server Misconfiguration)
Проблема неправильной настройки сервера дает еще один вектор атак для
злоумышленников, по умолчанию при установке сервера включены многие
службы,
которые
злоумышленнику
не
используются,
реализовать
атаку,
но
тем
например
самым
позволяют
доступны
файлы
конфигурации сервера, включены ненужные службы (управления контентом,
25
удаленное управление), а также функции отладки или административные
функции. Все это может послужить средством для злоумышленника, чтобы
обойти методы аутентификации и получить доступ к конфиденциальной
информации, возможно с повышенными привилегиями. Сервер может
включать известные учетные записи и пароли по умолчанию. Неправильно
сконфигурированные
использование
сертификаты
сертификатов
по
SSL
и
настройки
умолчанию,
и
шифрования,
не
надлежащая
аутентификация с внешними системами может поставить под угрозу
конфиденциальность информации. Подробные и информативные сообщения
об ошибках могут привести к утечке данных, а информация может быть
использована для разработки следующего шага атаки.
Методы защиты от небезопасной конфигурации:
 Хорошо поставленный процесс развёртывания и конфигурирования
веб-окружения
 Максимально автоматизированный процесс с ведением чеклистов
 Регулярные сканирования
 Установка обновлений безопасности
Отсутствие контроля доступа к функциональному уровню
Уязвимость
заключается
в
неправильно
реализованной
аутентификации и авторизации пользователей, рекомендуется использовать
политики и роли, а так же запрещать доступ по умолчанию.
Подделка межсайтовых запросов (CSRF)
Уязвимость заключается в том, что веб-приложение позволяет при
переходе
по
обычной
ссылке
выполнять
какое-нибудь
действие.
Злоумышленник подготавливает специальный URL , при загрузке которого
будет, например,
осуществлён перевод денег со счёта жертвы на его, и
размещает его в виде картинки на популярном ресурсе.
26
Рисунок 8. Пример эксплуатации уязвимости CSRF
Методы защиты от CSRF:
 Подписывание запросов специальными токенами
 Рекомендуется дополнительно к токенам все действия переводить на
POST-запросы
 Проверка источника запросов
Использование компонентов с известными уязвимостями
Используются уязвимости ПО, которые получили широкую огласку и уже
исправлены производителем.
Рекомендациями являются:
 Составление списка всех сторонних компонентов.
 Своевременное обновление.
 Отключение ненужной функциональности.
 Внедрение автоматизированных проверок .
Открытые перенаправления (Open redirect)
Уязвимость заключается в указании в качестве параметра ссылки для
перенаправления пользователя и отсутствии проверки этого параметра на
уровне приложения.
Уязвимость чаще всего используется для фишинговых атак.
Методы защиты являются:
 Отказ от использования перенаправлений на внешние ресурсы;
 «Страница подтверждения» для неизвестных адресов
27
ГЛАВА 2. ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ИС
2.1
Определение
требований
к
системе
и
разработка
ее
архитектуры
В соответствии с требованиями заказчика разрабатываемая система
должна предоставлять следующие возможности для администраторов:
 создание электронных площадок для информационной поддержки
массовых мероприятий в виде подразделов основного сайта.
 построение различных отчетов, в том числе графических, о показателях
активности участников
 формирование списка наиболее активных участников
А для участников данная система должна предоставлять:
 простую регистрацию на мероприятия
 возможность формирования расписания мероприятий
 получение актуальной информации о мероприятиях
Для реализации вышеизложенных требований необходимо разработать
общую архитектуру системы.
Информационная система представляет собой веб-сайт, данные
хранятся в базе данных MSSqlServer 2008.
Приложение решено разместить в Windows Azure, что, так же как и с
базой
данных
отказоустойчивость
обеспечит
приложения.
дальнейшую
Для
масштабируемость
Windows
Azure
Web
и
Sites
поддерживаются следующие варианты развертывания: Visual Studio Web
Deploy, GitHub, FTP, Team Foundation Services (TFS), Microsoft WebMatrix.
28
2.2
Разработка структуры БД
На рисунке 9 приведена общая схема базы данных
Рисунок 9. Общая схема базы данных
В базе данных информационной системы - 46 таблиц [Приложение 1].
Таблица 1. Описание основных таблиц
Название таблицы
Описание
Logs
Хранятся данные журнала событий
системы.
Settings
Хранятся конфигурационные данные
AEvents
Хранятся
данные
о
проводимых
мероприятиях
Addresses
Хранятся
данные
о
адресах
проводимых событий
AddrObjs
Справочник ФИАС
29
Продолжение таблицы 1
AspNetUsers
Хранятся данные о пользователях
AspNetRoles
Хранятся роли пользователей
AspNetUserRoles
Хранятся роли пользователей
EventFrontmanagers
Хранятся
фронтменеджеры
для
мероприятий
ForumUsers
Хранятся пользователи подсистемы
форум
Forums
Хранятся
данные
о
подсистемах
«Форум», даты проведения, названия
и т.д.
ForumAdresses
Хранятся
места
проведения
мероприятий для подсистем
Directions
Хранятся данные для справочника
«Направления»
Spheres
Хранятся данные для справочника
«Сферы»
SubscriptionOfUsers
Хранятся подписки пользователей на
мероприятия
PermitionRoles
Хранятся списки доступа
Permitions
Хранятся списки доступа для ролей
UploadDatas
Хранятся
данные
загруженные
пользователем
Likes
Хранятся «лайки» пользователей
TypeOfEvents
Хранятся типы событий
EventStatus
Хранятся статусы мероприятий
News
Хранятся новости
Comments
Хранятся комментарии
30
2.2.1 Размещение БД
Базу данных решено разместить в Azure SQL Database, что обеспечит
хорошую
дальнейшую
масштабируемость,
гарантированную
отказоустойчивость и своевременное резервное копирование базы. Перенос
базы с локального сервера в Windows Azure легко осуществляется с
помощью MS SQL Server 2012.
2.2.2 Работа с базой данных
Для работы с данными полученными из базы данных используется
Entity Framework (EF) — объектно-реляционный модуль сопоставления,
позволяющий работать с реляционными данными с помощью объектов,
специализированных для доменов. Это устраняет необходимость в написания
большей части кода для доступа к данным.
В работе использован подход к разработке - Code First, принцип такого
подхода заключается в том, что в начале описываются классы из которых в
итоге будут созданы таблицы в базе данных и в дальнейшем вся работа с
базой происходит через эти классы.
Entity Framework так же содержит все необходимое работы проекта с
SQL Azure Database. Entity Framework может подключаться к SQL Azure без
какой-либо дополнительной настройки, просто как к любой другой базе
данных SQL Server.
31
2.3
Разработка структуры сайта
На рисунке 10 изображена карта сайта с основными разделами.
Рисунок 10 - Карта сайта
В разрабатываемой ИС можно выделить два основных раздела, это
главная (общая) система, и подсистема «форум».
В главной системе содержится информация по пользователям и общая
статистика по проведенным мероприятиям.
Подсистема «Форум», представляет собой систему, в которой есть свои
пользователи, дирекция, новости и события.
В каждом из разделов содержится публичная часть, доступная каждому
пользователю и административная часть, доступная администраторам.
Публичная часть предназначена в основном для участников мероприятий.
Здесь пользователи могут ознакомиться с новостями, будущей программой и
составить для себя расписание событий, которые им могли бы быть
интересны.
2.4
Разработка публичной части сайта
2.4.1 Описание публичной части
Публичная часть системы доступна для всех авторизированных и
неавторизированных пользователей.
32
Основные разделы:
 Новости
 Программа со списком мероприятий
 Списки грядущих событий.
Пользователи могут ставить лайки и оставлять комментарии к
новостям и событиям. Так же пользователи могут подписываться на
интересующие события, либо оставлять заявки на массовые мероприятия.
Из событий, на которые подписан пользователь – формируется
расписание пользователя.
Посещая мероприятия, пользователь зарабатывает баллы, а так же
формирует некое портфолио посещенных мероприятий.
2.4.2 Реализация общих разделов (Мероприятия, новости,
информационные страницы)
Разделы новости и события есть как в основной системе, так и
подсистемах «Форум», все данные хранятся в таблицах Events и News
соответственно.
Редактирование
новостей
и
событий
осуществляется
из
панели
администратора, есть возможность прикрепления различных документов и
фотографий в текст новости. Есть возможность создавать черновики
новостей, для дальнейшего дозаполнения, без публикации на сайт.
На рисунке ниже видна форма создания новости
33
Рисунок 11. Форма создания новости
Обычные пользователи видят новости и события в соответствующих
разделах сайта. Каждый авторизированный пользователь сайта может
отметить новость как понравившуюся, а так же оставить свой комментарий.
Все
поля,
заполняемые
пользователями
экранируются
от
ввода
спецсимволов.
2.4.3 Раздел программа
В разделе Программа содержаться следующие элементы:
 Баннер из 5 мероприятий (Топ 5 по количеству просмотров)
 Список из 10 мероприятий с разбивкой по страницам
 Поиск по мероприятиям
 Различные фильтры
Каждый элемент списка содержит название, дату и время проведения, а
так же краткое описание.
34
В
списке
отображаются
все
мероприятия,
кроме
отмеченных
пользователем как неинтересные.
Так же пользователь может добавить мероприятие к себе в расписание.
Фильтры (По тематическому направлению, месту проведения и виду)
При нажатии на строку мероприятия открываться страница с
подробным описанием мероприятия.
2.5
Разработка административной части
2.5.1 Описание административной части
В разрабатываемой системе есть две административных части
 Панель администрирования для основной системы
 Панель администрирования для подсистемы «Форум»
Административная часть основной системы доступна только для
администрации и содержит в себе как элементы для управления публичной
частью главной системы, так и элементы управления подсистемой «Форум» создание новых мероприятий и назначение администрации для них.
Административная
часть
главной
системы
позволяет
управлять
следующими разделами
 Пользователи – управление учетными записями пользователей
 Справочники – доступ к справочной информации
 Программа – добавление, изменение мероприятий
 Новости – управление новостями с сайта
 Комментарии – модерирование комментариев пользователей
 Страницы – изменение информационных страниц сайта (О сайте,
регламенты и т.д.)
 События – раздел для управления подсистемами «Форум»
Административная часть подсистемы «Форум» доступна для дирекции
подсистемы. Дирекция назначается администрацией главной системы.
35
Административная часть подсистемы «Форум» содержит в себе элементы
для управления самой подсистемой и содержит в себе следующие разделы
 Пользователи – подтверждение заявок от пользователей
 Справочники – доступ к справочной информации
 Программа – добавление, изменение мероприятий на проводимом
событии
 Новости – управление новостями для проводимого события
 Комментарии
–
модерирование
комментариев
пользователей
оставленных в рамках проводимого события
 Страницы – изменение информационных страниц подсистемы (О
событии, регламенты и т.д.)
2.5.2 Процесс создания подсистемы «Форум»
Данный раздел доступен только для администрации основной системы.
Создание подсистемы состоит из двух этапов:
Первый этап — это заполнение общей информации проводимом
мероприятии. Для этого нужно заполнить следующие поля:
 название подсистемы;
 период проведения;
 место проведения;
 путь (адрес по которому будет доступна подсистема).
Второй этап — это назначение дирекции для форума. Делается это в
соответствующем разделе, где можно любого пользователя назначить
дирекцией форума, найдя его по номеру телефона, либо логину.
2.5.3 Реализация раздела «Рейтинг»
Раздел рейтинг состоит из 3 разделов.
 Топ пользователей
 Статистика
 Графики
36
Информация
о
баллах
пользователей
хранится
в
таблицах
SubscribtionOfUsers, Pluses, Minuses. Пользователю начисляются баллы в
зависимости от события на котором он побывал, учитываются такие
показатели
как
время
проведенное
на
событии,
штрафы,
отметки
пользователя преподавателями и тип события. На основании таблицы 1,
осуществляется расчет балов.
Таблица 1. Таблица со «стоимостью» посещения каждого мероприятия
Тип
мероприятия
Статус
участника
Время
Баллы
Зрелище
Зритель
60 мин
1
Тренинг
Слушатель
40 мин
1
Выступление
Участник
до 100 участников
30 мин
1
1
100 - 250 участников
20 мин
1
более 250 участников 10 мин
Состязание
Участник
до 100 участников
30 мин
1
100 - 250 участников
20 мин
1
более 250 участников 10 мин
1
В «топ пользователей» выводится 20 пользователей, которые набрали
наибольшее количество баллов за последние сутки.
В разделе «Участники» видна детальная информация по баллам
пользователей, данные выводятся в виде таблицы.
37
Рисунок 12. Раздел участники. Таблица с баллами пользователей.
Расчет баллов – ресурсозатратная операция, поэтому расчет баллов
осуществляется раз в час, результаты кешируются.
Раздел «Графики» отображает следующую информацию.
В разделе
статистики отражаются графики для различных делегаций, система
рассчитывает как абсолютные, так и относительные показатели статистики,
что позволяет не учитывать количественный состав делегаций.
Так же реализованы следующие фильтры:
 фильтр по тематическому направлению
 фильтр по региону
38
Рисунок 13. Раздел «Графики»
2.6
Реализация системы авторизации и регистрации.
Для того, чтобы можно было идентифицировать пользователя, и
предоставлять
ему
доступ
к
закрытым
ресурсам,
либо,
открыть
дополнительные возможности необходимо, чтобы у него была учетная
запись в системе, для этого необходимо зарегистрироваться в системе. После
регистрации, в системе появится учетная запись пользователя, а у
пользователя появляется доступ к личному кабинету.
2.6.1 Процесс регистрации пользователей
Для того, чтобы зарегистрироваться, пользователю необходимо заполнить
форму со следующими полями:
 фамилия
 имя
 город
 номер телефона
39
 почта
После регистрации пользователю на почту приходит ссылка, пройдя по
которой он попадает на страницу с вводом временного пароля, высланного
ему на телефон, после его ввода учетная запись пользователя активируется.
Если
пользователь
регистрируется
по
ссылке
для
события,
то
автоматически подается заявка на участие в событии.
В дальнейшем пользователь может подавать заявки на участие в событиях
в одно нажатие.
2.6.2 Процедура аутентификации и авторизации пользователей
Чтобы получить доступ к личному кабинету, пользователю необходимо
ввести логин и пароль, указанный при регистрации. Если у пользователя роль
в
системе
«Администратор»
или
«Администратор
используется процедура двухэтапной
подсистемы»,
то
аутентификации, пользователю
приходит смс с кодом доступа.
Перед тем как пользователь получит доступ к личному кабинету проходит
процедура авторизации пользователя.
При разработке авторизации пользователей, я выбрал модель доступа на
основе ролей, определил список возможных ролей в системе, который в
системе является статичным и не может быть изменен.
Ниже приведен список ролей и их возможности.
 Администратор ИС может управлять всеми разделами сайта и имеет
доступ к администраторской части приложения;
 Администратор подсистемы «Форум» - управляет подсистемой, может
утверждать заявки на форум, публиковать новости и управлять
разделом «программа»;
 Пользователь, имеющий роль «участник» может просматривать список
мероприятий и добавлять понравившиеся мероприятия себе в
расписание;
40
 Пользователь, имеющий роль «Преподаватель» может то же что и
«участник», но у него так же появляется возможность создавать
мероприятия и тренинги, так же в личном кабинете появляется доступ
к разделу «мои файлы»;
Процедура авторизации реализуется с помощью библиотеки авторизации
для ASP.NET MVC, которая ограничивает права пользователя на ресурсы.
Библиотека называется ASP.NET Identity.
Для назначения прав доступа пользователей на ресурсы создаются роли,
которые в дальнейшем назначаются пользователям.
По умолчанию пользователям назначается роль – «участник», далее
администрация может изменить роль для любого пользователя через
соответствующий раздел сайта.
Проверка прав доступа текущего пользователя на объект происходит
при каждом действии пользователя.
Реализовано это следующим образом – каждый контроллер в проекте
унаследован
от
главного
установлен
атрибут
контроллера
Authorize.
Далее
«MainController»,
в
классе
у
которого
AuthorizeAttribute
переопределен метод - OnAuthorization(AuthorizationContext filterContext).
Права доступа для каждой роли хранятся в базе данных в виде ACL листов. В
базе содержатся таблица, в которой лежат пути доступа в виде строки
следующего вида: {area}${controller}${action}, и таблица связующая роли и
права доступа. При каждом обращении к методам контроллера срабатывает
метод, который проверяет роли у пользователя. Если в связующей таблице не
находится строка, которая удовлетворяет условиям, то пользователю
отказывается в доступе.
Пример: Пользователь с ролью «Участник» хочет посмотреть свои
комментарии,
он
переходит
по
адресу
http://имя_сайта.ru/cabinet/mycomments.
41
В базе есть соответствующая запись
"cabinet$mycomments$index" –
пользователь получит права на доступ.
2.6.3 Личный кабинет пользователя
Данный раздел доступен всем авторизированным пользователям.
В данном разделе пользователь видит информацию о себе, а так же список
событий, на которых он заработал баллы, либо штрафы.
Так же пользователь может дозаполнить свой профиль дополнительной
информацией:
 Загрузить или изменить аватар
 Выбрать интересные для себя сферы и направления
 Заполнить информацию о себе, в виде резюме.
Если профиль пользователя просматривает организатор, то ему так же
виден список «заслуг» пользователя и списки посещенных мероприятий.
2.6.4 Реализация доступ в подсистемы «Форум»
При проектировании системы от заказчика поступило пожелание,
чтобы каждая подсистема «Форум» была доступна по своему собственному
адресу, такого вида – http://website.ru/{название_мероприятия}
Я реализовал это следующим образом - все контроллеры для работы с
подсистемой были вынесены в отдельную Area – “Forum”.
В файле с Route.config зарегистрирован новый маршрут
routes.MapRoute(
name: "ForumCabinet",
url: "{forumName}/Cabinet/{controller}/{action}/{id}",
defaults: new {controller = "Home", action = "Index", id = UrlParameter.Optional, forumName = "",
formalArea = "Cabinet"},
constraints: new {forumName = new ForumConstraint()},
namespaces: new string[] {"Acivic_new.Areas.ForumCabinet.Controllers"}
).DataTokens.Add("area", "ForumCabinet");
Листнинг 3 - Регистрация нового маршрута
И реализован метод для проверки на существование форума
42
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values,
RouteDirection routeDirection)
{
if (!values.ContainsKey(parameterName)) return false;
int id = 0;
var forumName = values[parameterName] as string;
if (!string.IsNullOrEmpty(forumName))
id = GetForumID(forumName);
return id > 0;
}
Листнинг 4 - Проверка на существование пути
Если такой форум не существует, то пользователь увидит стандартную
страницу с ошибкой 404.
43
ГЛАВА 3. МОДЕЛЬ УГРОЗ
3.1
Цель защиты ИС и циркулирующей в ней информации
В качестве защищаемых объектов рассматривается информация, а так же
все ее носители и процессы обработки.
Обеспечение
безопасности
информационной
системы
предполагает
создание препятствий для несанкционированных действий, таких как
модификация, выведение из строя информационной системы, а также защиту
всех компонентов системы.
Для обеспечения безопасности информационной системы необходимо
выявить потенциального нарушителя и определить актуальные угрозы
безопасности.
3.2
Модель нарушителя информационной безопасности
От надежности системы защиты информации зависят и действия
нарушителя, так как для достижения своих целей нарушитель должен
приложить некоторые усилия, затратить определённые ресурсы. Если
информационная безопасность достаточно высока, его затраты будут
чрезмерно велики, и он откажется от своего замысла. В связи с этим
целесообразно определить в качестве показателя эффективности системы
защиты информации вероятность обнаружения и своевременной реакции на
каждый вид нарушения.
Основываясь на базовой модели угроз, можно выделить следующие
типы нарушителей (таблица 2).
44
Таблица 2. Типы нарушителей в системе
Тип нарушителя
Категория лиц
Внешний
Представители конкурирующих
организаций или лица, действующие
по их заданию; Противники
различных мероприятий
спонсируемых из государственного
бюджета или лица, действующие по
их заданию;
Внутренний
Администратор. Пользователи ИС;
Чтобы более точно определить нарушителя я учел опыт применения
прототипа системы на форуме северокавказской молодежи «Машук-2013».
Так же я учел все события безопасности, о которых стало известно, и
постарался понять возможные мотивы действий нарушителя.
Нарушитель не имеет физического доступа к информационной системе,
так как база и веб-приложение размещены в облаке компании Microsoft, и
будем считать, что нарушитель может осуществить только удаленные атаки
на само веб приложение и базу данных.
Исходя из особенностей функционирования ИС, физические лица,
работающие с системой, имеют разные полномочия на доступ
к
информационным и другим ресурсам ИС в соответствии с правилами работы
с сервисом.
К внешним нарушителям можно отнести лица действующих против ИС на
основании каких-либо своих мотивов. В качестве примера можно привести
событие произошедшее 3 июля 2012 года, когда группа Anonymous
выложила в сеть базу данных с анкетами, которые содержат адреса,
45
телефоны, места учёбы, работы и прочие личные данные участников
молодёжного форума Селигер 2012. Данная категория лиц относится к
возможным нарушителям.
К внутренним нарушителям могут относиться:
 Администратор системы (Категория I);
 Пользователи,
обладающие
правами
администратора
системы
(Категория II);
 Пользователи,
обладающие
правами
руководителей
подсистемы
«Форум» (Категория III);
 Пользователи, обладающие правами доступа к размещению материалов
которые попадают в публичную часть сайта (Категория IV);
 Обычный пользователь системы «Участник» (Категория V)
Лица категории I администрируют как программные средства, так и базы
данных, а так же площадки на которой размещается сервис(Windows Azure).
Данная категория лиц потенциально может реализовать угрозы ИБ,
используя возможности непосредственного доступа к объекту защиты.
Полагаем, что эти лица знакомы с основными возможностями платформы на
которой размещена ИС, структурой базы данных и веб приложения, им
известны основные протоколы используемые в ИС.
На лиц категории II возложены права по администрированию системы
непосредственно через веб-интерфейс. Данная категория лиц имеет
возможности по управлению ролями пользователей, и может установить
пользователям права доступа не выше своих собственных. Так же данная
категория лиц работает непосредственно с информацией поступающей в
систему.
На
лиц
категории
III
возложены
права
по
администрированию
подсистемы к которой им предоставили доступ лица, относящиеся к более
46
низким категориям (категория I и категория II). Эти лица могут
администрировать только отведенную им подсистему.
В виду исключительной роли лиц категорий I и II, работа с ними должна
осуществляться с применением специальных организационных мер, начиная
от мер по их подбору, назначению на должность и контролю выполнения
обязанностей.
Работа с лицами категории III должна заключаться на основании
определённых договоренностей, запрещающих какую либо деятельность,
которая может нарушить аспекты ИБ.
Лица, относящиеся к категориям IV и V, назначаются перечисленными
выше администраторами, лица данной категории могут относиться к
вероятным нарушителям.
Сговор внутренних нарушителей считается маловероятной возможностью,
так как в рамках работы системы такие действия не имеют смысла.
3.3
Предположения об имеющейся у нарушителя информации
об объектах реализации угроз
В качестве основных уровней знаний нарушителей об ИС можно
выделить следующие:
 данные о структуре и используемых технических, программных и
программно-технических средствах ИС;
 сведения об информационных ресурсах ИС: порядок и правила
создания, хранения и передачи информации;
 данные о реализованных в ПСЗИ принципах и алгоритмах;
 данные об уязвимостях, включая данные о недокументированных (не
декларированных)
возможностях
программных
и
программно-
технических средств ИС;
 сведения о возможных каналах реализации угроз;
47
 информацию о способах реализации угроз.
Предполагается, что лица категории IV и категории V владеют только
эксплуатационной информацией, что обеспечивается организационными
мерами.
Степень информированности нарушителя зависит от многих факторов,
включая конкретные организационные меры и компетенцию нарушителей.
Поэтому объективно оценить объем знаний вероятного нарушителя в общем
случае практически невозможно.
Подразумевается, что лица данной категории, могут обладать всей
необходимой
информацией,
для
подготовки
и
реализации
угроз,
исключением является информация, доступ к которой со стороны
нарушителя
исключается
системой
защиты
информации.
К
такой
информации, может относиться парольная, аутентифицирующая и ключевая
информация.
3.4
Предположения об имеющихся у нарушителя средствах
реализации угроз
Предполагается, что нарушитель имеет:
 доступные в свободной продаже технические средства и программное
обеспечение;
 специально разработанные технические средства и программное
обеспечение
Оценить имеющихся у нарушителя средства, которые могут быть
использованы для реализации угроз информационной безопасности, а также
возможности по их применению зависят от многих факторов, включая такие
факторы как организационные меры, финансовые возможности и уровень
компетенции нарушителей. Поэтому, в общем случае, оценить состав
имеющихся
у
нарушителя
средств
реализации
угроз
практически
невозможно.
48
Поэтому, чтобы определить актуальные угрозы и создать деструктивные
действия, предполагается, что вероятный нарушитель будет иметь все
необходимые для реализации угроз средства, возможности которых не
превосходят возможности аналогичных средств реализации угроз на
информацию, содержащую сведения, составляющие государственную тайну,
и технические и программные средства, обрабатывающие эту информацию.
Предполагается, что внешние нарушители имеют наиболее совершенные
средства реализации угроз, так как они в большей степени могут быть
заинтересованы в нарушении ИБ.
3.5
Описание объектов и целей реализации угроз
информационной безопасности
Основными информационными ресурсами, обрабатываемыми в ИС
являются
 данные о пользователях системы
 данные предоставляемые организаторами мероприятий
 данные полученные в ходе работы ИС на мероприятиях
Техническая информация представляет собой:
1. конфигурационные файлы
2. средства и принципы защиты, применяемые в ИС
3. базы данных
Целью реализации угроз является нарушение для объекта реализации
угроз
таких
целостность,
характеристик
доступность
безопасности
или
создание
как,
конфиденциальность,
условий
для
нарушения
характеристик безопасности объекта реализации угроз.
Целью нарушения конфиденциальности злоумышленником может быть
получение большого количества данных о пользователях системы для
осуществления спам рассылок.
Целью
нарушения
целостности
злоумышленником
может
быть
целенаправленное желание изменить или удалить информацию, например,
49
для накрутки баллов делегации или участников. Возможно, что по
результатам отчетов, полученных в ходе работы системы при поддержки
мероприятия будут выделяться различные гранты или рекомендации для
участников.
Целью нарушения доступности системы может быть остановка
процесса обслуживания конкретного события, что вполне может стать
причиной для разрыва отношений организаторов событий с создателем
системы, а так же повлечет снижение репутации системы.
3.6
Описание каналов реализации угроз информационной
безопасности
Возможными каналами реализации угроз информационной безопасности
являются:
• каналы доступа, образованные с использованием штатных средств ИС
• каналы
доступа,
образованные
с
использованием
специально
разработанных программных средств
Предполагается, что не являются каналами реализации угроз:
• каналы
доступа,
образованные
с
использованием
специально
разработанных технических средств;
• технические каналы связи.
3.7
Определение актуальных угроз и способов их реализации
На основании описанных целей реализации угроз можно выделить
актуальные угрозы ИБ:
 угроза осуществления НСД к разделам ИС требующим авторизации;
 угрозы получения НСД путем подмены доверенного объекта;
 угрозы типа «Отказ в обслуживании»;
50
На основании предположений о вероятных нарушителях, можно выделить
следующие основные способы реализации угроз ИБ:
• воздействие на веб-приложение путем использования различных
уязвимостей в коде приложения. Внутренние нарушители могут
применять атаки, описанные в пункте 1.5 первой главы.
• превышение полномочий, предоставленных пользователю в виду
возможных недостатков механизма разграничения доступа;
3.8
Методы защиты от актуальных угроз.
Методы защиты от некоторых атак разрабатываются еще на стадии
проектирования системы.
3.8.1 Список угроз, актуальность которых удалось минимизировать
на этапе проектирования системы
Угрозы типа «Отказ в обслуживании» - размещение веб-приложения и
базы
данных
в
инфраструктуре
Azure
гарантирует
требуемую
отказоустойчивость.
Дополнительно
проведена
защита
от
уязвимости
«небезопасная
конфигурация» – вся настройка сервера осуществлялась в соответствии с
рекомендациями Microsoft[15].
Во избежание проблем с уязвимостями веб-приложения, которые могут
быть реализованы через подключаемые модули (угроза
«использование
компонентов с известными уязвимостями») – все подключаемые компоненты
своевременно обновляются через менеджер пакетов NuGet.
Обеспечение защиты от внутренних нарушителей категорий I, II, III не
осуществляется
средствами
ИС.
Применяются
юридические
меры,
относящиеся к типу сотрудничества лиц этих категорий и владельца
системы.
51
3.8.2 Список угроз, актуальность которых удалось минимизировать
на этапе разработки системы
На этапе разработки системы удалось минимизировать актуальность угроз
осуществления НСД к разделам ИС требующим авторизации, путем защиты
от следующих атак:
 XSS – в качестве защиты от данной атаки используется библиотека
AntiXSS, которая позволяет фильтровать любые входящие запросы.
 SQL-injection – защита от данной атаки происходит на уровне
технологии доступа к данным -
Все данные
EntityFramework.
передаются параметрами и экранируются.
 Отсутствие контроля доступа к функциональному уровню – на уровне
веб-приложения реализована система проверки прав доступа.
 Подделка межсайтовых запросов (CSRF) – все операции с данными
выполняются POST запросами, а так же у каждой формы есть
уникальный ключ, передаваемый с каждым запросом.
 Небезопасные
количество
прямые
методов,
ссылки
через
на
объекты
которые
можно
–
минимизировано
получить
полную
информацию по каким-либо объектам системы. Так же при вызове
методов,
предоставляющих
такую
информацию
–
обязательно
проверяются права доступа.
 Осуществляется запись всех действий пользователей в лог,
осуществлено на уровне триггеров базы данных. Лог представляет
информацию о том, кто и когда совершил какое-то действие.
 При идентификации пользователей с ролью «Администратор» или
«Администратор подсистемы» - осуществляется двухэтапная
идентификация, пользователю приходит СМС с кодом доступа.
 Авторизация и аутентификация пользователей происходит по
алгоритму, описанному в пункте 2.6 второй главы.
52
Так же минимизирована актуальность угрозы осуществления НСД путем
подмены доверенного объекта, путем защиты от следующих атак:
 ошибки в реализации аутентификации и сессий – защита от данной
атаки происходит на уровне системы авторизации от Microsoft ASP.NET Identity.
 невалидированные перенаправления (OpenRedirect)
3.8.3 Реализация защиты от OpenRedirect
В методах, в которых есть перенаправления на другие страницы, адрес
которых передается в качестве параметра выполняется проверка посредством
вызова метода IsLocalURL()[Приложение 2]. Если злоумышленник подставит
в параметр свой ReturnUrl, то пользователь увидит страницу, которая
предупредит его о переходе на другой сайт.
3.8.4 Реализация базовой защиты от XSS и CSRF атак
Для защиты от XSS-атак используется библиотека AntiXSS, которая
позволяет фильтровать любые входящие запросы.
MVC
ASP.NET
вспомогательных
содержит
методов,
собственный
защищающих
от
набор
CSRF-атак
встроенных
с
помощью
уникальных токенов, передаваемых с каждым запросом. Эти методы
используют не только скрытое поле на форме, так называемый маркер, но и
значение cookie, сильно затрудняя поддержку запроса. Для реализации этого,
необходимо
в
каждую
передаваемую
форму
добавить
запись
@Html.AntiForgeryToken и ко всем контроллерам, принимающим данные
необходимо добавить атрибут ValidateAntiForgeryToken.
53
ЗАКЛЮЧЕНИЕ
В ходе дипломной работы было сделано следующее:
 выработаны требования и спроектирована ИС;
 проведен анализ угроз, выявлены основные меры защиты, определены
актуальные угрозы;
 разработана информационная система с необходимыми мерами
защиты, определенными на основе анализа угроз.
Таким образом, были решены все поставленные задачи. Следовательно,
можно сделать вывод о том, что цель дипломной работы достигнута.
Разработанная ИС запущена и находится на стадии тестирования, а так же
следующий этап работ уже находится на стадии написания ТЗ. Планируется
добавление многих новых функций, таких как:
 автоматизации
процедуры
предоставления
площадок
для
проводимых мероприятий, подключение системы оплаты;
 расширение возможностей функционала, для пользователей,
создание групп.
54
СПИСОК ЛИТЕРАТУРЫ
1. William S. Davis. The Information System Consultant's Handbook. Systems
Analysis and Design. / William S. Davis, David C. Yen. — CRC Press,
1998. — 800 с. — ISBN 0849370019
2. Об
информации,
информационных
технологиях
и
о
защите
информации: Федеральный закон Российской Федерации от 27 июля
2006 г. N 149-ФЗ
3. Стандарт ISO/IEC 2382-1
4. Когаловский М. Р. Перспективные технологии информационных
систем. — М.: ДМК Пресс; Компания АйТи, 2003. — 288 с. — ISBN 594074-200-9
5. Социальные сетевые сервисы // Википедия [Электронный ресурс]. –
URL: http://ru.wikipedia.org/wiki/ Социальные_сетевые_сервисы (дата
обращения 19.11.2013).
6. SQL
Azure//
Википедия
[Электронный
ресурс].
–
URL:
http://ru.wikipedia.org/wiki/SQL_Azure. (дата обращения 19.11.2013).
7. Социальная
сеть//
Википедия
http://ru.wikipedia.org/wiki/
[Электронный
Социальная_сеть
ресурс].
(дата
–
URL:
обращения
19.11.2013).
8. Блоги//
Википедия
[Электронный
ресурс].
–
URL:
http://ru.wikipedia.org/wiki/ Блоги. (дата обращения 19.11.2013).
9. Макаренко С. И. Информационная безопасность: учебное пособие для
студентов вузов. – Ставрополь: СФ МГГУ им. М. А. Шолохова, 2009. –
372 с.: ил.
10. Информационные технологии. Основные термины и определения в
области технической защиты информации. [Электронный ресурс]. –
URL:
http://allsnips.info/docs/45/45674/index.htm.
(дата
обращения
15.11.2013).
55
11.Курс Безопасность Информационных
ресурс].
-
URL:
Технологий
[Электронный
http://w15408.narod.ru/books/
KursSecurOfInformTechn.doc. (дата обращения 19.11.2013).
12.Базовая модель угроз безопасности персональных данных при их
обработке в информационных системах персональных данных
(выписка). ФСТЭК России, 2008 год
13.The Open Web Application Security Project [Электронный ресурс]. URL:
https://www.owasp.org/index.php/Main_Page
(дата
обращения
20.11.2013).
14.Cписок топ-10 уязвимостей от OWASP [Электронный ресурс]. - URL:
http://www.xakep.ru/post/60778/default.asp (дата обращения 20.11.2013).
15.Центр управления безопасностью Windows Azure [Электронный
ресурс]. - URL: https://www.windowsazure.com/ru-ru/support/trustcenter/security/ (дата обращения 15.10.2013).
56
Приложение 1
Схема базы данных
57
Приложение 2
Реализация функции проверки URL адреса
58
Download