Допустить к защите в ГАК Заведующий кафедрой информационной безопасности д.т.н. профессор А.А. Захаров (подпись) «___» ________20__ г. Антончик Алексей Сергеевич РАЗРАБОТКА ЗАЩИЩЕННОЙ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ДЛЯ ИНФОРМАЦИОННОЙ ПОДДЕРЖКИ ПУБЛИЧНЫХ МЕРОПРИЯТИЙ (Выпускная квалификационная работа) Научный руководитель: доцент __________________/Е.А. Оленников/ (подпись) Автор работы: __________________ /А.С. Антончик/ (подпись) Тюмень – 2014 2 Оглавление СОКРАЩЕНИЯ И ОБОЗНАЧЕНИЯ .................................................................... 4 ВВЕДЕНИЕ .............................................................................................................. 5 ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ ИНФОРМАЦИОННОЙ ПОДДЕРЖКИ ПОСТРОЕНИЯ ПУБЛИЧНЫХ МЕРОПРИЯТИЙ, АРХИТЕКТУРЫ ИХ И МЕТОДОВ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ. .................................................................................................. 8 1.1 Обзор методов обеспечения информационной поддержки и существующие решения в данной сфере. ......................................................... 8 1.2 Общая архитектура построения систем информационного поддержки. ............................................................................................................................. 13 1.2.1 Обзор популярных веб-серверов. ....................................................... 14 1.2.2 Обзор технологий и средств построения веб-приложений. ............ 15 1.2.3 Технологии построения API для взаимодействия с ИС. .................. 16 1.2.4 Мобильные ОС . ................................................................................... 18 1.3 Методы обеспечения информационной безопасности ........................... 21 ГЛАВА 2. РАЗРАБОТКА СИСТЕМЫ ИНФОРМАЦИОННОЙ ПОДДЕРЖКИ ПУБЛИЧНЫХ МЕРОПРИЯТИЙ ........................................................................ 33 2.1 Требования к системе ................................................................................. 33 2.2 Выбор технологии и разработка архитектуры реализации системы ..... 34 2.3 Проектирование базы данных .................................................................... 38 2.4 Организация авторизации и аутентификации пользователей. ............... 40 2.5 Регистрация организаторов. ....................................................................... 41 2.6 Разработка личного кабинета администратора и организатора. ............ 42 2.7 Модуль управления мероприятием ........................................................... 44 [Введите текст] 3 2.8 Разработка API для мобильных приложений. .......................................... 47 2.9 Разработка приложения участника на ОС Android и iOS. ...................... 47 2.10 Размещение БД и веб-приложения .......................................................... 49 ГЛАВА 3. ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ СИСТЕМЫ ............................................................................................................. 50 3.1 Модель нарушителя информационной безопасности ............................. 50 3.2 Объекты и цели реализации угроз ИБ. ..................................................... 52 3.3 Определение актуальных угроз ИЮ и способов их реализации. ......... 54 3.4 Методы защиты от актуальных угроз. ...................................................... 54 ЗАКЛЮЧЕНИЕ ..................................................................................................... 57 СПИСОК ЛИТЕРАТУРЫ..................................................................................... 58 ПРИЛОЖЕНИЕ 1 .................................................................................................. 61 ПРИЛОЖЕНИЕ 2 .................................................................................................. 62 ПРИЛОЖЕНИЕ 3 .................................................................................................. 63 ПРИЛОЖЕНИЕ 4 .................................................................................................. 64 [Введите текст] 4 СОКРАЩЕНИЯ И ОБОЗНАЧЕНИЯ ПО – программное обеспечение ОС – операционная система БД – база данных ФСТЭК – федеральная служба по техническому и экспортному контролю ИС – информационная система [Введите текст] 5 ВВЕДЕНИЕ При проведении любого публичного мероприятия очень важно обеспечить его информационную поддержку, а именно наиболее широко осветить информацию о мероприятии, донести в удобном виде программу мероприятия до потенциальных участников, обеспечить обратную связь с участниками. Очевидно что, отдача от мероприятия будет тем больше, чем больше информации будет донесено до потенциальных участников и чем удобнее будет организована информационная связь между участниками и организаторами. Наиболее распространенным способом такой поддержки является создание сайта мероприятия, на котором будет публиковаться вся актуальная информация о мероприятии, такая как программа мероприятия, новости, список участников, а также голосования и опросы для обратной связи с участниками. Разработка такого сайта с нуля требует серьезных временных и финансовых затрат и привлечение специалистов. Даже если будут использоваться конструкторы для сайтов, организаторам мероприятий все равно потребуется нанимать специалистов, решать вопрос о размещении сайта и составлять техническое задание. Все это требует большого количества времени и не дает гарантий, что данный сайт сможет удовлетворить потребности при желании повторного использования и организатору не придется его дорабатывать. С распространением мобильных устройств информации до потенциальных участников стало доносить проще и в более удобном виде. Каждый раз разрабатывать приложения для мобильных устройств очень долго и дорого. Актуальной задачей является предоставление сервиса организаторам мероприятий, который позволит избавить их от проблем организации информационной поддержки мероприятия. [Введите текст] 6 В настоящее время существуют сервисы предоставляемые различными компаниями на информационную платной основе, поддержку которые мероприятия позволяют с организовать определенным набором сервисов, используя мобильные устройства как ключевые средства для обеспечения участников актуальной информацией о мероприятии. Но таких сервисов очень мало и в большинстве своем они не предоставляют требуемых сервисов, таких как интерактивное голосование, опросы по определенным темам, и многое другое, а также нет возможности дорабатывать данные решения под желания клиентов. Я являюсь сотрудником компании ООО «Сибтел-Крипто», которая решила выйти на рынок предоставления услуг по организации информационной поддержки публичных мероприятий. Было решено, что актуальной задачей является оказание услуг по обеспечению информационной поддержки мероприятий с возможностью доработки системы под все нужны клиентов, которые к нам обращаются. Для меня была поставлена задача разработать систему обладающую необходимым функционалом и обеспечить ее защиту. Целью дипломной работы является разработка защищенной автоматизированной системы для ведения бизнеса путем предоставления услуг по организации информационной поддержки публичных мероприятий. Под защищенностью подразумевается возможность противостоять актуальным угрозам информационной безопасности. Под автоматизированностью подразумевается возможность управления системой без навыков программирования. Для достижения цели требуется решить следующие задачи: Разработать архитектуру и выбрать технологию реализации системы с учетом требований информационной безопасности. Разработать защищенную систему информационной поддержки публичных мероприятий. Построить модель угроз, выявить актуальные и принять меры по их минимизации. [Введите текст] 7 Объектом исследования выступает процесс организации информационной поддержки мероприятий. Предметом исследования в дипломной работе является технологии для построения системы информационной поддержки мероприятий. Методологической и теоретической основой дипломной работы явилась информация о архитектуре и способах организации систем обеспечения информационной поддержки публичных мероприятий. В ходе работы над дипломной работой использовалась информация, отражающая методы обеспечения информационной безопасности. Теоретическая значимость дипломной работы заключается в обеспечении безопасности и автоматизации процесса организации информационной поддержки для публичных мероприятий. Практическая значимость дипломной работы определяется в том, что результат работы позволит организовать собственный бизнес путем, качественной и универсальной организации информационной поддержки публичных мероприятий. [Введите текст] 8 ГЛАВА 1. ОБЗОР СУЩЕСТВУЮЩИХ СИСТЕМ ИНФОРМАЦИОННОЙ ПОДДЕРЖКИ ПУБЛИЧНЫХ МЕРОПРИЯТИЙ, АРХИТЕКТУРЫ ИХ ПОСТРОЕНИЯ И МЕТОДОВ ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ. 1.1 Обзор методов обеспечения информационной поддержки и существующие решения в данной сфере. В своей дипломной работе под системой информационной поддержки я понимаю систему, целью которой является предоставление различной информации о мероприятии и о событиях в рамках данного мероприятия максимально возможному кругу заинтересованных лиц, а также обеспечение информационной связи между участниками и организаторами мероприятия. Публичными мероприятиями в моем понимании являются конференции, форумы, съезды и т.д. Информационная поддержка заключается в предоставлении в удобном виде информации для потенциальных участников, рассылка информационных материалов, проведение голосований и вопросов и.т.д. Для простого понимания информационная поддержка является связующим компонентом между организаторами и участниками для любых мероприятий, независимо от тематики и направления, для участников это является дополнительной возможностью выяснить возникающие вопросы, наладить контакты с интересующими людьми, а для организаторов создается и накапливается хорошая статистика на основании, которой можно делать выводы. Основные функции информационного обеспечения мероприятий: Предоставление списка событий. Предоставление информации о мероприятии. Предоставление информации об участниках. [Введите текст] 9 Организация голосований и опросов. Предоставление информации об организаторе и многое другое. В настоящее время существуют разные походы при организации информационной поддержки мероприятий. Самый простой способ это создание сайта-визитки, для этого организатору необходимо нанимать специальных людей, составлять техническое задание, решать вопрос с хостингом и при этом не иметь гарантий в том, что сайт будет удовлетворять всем необходимым требованиям и при желании последующего использования требования к сайту не изменятся. Также существуют решения в виде конструктора сайтов, где пользователь может создать сайт с нужным функционалом, но данный подход также не решает ряда проблем, также необходимо нанимать человека для конструирования, решать проблему с хостингом, и самое главное не все конструкторы содержат необходимый функционал, например хорошо реализовано голосование, но нет объявлений. С появлением мобильных устройств, таких как смартфоны, планшеты доносить информацию до участников становится проще. Сейчас появляются компании, которые предоставляют сервисы по обеспечению информационной поддержки мероприятий и берут все проблемы связанные с данной задачей на себя. Проведя анализ рынка систем информационной поддержки мероприятий я нашел следующие решения. Omyconf Страна:Россия Сайт:http://omyconf.com/ru Описание: Omyconf – это сервис для организаторов и участников конференций, SaaS(Программное обеспечение как услуга) платформа, которая позволяет работать с мероприятием, его участниками и материалами до, во время и после его завершения. Особенности: [Введите текст] 10 глобальный календарь мероприятий, который может дополняться и самими участниками; партнерство с сервисом по продажам билетов. Успехи: За период 2010-2012 сервис использовался на 55 мероприятиях, из них 60% платных. Максимальное количество участников на мероприятии – 7 000 Планы на будущее: В 2013 - 500 запусков на глобальном рынке На 3-5 лет: От 5000 запусков в год 300 000 мероприятий в базе 1 млн. активной аудитории, использующей сервис на конференциях и между ними Источники доходов: 1. Сервис для мероприятия 2. Комиссия с продажи электронных билетов (через партнера TicketForEvent) 3. Комиссия с сервисов бронирования отелей и билетов 4. Комиссия с продажи контента мероприятия (после его завершения) 5. Реклама среди пользователей (сайт, моб.приложения) Доступ к сервису: сайт, мобильная версия, приложения iOS и Android В приложении на Android без авторизации доступен каталог всех мероприятий[1]. Тарифы: Вариант 1. Кол-во участников Цена за мероприятие До 100 Бесплатно 100-300 50 000 руб. 300-600 65 000 руб. 600-1000 100 000 руб. [Введите текст] 11 Таблица 1. Тарифы Omyconf. Вариант 2. Подписка на 6 или 12 месяцев (расчет индивидуально) KitApps Страна: Украина Сайт: http://attendify.com Стартап проект (признан лучшим в Украине в 2012 году). Команда из Киева. Территориально - в Силиконовой долине. Описание: Проект KitApps представляет собой средство для создания мобильных приложений для устройств, работающих на платформах Android и iOS, а также сайтов с использованием подготовленных шаблонов. В первую очередь это приложения-справочники для организаторов конференций и выставок, для которых KitApps предлагает индивидуально настроенные секции, такие как: интерактивное расписание, профили спикера и спонсора, карты и RSS ленты новостей. Можно также настроить цвет и шрифты, чтобы придать приложению желаемый внешний вид, сделать его уникальным по своему вкусу. Тарифы: Годовая подписка. Оформляется в момент, когда пользователь хочет опубликовать готовое приложение в AppStore или GooglePlay. Публикация возможна как в аккаунте разработчика (7-10 рабочих дней), так и в собственном аккаунте пользователя. Создание приложений в конструкторе – бесплатная функция[2]. Шаблон Guide App Вся информация о мероприятии (программа, профили докладчиков и спонсоров, карты и др.). Индивидуальное расписание для [Введите текст] Шаблон Social App Все возможности Guide App + RSS-лента мероприятия, в которой публикуются твиты, фото, сообщения, вопросы 12 участников. Индивидуальный дизайн: логотип организатора, иконка приложения, шрифты, цвета. Изменение содержимого в любой момент с мгновенным обновлением в приложениях. Статистика по использованию приложений (кол-во скачиваний, кол-во сессий) участников. Редактирование ленты организатором. Профили участников, обмен сообщениями с другими участниками. Push-уведомления от организатора. Управление профилями участников. $399 (12 400 руб.) за год $599 (18 600 руб.) за год Таблица 2. Тарифы KitApps. Bizzabo Страна: Израиль Сайт:www.bizzabo.com Доступ к сервису: мини-сайт мероприятия, мобильные приложения iOS и Android Тарифы. Цена за одно мероприятие[3]. Базовый Стандартный Премиум Про Деловые связи Деловые связи Деловые связи Деловые связи Социальные сети Социальные сети Социальные сети Социальные сети Программа Программа Программа Программа и мероприятия и мероприятия и мероприятия мероприятия доп.информация доп.информация доп.информация доп.информация Профили Профили Профили Профили докладчиков докладчиков докладчиков докладчиков и 3 оповещения от 5 оповещений от 8 оповещений от 15 оповещений от организатора [Введите текст] организатора организатора организатора 13 1 профиль До 20 спонсоров спонсора Реклама Реклама спонсоров Аналитика Бесплатно До 50 спонсоров при спонсоров загрузке загрузке приложения приложения Аналитика Аналитика $300 (9 300 руб.) $600 (18 600 руб.) при $1000 (31 000 руб.) Таблица 3. Тарифы Bizzabo. Так как целью дипломной работы является создание системы для возможности получения финансовой прибыли путем предоставления сервиса по организации информационной поддержки мероприятий. Для реализации поставленной цели адаптировать существующие продукты сложно, поэтому было принято решение о разработке собственной системы, с возможностью доработки под нужды клиентов, иначе удовлетворить заявленные потребности клиентов по обеспечению информационной поддержки не предоставляется возможным 1.2 Общая архитектура построения систем информационного поддержки. На основе существующих решений описанный в п.1.1 можно сделать вывод о том, что архитектура систем информационной поддержки, как правило включает в себя веб-приложение, которое доступно с любого компьютера в Интернете и не требует специальной установки или настройки, а так же приложения для мобильных устройств разных платформ, все это связано в одну систему для взаимодействия. Современные инструменты для разработки предлагают множество возможностей реализации веб- приложений. Для того чтобы разработать веб-приложение необходимо [Введите текст] 14 выбрать инструмент для разработки и веб-сервер, на котором оно будет размещено. Разработка мобильных приложений требует специальных навыков, а их взаимодействие с веб-приложением осуществляется по средствам API. 1.2.1 Обзор популярных веб-серверов. Веб-сервер – сервер, который принимает и обрабатывает HTTP запросы, и выдает HTTP-ответ соответствующий запросу. Веб-сервером является как программное обеспечение, выполняющее функции веб-сервера, так и аппаратное обеспечение, на котором работает программное обеспечение. Основываясь на данных исследования компании PositiveTchnologies[4] наиболее популярными веб-серверами являются: NGINX APACHE IIS APACHE TOMCAT Выбор веб-сервера также зависит от платформы разработки веб-приложения, для .NET единственным вариантом является веб-сервер IIS. Сравнение вебсерверов приведено ниже в Таблице 1. Названи е Автор и год создания Apache HTTP Server Apache Software Foundation, 1995 Apache Tomcat Sun Microsystems, ? Apache [Введите текст] Распространени е бесплатно бесплатно Open Sourc e Да Да Лицензия Особенност и Упор на Apache License надёжность и гибкость. Apache License 2.0 Реализован полностью на Java. 15 Названи е Автор и год создания Распространени е Open Sourc e Лицензия Особенност и Software Foundation, 1999[1] Internet Information Microsoft, 1995 Services nginx Игорь Сысоев, 2002 вкл. в Win NT бесплатно Нет Является частью Microsoft EUL пакета IIS. A Поддерживает .NET Да Разрабатывался для испытывающи х большую Вариант BSD нагрузку серверов. Включает в себя почтовый прокси-сервер. Таблица 4. Сравнение веб-серверов[5]. 1.2.2 Обзор технологий и средств построения веб-приложений. Фреймворк - структура программной системы, программное обеспечение облегчающее разработку и объединение разных компонентов большого программного проекта. Это основа программной системы (или подсистемы). Может содержать вспомогательные библиотеки, программы, язык сценариев и другое ПО, облегчающее объединение и разработку разных компонентов большого программного проекта. Обычно объединение происходит за счёт использования единого API. Использование паттернов при построении систем обеспечивает легкую их интеграцию и расширяемость. Паттерн Модель-представление-контроллер или по-английски Model-view-controller используется очень давно. Впервые в своей работе его описал Тригве Реенскауг в 1970г. «Разработка приложений [Введите текст] 16 на Smalltalk-80: как использовать Модель-представление-контроллер». С того времени данный паттерн зарекомендовал себя как наиболее удачная архитектура для построения приложений. Рис. 1 Модель, представление, контроллер. Пользователь при работе с интерфейсом управляет контроллером, который отслеживает действия пользователя. Далее контроллер сообщает модели о действиях пользователя, тем самым изменяется состояние модели. Контроллер также уведомляет представление. Представление, используя текущее состояние модели, строит пользовательский интерфейс. Основой паттерна является отделение модели данных приложения, его логики и представления данных друг от друга. Таким образом, следуя правилу «разделяй и властвуй», удается строить стройное программное обеспечение, в котором, во-первых, модель не зависит от представления и логики, а во-вторых, пользовательский интерфейс надежно отделен от управляющей логики.[6] На данный момент реализацию данного паттерна поддерживают многие языки программирования, основными лидерами являются Python, Ruby и продукт от компании Microsoft ASP.NET MVC. 1.2.3 Технологии построения API для взаимодействия с ИС. [Введите текст] 17 API(интерфейс программирования приложений) - набор готовых классов, процедур, функций, структур, констант для использования во внешних программных продуктах. API часто используется при разработке веб-приложений и сервисов. Как правило API определяет определенный набор HTTP-запросов, а для ответа используются такие структуры, как XML или JSON. Web API является синонимом веб-службы, основными технологиями работы которой являются SOAP и REST. SOAP SOAP –(Simple Object Access Protocol) – протокол основанный на XML, определяющий правила передачи данных между прикладными системами через интернет. SOAP устанавливает стандарт взаимосвязи клиента и сервера, в основе заложен принцип вызова удаленных процедур, которые принимают различные параметры, в зависимости от которых возвращают значения. Для представления любой информации, передаваемой от клиента к серверу и наоборот, используется XML. Разрабатывался с расчетом использования по протоколу HTTP , однако может задействовать иные транспортные протоколы, например SMTP[7]. С примером работы протокола можно ознакомиться в Приложении 1. REST REST(Representational State Transfer) – это архитектурный стиль построения распределенных систем, описывающий принципы разработки программного обеспечения. REST использует протокол HTTP, данные передаются в виде распространенных стандартных форматов (HTML,XML,JSON). Основными достоинствами REST является его простота, а также кэширование, что увеличивает скорость и масштабируемость системы, функциональная совместимость[8]. С примером работы протокола можно ознакомиться в Приложении 2. [Введите текст] 18 Из этих данных можно сделать выводы о том, что SOAP это целое семейство протоколов и стандартов, что говорит о его избыточности и тяжеловесности по сравнению с REST. SOAP использует HTTP как транспортный протокол, а REST основан на нем, из этого следует что все технологии такие как, кэширование на уровне сервера, масштабируемость, используются в архитектуре REST ,в то время как в SOAP необходимо искать другие средства. Так же преимуществом REST над SOAP является то, что SOAP привязан к XML, в то время как REST может использовать JSON и другие форматы данных. 1.2.4 Мобильные ОС . Современные мобильные телефоны(смартфоны) представляют собой мощное устройство равноценное по возможностям с нетбуком или планшетом, полноценное функционирование которых обеспечивается мобильными операционными системами. По данным J’son & Partners Consulting , предоставленных в 2013 году, доля продаж смартфонов в структуре продаж мобильных телефонов на мировом рынке достигла Рис.2 – Доля смартфонов в общих продажах мобильных телефонов. [Введите текст] 55%. 19 Что касается мобильных операционных систем, то лидером на мировом рынке является Android, доля которого с каждым годом увеличивается, следом за Android идет ОС Apple iOS. Стоит отметить, что доля финской Nokia с ее ОС Symbian стремительно падает. Рис. 3 Доля ОС на рынке смартфонов. Крупные производители и операторы заинтересованы в том, что появившиеся на рынке мобильных операционных систем новые игроки смогут потеснить позиции текущих лидеров: Firefox OS – мобильная операционная система, разработанная компанией Mozilla. Смартфоны на Firefox OS ориентированы на бюджетный ценовой сегмент и вполне могут занять нишу, освободившуюся после свертывания продаж Bada и Symbian. Tizen – операционная система, разработанная на базе ядра Linux. Как ожидается, первый смартфон на платформе Tizen компания Samsung представит осенью 2013 года. В числе целевых рынков новой ОС есть и Россия: это объясняется хорошими показателями продаж устройств на базе Bada, особенности которой были внедрены в ОС Tizen.[9] [Введите текст] 20 1.2.4.1 Мобильная ОС Android ОС Android – представляет собой программный стек для мобильных устройств, который включает операционных систему, основанную на ядре Linux , содержит пользовательские приложения такие как: почтовый клиент; календарь; карты; браузер; контакты. Из всей архитектуры для нас стоит выделить среду выполнения, мультемедийные библиотеки и каркас приложений, которые пригодятся для разработки приложений. Функциональные библиотеки. Android включает ряд библиотек с/с++, используемых различными компонентами системы. Далее приводятся основные функциональные библиотеки системы[10]. Разработка приложений Языком программирования для Android является Java. Изначально средой разработки являлся Eclipse, вскоре компания JetBrains предложила свою альтернативу IntelijeIdea , позже на основе которой Google выпустила свою Android Studio. Для разработки приложений Google предоставляет Android SDK(Software Development Kit) для разработчиков. 1.2.4.2 Мобильная ОС iOS. iOS(до 24 июня 2010 года – iPhone OS) – мобильная операционная система, разработанная и выпущенная компанией Apple в 2007 году. Первоначально для iPhone и iPod Touch, позже для iPad и Apple TV. Выпускается только для устройств , производимых Apple. Пользовательский интерфейс основан на концепции прямого управления с использованием жестов. iOS разработана на основе OS X и [Введите текст] 21 использует тот же набор основных компонентов Darwin, совместимый со стандартом POSIX. На настоящий момент актуальна 7 версия операционной системы. Разработка приложений может предоставляемым компанией Apple производиться по средствам в программе Xcode. Приложения публикуются в онлайн-магазине AppStore, который является крупнейшим магазином мобильных приложений. Операционная система разработана с упором на безопасность и соблюдения авторских прав. [11]. 1.3 Методы обеспечения информационной безопасности Любая информационная система подвержена угрозам, это подтверждается статистическими данными[12] с одной стороны, с другой стороны, как и в любой другой ИС есть уязвимости, которые нельзя полностью исключить. Понятие информационной системы хорошо разъяснено в Федеральном законе РФ от 27 июля 2006 года № 149-ФЗ «Об информации, информационных технологиях и о защите информации»: «информационная система — совокупность содержащейся в базах данных информации и обеспечивающих её обработку информационных технологий и технических средств» [13]. Защищаемой информацией в ИС являются хранящиеся данные, а также методы и алгоритмы использующиеся при их обработке. Требования по обеспечению безопасности в различных ИС могут существенно отличаться, однако они всегда направлены на достижение трех основных свойств: конфиденциальность — состояние информации, при котором доступ к ней осуществляют только субъекты, имеющие на неё право[14]. [Введите текст] 22 целостность — избежание несанкционированной модификации информации[14]. доступность — избежание временного или постоянного сокрытия информации от пользователей, получивших права доступа[14]. Для обеспечения выше перечисленных свойств необходимо выполнить ряд мер законодательных, организационных и технических. На законодательном уровне Российской Федерации существует перечень действующих стандартов и руководящих документов в области методов и средств обеспечения безопасности. Основным направлением политики государства в данной области является осознание необходимости защиты любых информационных неправомерное обращение ресурсов с и которыми информационных может нанести технологий, ущерб их собственнику, владельцу, пользователю или иному лицу. Нормативные акты правового регулирования вопросов информатизации и защиты информации в Российской Федерации включают: Законы Российской Федерации. Указы Президента Российской Федерации и утверждаемые этими указами нормативные документы. Постановления Правительства Российской Федерации и утверждаемые этими постановлениями нормативные документы (Положения, Перечни и т.п.). Государственные и отраслевые стандарты. Положения, Порядки. Руководящие документы и другие нормативные и методические документы уполномоченных государственных органов [18](ФСТЭК, ФСБ). Для определения актуальных угроз используют документ ФСТЭК России «Базовая модель угроз безопасности персональных данных при их обработке в информационных системах персональных данных » [15]. [Введите текст] 23 Не секрет что для обеспечения безопасности требуются денежные средства для того чтобы построить оптимальную защиту для ИС необходимо выработать решение, которое будет защищать от актуальных угроз ИС. Основываясь на базовой модели угроз, разработанной ФСТЭК России следует построить модель угроз для разрабатываемой ИС. При построении моделей угроз необходимо дать несколько определений. Нарушитель - это лицо, предпринявшее попытку выполнения запрещенных операций по ошибке, незнанию или осознанно использующее для этого различные возможности, методы и средства [16]. Угроза – потенциально возможное событие, действие, процесс или явление, которое может привести к нанесению ущерба чьим-либо интересам[16]. Уязвимость - это свойство ИС, использование которой нарушителем может привести к реализации угрозы. Атака - это любое действие нарушителя, которое приводит к реализации угрозы путём использования уязвимостей информационной системы[16]. Источник угрозы безопасности информации – субъект доступа, материальный объект или физическое явление, являющиеся причиной возникновения угрозы безопасности информации. По наличию права постоянного или разового доступа нарушители подразделяются на два типа: нарушители, не имеющие доступа к ИС, реализующие угрозы из внешних сетей связи общего пользования и (или) сетей международного информационного обмена; нарушители, имеющие доступ к ИС, включая пользователей, реализующие угрозы непосредственно в ИС, внутренние нарушители [16]. По итогам 2012 года компания Positive Technologies провела анализ уровня защищенности веб-приложений ИС[12], отсюда можно выделить два больших класса атак по методу их реализации: Сетевые атаки [Введите текст] 24 Уязвимости веб-приложений 1.4.1 Атаки на веб-приложений и методы противодействия им. С быстро растущей распространенностью сети Интернет увеличивается и количество потенциально интересных для хакеров ресурсов. Для того чтобы повлиять на работоспособность ИС хакерам не требуется особых знаний о технологиях и алгоритмах устройства ИС, достаточно лишь знать IP-адрес жертвы. Атаки осуществляющиеся по средствам коммуникации сети Интернет настолько же разнообразна, как и системы против которых они направлены. Сниффер пакетов Сниффер пакетов – это прикладная программа, которая перехватывает все сетевые пакеты в данный момент передающиеся по сети. Эти программы являются законными, но некоторые протоколы передают информацию в незашифрованном виде и тогда у злоумышленника появляется возможность перехватить конфиденциальную информацию такую как, имена пользователей или пароли, а также сообщения пользователей. Пользователи часто используют одни и те же данные в разных ИС, тем самым перехвативший эти данные может получить доступ во множество приложений и системы , которыми пользуется жертва. Способы защиты от сниффинга пакетов: Аутентификация. Использование парольных криптографических схем, которые делают бесполезным перехват информации с помощью сниффера, например схема Лэмпорта («Lamport hash chain»). Настройка сетевого оборудования. Если затрагивать глубину этого способа то она заключается в обеспечении безопасности на 2 уровне модели OSI(data link), при правильной конфигурации сетевого оборудования злоумышленник или вообще не сможет подключиться к сети, или будет получать информацию которая предназначена [Введите текст] 25 конкретному сетевому порту оборудования, данный способ не дает полной защиты но значительно увеличивает сложность использования сниффера злоумышленником. Антиснифферы. Данный способ заключается в установке аппаратных или программных средств, распознающих действия снифферов, работающих в сети. Данный способ не может обеспечить должную защиту, но применяется при комплексном обеспечении защиты. Криптография. Самый эффективный способ борьбы со сниффингом пакетов, не предотвращает их перехват , но делает его бессмысленным. При перехвате информации злоумышленник получает бесполезный набор данных в виде битовых значений, извлечь информацию из которых вычислительно сложно. Яркими примерами криптографических протоколов являются SSH (Secure Shell) и SSL (Secure Socket Layer)[17]. IP-спуфинг IP-спуфинг происходит в том случае, когда злоумышленник выдает себя за санкционированного пользователя. Это также производится на основе протокола IP. Атаки IP-спуфинга часто являются отправной точкой для прочих атак. Угрозу спуфинга можно ослабить (но не устранить) с помощью перечисленных ниже мер. Контроль доступа. Данный способ актуален для защиты внутри сети, где подключение к целевому ресурсу разрешено c определенных хостов, остальной трафик полностью отбрасывается. Создание дополнительных средств аутентификации. Как в случае со сниффером необходимо создать условие, что спуффинг станет [Введите текст] 26 бессмысленным для атакующего, например дополнительная аутентификация по пользователю и паролю[17]. Отказ в обслуживании Denial of Service (DoS), самая распространенная атака легко реализуемая и очень тяжело ей полностью противостоять. Данная атака направлена на свойство доступности информации, что очень важно для больших организации и потери при ее реализации выражаются в финансовом эквиваленте. Наиболее известные разновидности: TCP SYN Flood; Trinity. Trinco; Tribe Flood Network (TFN) и Tribe Flood Network 2000 (TFN2K); Stacheldracht; Ping of Death; Когда атака данного типа проводится одновременно через множество устройств, мы говорим о распределенной атаке DoS (distributed DoS, DDoS). Угроза атак типа DoS может быть снижена тремя способами: • Функции антиспуфинга. Правильная конфигурация функций антиспуфинга на ваших маршрутизаторах и межсетевых экранах поможет снизить риск DoS. Эти функции как минимум должны включать фильтрацию RFC 2827. Если хакер не сможет замаскировать свою истинную личность, он вряд ли решится провести атаку. [Введите текст] 27 • Функции анти-DoS. Правильная конфигурация функций анти-DoS на маршрутизаторах и межсетевых экранах способна ограничить эффективность атак[17]. Парольные атаки Организация парольных атак может производиться различными методами описанными выше. При использовании простых паролей очень актуальна атака простого перебора (brute force attack).В большинстве случаев для реализации данной атаки используется специализированная программа, которая пытается получить доступ к ресурсу общего пользования путем попытки входа используя значения из заранее определенного справочника. Парольных атак можно избежать, если не пользоваться паролями в текстовой форме. Одноразовые пароли и/или криптографическая аутентификация могут практически свести на нет угрозу таких атак, но не все устройства поддерживают данные методы. Обычно ИС системы используют парольную политику, которая определяет длину пароля, наличие определенных символов и букв в разных регистрах. Атаки типа Man-in-the-Middle По способу и технологиям реализации данная атака очень разнообразна. Суть ее заключается в осуществлении вмешательства в протокол передачи для удаления или изменения информации в корыстных целях, которые в конечном счете дадут желаемый результат. Примеры реализации данной атаки SQL-иньекции HTML/script-иньекции [Введите текст] 28 XSS-атаки Эффективно бороться с атаками типа Man-in-the-Middle можно только с помощью криптографии. В качестве примера данную атаку часто применяют на банковские системы, где злоумышленник получает возможность украсть денежные средства[17]. Защита от атаки сбора данных(Fingerprinting) Стандартные настройки проектов в Visual Studio включают в себя информацию о версии ASP.NET и версии сервера IIS, как показано на рис.13, что дает злоумышленнику выбрать вектор атаки на ИС. Рис.4 Заголовок ответа сервера. Для отключения данной информации были произведены следующие действия: Добавление строки в конфигурационном файле в конфигурационном файле web.config, как показано на примере ниже <system.web> <httpRuntime enableVersionHeader="false"/> </system.web> Добавление изменения в файл Global.asax protected void Application_Start() { MvcHandler.DisableMvcResponseHeader = true; } После чего ответ сервера стал выглядеть как на рис.14 [Введите текст] 29 Рис.5 Заголовок ответа сервера XSS(межсайтовый скриптинг) Тип атаки заключающийся во внедрении в выдаваемую сервером веб- страницу вредоносного кода, который будет выполнен при открытии пользователем данной страницы. Данная атака может быть использована для получения личных данных пользователя или вставки ссылок на другие сайты. По статистике предоставленной Positive Technologies [12] 63% процента атак были произведены с помощью уязвимости XSS. На популярном веб-ресурсе скрипт может организовать DDoS атаку. По виду XSS делятся на активные и пассивные, для простого понимания пассивные требуют действий пользователя, а активные выполняются без участия пользователя. Основные каналы внедрения XSS: Ошибки в браузере. Отсутствие экранирования спецсимволов HTML. Отсутствие фильтрации атрибутов и их значений в разрешенных тегах. Подмена кодировки в заголовке страницы. Основные способы защиты от XSS это: валидация входных данных и их обработка («эскейпинг») при генерации страниц. важен HTML-контекст (body, attribute, JavaScript, CSS, URL). внедрение Content Security Policy. [Введите текст] 30 HTTPOnly сессионные куки, чтобы их нельзя было прочитать из JavaScript. Внедрение SQL кода(SQL-injection) Метод атаки направленные на внедрение в посылаемые пользователем параметры SQL кода, в случае успеха злоумышленник может изменить логику запроса получить, удалить или добавить данные в базу. Существует множество разновидностей использования этой атаки, но все они направлены на изменения пользовательского запроса на свой синтаксически правильный запрос. Классической защитой от SQL-инъекции является строгое типизирование и фильтрация принимаемых параметров в зависимости от типа, а именно фильтрация кавычек и символов “-/\*”. Большинство современных средств разработки позволяет на корню уничтожить данную уязвимость путем использования ORM(объектное представление данных) , в частности компания Microsoft предлагает свое решение EntityFramework. Прогнозирование сессии/сертификата(Credential/Session Prediction) Метод когда злоумышленник выдает себя за пользователя сайта путем угадывания, предсказывания уникального значения пользовательской сессии, которую он получает после авторизации. Данный метод актуален, если приложение использует механизм сессии с использованием cookie. Защищаться от данной атаки нужно путем использования надежного алгоритма генерации уникальных идентификаторов для пользователей. Неправильная настройка сервера(Server Misconfiguration) [Введите текст] 31 Проблема неправильной настройки сервера дает еще один вектор атак для злоумышленников, по умолчанию при установке сервера включены многие службы, которые злоумышленнику не используются, реализовать атаку, но тем самым например позволяют доступны файлы конфигурации сервера, включены ненужные службы(управления контентом, удаленное управление), а также функции отладки или административные функции. Все это может послужить средством для злоумышленника, чтобы обойти методы аутентификации и получить доступ к конфиденциальной информации, возможно с повышенными привилегиями. Сервер может включать известные учетные записи и пароли по умолчанию. Неправильно сконфигурированные использование сертификаты сертификатов SSL по и настройки умолчанию, и шифрования, не надлежащая аутентификация с внешними системами может поставить под угрозу конфиденциальность информации. Подробные и информативные сообщения об ошибках могут привести к утечке данных, а информация может быть использована для разработки следующего шага атаки.[18] Directory Traversal(выход за пределы разрешенной директории) Уязвимость заключается в неправильно реализованной аутентификации и авторизации пользователей, рекомендуется использовать политики и роли, а так же запрещать доступ по умолчанию. CSRF Уязвимость заключается в том, что веб-приложение позволяет при переходе по обычной ссылке выполнять какое-нибудь действие. Злоумышленник подготавливает специальный URL , при загрузке которого [Введите текст] 32 будет, например, осуществлён перевод денег со счёта жертвы на его, и размещает его в виде картинки на популярном ресурсе. Методы защиты от CSRF: Подписывание запросов специальными токенами. Рекомендуется дополнительно к токенам все действия переводить на POST-запросы. Проверка источника запросов. Использование компонентов с известными уязвимостями Используются уязвимости ПО, которые получили широкую огласку и уже исправлены производителем. Рекомендациями являются: Составление списка всех сторонних компонентов. Своевременное обновление. Отключение ненужной функциональности. Внедрение автоматизированных проверок. Открытые перенаправления (Open redirect) Уязвимость заключается в использовании ссылки для перенаправления пользователя в качестве параметра и отсутствии проверки этого параметра на уровне приложения. Уязвимость чаще всего используется для фишинговых атак. Методы защиты являются: Отказ от использования перенаправлений на внешние ресурсы. «Страница подтверждения» для неизвестных адресов[20]. [Введите текст] 33 ГЛАВА 2. РАЗРАБОТКА СИСТЕМЫ ИНФОРМАЦИОННОЙ ПОДДЕРЖКИ ПУБЛИЧНЫХ МЕРОПРИЯТИЙ 2.1 Требования к системе Для ведения бизнес процесса по предоставлению услуг по обеспечению информационной поддержки публичных мероприятий от системы требуется создание электронной площадки для мероприятия в системе и предоставление возможностей для организаторов и участников на данном мероприятии. Для участников мероприятий система должна предоставлять: расписание мероприятия с возможностью фильтрации. список участников. перечень докладов и докладчиков. индивидуальное расписание из интересующих докладов. напоминание о предстоящем докладе. оценку докладов и докладчиков. возможность задать вопрос каждому докладчику. возможность оценить конкретной событие. возможность голосования. возможность обмена электронными визитками с участниками. схему размещения и многое другое. Для организаторов система должна позволять оперативно обновлять расписание, вносить изменения в состав докладчиков, объявлять о новых событиях, организовывать запись на выездные или непредусмотренные расписанием мероприятия. По окончании мероприятия организатор получает пакет информации с результатами проведения мероприятия, которая включает в себя: информацию о количестве участников. рейтинги докладов и докладчиков. [Введите текст] 34 комментарии пользователей. вопросы докладчикам. результаты голосовании.; 2.2 Выбор технологии и разработка архитектуры реализации системы Для реализации системы применены веб-технологии, так как это дает следующие преимущества: Не требуется настройка и установка. Не нуждается в установке дополнительного ПО. Не требовательна к ресурсам, требуется наличие браузера и подключение к сети Интернет. Отсутствует проблема с поддержкой, нет привязки к какой либо платформе. Для того чтобы удовлетворить требования заявленные к системе я выбрал решение от компании Microsoft ASP.NET MVC, это определило выбор вебсервера в виде IIS. Для написания программного кода используется Microsoft Visual Studio 2013, это определило выбор СУБД в виде Microsoft SQL Server 2008, так как это обеспечивает легкое взаимодействие при разработке и позволяет избежать некоторых угроз безопасности. Для разработки API будет использована технология REST. Для разработки приложения для ОС Android будет использована среда разработки IntelijeIdea, для ОС iOS Xcode. Для того чтобы наглядно изобразить архитектуру системы необходимо выделить основные ее узлы: сервер БД. сайт. административная панель управления системой. API для мобильных приложений. мобильные приложения. [Введите текст] 35 Для простоты понимания архитектуры построения приведем схематичный пример. Рис. 6 – Схематичная архитектура построения систем информационного обслуживания На первом этапе планируется создать мобильные приложения для пользователей на ОС Android и iOS. Управление системой осуществляется с помощью административной панели в виде веб-приложения. Участники взаимодействуют с системой с помощью API ввиде REST-сервиса. На основе архитектуры я определил набор компонентов ИС для разработки: База данных. Сайт – визитная карточка для посетителей. Модуль авторизации и аутентификации пользователей. Регистрация организаторов в системе. Личный кабинет и панель управления администратора. Личный кабинет организатора и возможность управления собственными мероприятиями. REST-сервис для взаимодействия с мобильными приложениями. [Введите текст] 36 Мобильные приложения для ОС Android и iOS. Модуль авторизации и аутентификации пользователей должен однозначно идентифицировать и определять права пользователя. Личный кабинет и панель управления предоставляют функционал в зависимости от роли пользователя(организатор или администратор). Для администраторов в системе реализованы следующие возможности: Просмотр, редактирование, добавление, удаление информации о клиентах. Просмотр, редактирование, добавление, удаление информации о всех мероприятиях в системе. Просмотр, редактирование, добавление, удаление пользование, а также назначение ролей другим пользователям. Возможность управления конкретным мероприятием. Возможность настройки СМС-шлюза. Просмотр лога действий пользователей. Для организаторов система предоставляет следующие возможности: Просмотр карточки клиента с основной информацией. Просмотр доступных мероприятий, создание и редактирование, переход у управлению доступным мероприятием. Добавление, редактирование, удаление пользователей из своей учетной записи. Редактирование своей информации (контактный телефон, название, информация о банке). Модуль управления мероприятием должен предоставляет следующие функции: [Введите текст] 37 Возможность просмотра, редактирования, удаления и создания Возможность просмотра, редактирования, удаления и создания событий. партнеров. Возможность просмотра, редактирования, удаления и создания участников. Возможность просмотра, редактирования, удаления, создания и просмотр результатов голосования. Возможность просмотра, редактирования, удаления и создания объявлений. Редактирование справочников (сферы, направления, залы). REST-сервис для взаимодействия с мобильными приложениями предоставляет методы для взаимодействия мобильных приложений с системой: Производить авторизацию и аутентификацию пользователей мобильных приложений. Реализовывать методы по выгрузке информации доступной для пользователя. Принимать результаты голосований пользователей. Принимать отзывы пользователей. Мобильные приложения предоставляют следующий функционал: Расписание мероприятия с возможностью применения фильтров. Список участников. Перечень докладов и докладчиков. Индивидуальное расписание из интересующих докладов. Напоминание о предстоящем докладе. [Введите текст] 38 Оценку докладов и докладчиков. Возможность задать вопрос каждому докладчику. Обмен электронными визитками с коллегами. Звонки по нужным номерам одной кнопкой. Схему размещения мероприятия. 2.3 Проектирование базы данных Так как ядром любой ИС является БД, разработка ИС началась с ее проектирования. При проектировании базы данных за основу были взяты три сущности: Пользователи Мероприятия События, связанные с конкретным мероприятием. Всего база насчитывает 32 таблицы, число которых увеличивается с расширением функционала. Из них часть создана для того чтобы в системе имелись справочники, такие как названия городов, стран, федеральных округов. Вокруг трех вышеприведенных таблиц строится вся логика проектирования базы. С полной схемой базы данных можно ознакомиться в Приложении 3.Полный список таблиц и их описание предстален ниже ввиже таблицы. Название Описание таблицы Segments Таблица для хранения справочника сфер мероприятий AEvents Таблица для хранения информации о событиях UserTypes Таблица для хранения информации о типах пользователей VoteResults Таблица для голосования [Введите текст] хранения информации о результатах 39 Partners Таблица для хранения информации о партнерах Adverts Таблица для хранения информации об объявлениях VoteQuestions Таблица для хранения информации о вопросах к голосованию Votes Таблица для хранения информации о голосовании ReporterRatings Таблица для хранения рейтинга докладчика Logs Таблица для логгирования действий пользователей Notes Таблица для хранения заметок Settings Таблица для хранения настроек EventQuestions Таблица для хранения вопросов к событиям ClientUsers Таблица для хранения связи пользователей с клиентами Partners Таблица для хранения информации о спонсорах и партнерах мероприятия Operators Таблица для хранения информации об операторах системы Halls Таблица для хранения информации о залах Reporters Таблица для хранения информации о докладчиках Clients Таблица для хранения информации о клиентах Directions Таблица для хранения направлений EventReporters Таблица для хранения связи докладчиков с событиями ClientActions Таблица для хранения связи клиентов и мероприятий Addresses Таблица для хранения информации о адресах EventStatus Таблица для хранения информации о статусах событий Organizators Таблица для хранения информации об организаторах Admins Таблица для хранения информации об администраторах SubscribeEvents Таблица для хранения подписок пользователей на события TimeZones [Введите текст] Таблица для хранения часовых поясов 40 Таблица для хранения локации(областей проведения Locations мероприятий) Users Таблица для хранения справочника сфер мероприятий ActionEvents Таблица связи мероприятий с событиями Actions Таблица для хранения мероприятий UploadImages Таблица для хранения справочника направлений Таблица 1. Описание таблиц БД. 2.4 Организация авторизации и аутентификации пользователей. Для авторизации пользователей я выбрал классическую ролевую модель управления доступом, для доступа в личный кабинет предполагается две роли это администратор и организатор конкретного мероприятия, в зависимости от роли пользователь получает доступ к соответствующему функционалу личного кабинета описанного в требованиях к системе. Технологией авторизации будет аутентификация по Cookies. В целях безопасности авторизация и аутентификация пользователей происходит по протоколу HTTPS[20]. После передачи логина и пароля на сервере проверяется существует ли такой пользователь, если пользователь существует пользователю высылается СМС сообщение с кодом верификации на номер телефона указанного в качестве логина, код верификации 6-ти значный и генерируется случайным образом, далее, если пользователь ввел верный код верификации, то ему устанавливается уникальный идентификатор сессии по средствам cookie, в противном случае пользователь переадресовывается заново на форму ввода логина и пароля с сообщением об ошибке. На основе выше описанных требований к личному кабинету администратора и организатора можно составить следующую таблицу доступа: Раздел [Введите текст] Какой роли доступен 41 Клиенты Администратор Мероприятия Администратор, Организатор Пользователи Администратор, Организатор Логи Администратор Настройки СМС- Администратор шлюза События Администратор, Организатор Докладчики Администратор, Организатор Участники Администратор, Организатор Партнеры Администратор, Организатор Сферы Администратор, Организатор Направления Администратор, Организатор Залы Администратор, Организатор Голосование Администратор, Организатор Объявления Администратор, Организатор Локации Администратор, Организатор Адреса Администратор, Организатор Таблица 2. Таблица доступа. На все неавторизованные запросы возвращается ошибка 403. Также в ИС существует роль пользователя мобильных приложений, данные пользователи не имеют доступа к личному кабинету, аутентификация также происходит по протоколу HTTPS по средствам REST-сервиса, пользователю выдается сессия, которая сохраняется локально на мобильном телефоне. 2.5 Регистрация организаторов. На первом этапе разработки ИС организаторов регистрирует непосредственно администратор, создавая учетную запись в разделе ‘Клиенты’ и заполняя требуемые поля. Для привлечения клиентов во второй [Введите текст] 42 версии системы появится возможность организаторам самим регистрироваться и выбирать соответствующий тарифный план, для того чтобы попробовать работу ИС. Организатором с урезанным функционалом будет предложено на бесплатной основе проводить мероприятия. 2.6 Разработка личного кабинета администратора и организатора. После авторизации пользователь попадает в личный кабинет, в котором имеет доступ к функциям описанным в разделе 2.3. Любой авторизованный пользователь имеет право добавлять данные в справочник адресов. Клиенты Данный раздел доступен только администраторам, здесь содержится основная информация о системе, список клиентов, который включает в себя следующую информацию: Название Адрес Контактный телефон Банковские реквизиты Баланс Пользователи Данный раздел также доступен только администраторам, здесь администратор может просмотреть пользователей имеющих доступ к вебприложению, отредактировать их и создать нового. Для универсальности пользователи панели заполняют такие же поля, как и другие пользователи в системе, логином при входе является номер телефона или почтовый адрес. Для исключения ошибок у разных пользователей не может быть одинаковый номер телефона и почтовый адрес. [Введите текст] 43 Рис. 7 Добавление нового пользователя веб-панели. Мероприятия Мероприятия являются основным разделом системы, в данном разделе они отображаются списком, у каждого мероприятия есть контекстное меню для возможности удаления и редактирования. Рис. 8 Раздел мероприятия После нажатия на форму добавить открывается страница для добавления мероприятия. Для того чтобы добавить мероприятие нужно выполнить следующие действия: Название Дата начала Дата окончания [Введите текст] 44 Описание Цвет(для стилизации веб-приложения) При заполнении формы все поля проверяются на правильность введенных параметров. Рис.9 Форма добавления и редактирования мероприятий. 2.7 Модуль управления мероприятием Докладчики Докладчики это люди которые выступают на событии, предполагается возможность нескольких докладчиков Рис. 10 Страница отображения докладчиков [Введите текст] на одном событии. 45 Рис. 11 Страница добавления докладчиков. События События являются основной составляющей мероприятий, из них составляется расписание мероприятия, события содержат множество данных из справочников, о которых речь шла выше. Рис. 12 Страница событий. Страница событий содержит несколько фильтров и возможность поиска конкретного событий. [Введите текст] 46 Рис. 13 Добавление события На рис.13 продемонстрирована форма добавления события, которая имеет множество полей, обязательных к заполнению. Участники Участники это все люди присутствующие на мероприятии и имеющие возможность взаимодействовать с системой через мобильные приложения. Добавляются и редактируются по аналогии с пользователями панели. Для доступа используют телефон или e-mail предоставленный организатором. Объявления Объявления это специальный раздел для взаимодействия организаторов с участниками. Здесь организатор создает объявление, о котором хочет оповестить участников, далее система при помощи технологии PUSHуведомлений пытается оперативно связаться с мобильным приложением участника, речь о котором пойдет ниже. [Введите текст] 47 Партнеры Большие мероприятия, как правило имеют большое количество спонсоров. В данном разделе организатор добавляет организаций или людей, которые помогали организовать данное мероприятие или встречу. 2.8 Разработка API для мобильных приложений. В первой главе был сделан обзор технологий создания API для вебприложений, в результате для реализации API была выбрана технология REST. REST сервис расположен по адресу : http://unfo.pro/api/index. Для удобства работы при общении с сервисом используется параметр action, который принимает действие которое нужно выполнить, далее параметры необходимые для конкретного действия. Для работы с REST сервисом мобильные приложения требуют авторизацию, для чего существует соответствующий метод. С методами REST-сервиса можно ознакомиться в Приложении 4. 2.9 Разработка приложения участника на ОС Android и iOS. Для разработки мобильных приложений требуются специальные инструменты. Для iOS это Xcode и операционная система Mac OS. Для Android потребуется IntelijeIdea работающая под Mac OS и Windows. Функционал приложений на ОС Android и iOS копирует друг друга, но способы реализации ввиду особенностей ОС будут разные. Приложения будут общаться с сервером по средствам выше описанного REST-сервиса. Приложение Android будет поддерживать версию 2.3 и выше, iOS 6.0 и выше. Навигация в приложениях создана на основе бокового меню см.рис.17. [Введите текст] 48 Рис. 14 Навигационное меню мобильного приложения. Разработка мобильных приложений подразумевает использование различных компонентов для реализации интерфейса для пользователей, по данной теме имеются специальные ресурсы в интернете, где разработчики обмениваются своими наработками[21][22][23]. При разработке приложений появился ряд проблем, которые необходимо было решить, это организация бесперебойной передачи данных с сервером и рациональное хранение данных, для обеспечения последующей легкой расширяемости. Первую проблему я решил путем анализирования исходного кода популярных приложений[21], в результате применил решение в виде [24][25] для Android и iOS соответственно. Данными решениями я снял проблему ошибок при выполнении запросов к серверу из за проблем с сетью, так как мобильная сеть очень неустойчива к [Введите текст] 49 бесперебойной передаче данных. Вторая проблема очень остро стояла в ОС Android, при использовании стандартных средств хранения данных в БД разработчик сталкивается с проблемами расширяемости базы и для реализации требуется большое количество программного кода, для решения данной проблемы я применил решение в виде[26]. Преимуществами использования различных технологий, при программировании приложений, дают возможность разработчику уменьшить количество программного кода, соответственно сократить время разработки. 2.10 Размещение БД и веб-приложения База данных и веб-приложение размещены на хостинг-сервере ООО «Сибтел Крипто», доступ к серверу осуществляется по протоколу RDP. Вебприложение доступно по адресу http://www.unfo.pro. [Введите текст] 50 ГЛАВА 3. ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ СИСТЕМЫ 3.1 Модель нарушителя информационной безопасности Основываясь на базовой модели угроз[15] по признаку принадлежности к ИС все нарушители делятся на две группы: внешние нарушители – физические лица, не имеющие доступа(учетной записи) в ИС. внутренние нарушители – физические лица, имеющие учетную запись для доступа в ИС[16]. Внешний нарушитель Предполагается что внешний нарушитель может воздействовать на защищаемую систему по средствам сетевых атак на веб-сервер, где располагается ИС, а также реализаций всевозможных атак на вебприложение и REST-сервис. Так как ИС система создана для получения финансовой выгоды, отсюда потенциальными внешними нарушителями могут быть конкурирующие ИС. ИС нацелена на работу с клиентами, следовательно, к потенциальным внешним нарушителям можно отнести конкурентов клиентов. Внутренний нарушитель Под внутренним нарушителем информационной безопасности, рассматривается физическое лицо имеющее доступ в ИС. Исходя из особенностей ИС лица допущенные к взаимодействию с ИС имеют разные полномочия. Исходя из подробного описания системы внутренними нарушителями могут быть: [Введите текст] 51 Администратор хостинг-сервера(Категория I). Администратор СУБД и БД(Категория II). Администраторы веб-приложения (Категория III). Организаторы (Категория IV). Пользователи мобильных приложений (Категория V). Лица относящиеся к категории I являются работниками организации, представляет наибольшую угрозу безопасности, могут полностью остановить работу всей ИС, так как имеют непосредственный доступ к серверу, на котором размещена ИС. Лица относящиеся к категории II также являются работниками организации имеют возможность доступа ко всем данным ИС и соответственно имеют возможность производить любые действия с данными хранящимися в ИС. К лицам категорий I и II ввиду их исключительной роли в ИС должен применяться комплекс особых организационных мер по их подбору, принятию на работу, назначению на должность и контролю выполнения функциональных обязанностей. Предполагается, что в число лиц категорий I и II будут включаться только доверенные лица и поэтому указанные лица исключаются из числа вероятных нарушителей. Лица категории III имеют контроль над данными через веб-интерфейс и возможность управления системой. Лица категории IV имеют только к данным им доступным в соответствии с логикой ИС, также имеют право давать доступ другим лицам на своем уровне доступа. Пользователи мобильных приложений взаимодействуют с REST- сервисом, реализовать какие либо угрозы они могут наравне с внешними нарушителями. Предполагается, что лица категорий III-V относятся к вероятным [Введите текст] 52 нарушителям. Также не стоит исключать техногенный фактор, как угрозу ИБ. 3.2 Объекты и цели реализации угроз ИБ. В качестве основных уровней знаний нарушителей об ИС можно выделить следующие: информации о назначении и общих характеристиках ИС; информация о проектной документации ИС; данные об организации работы ИС; сведения о правилах обработки информации; данные об уязвимостях программно-технических средств ИС; данные о принципах и алгоритмах защиты ИС; сведения о возможных каналах реализации угроз; информацию о способах реализации угроз. Основными информационными ресурсами обрабатываемыми в системе являются данные предоставляемые клиентами системы для ее функционирования: Сведения о клиентах. Информация о результатах проводимых мероприятий. Подробная информация о участниках мероприятий и их действий. Вся сопутствующая информация хранящаяся и обрабатываемая в системе. Целью реализации угроз является вывод из строя функционирования всей системы или отдельных ее компонентов или нарушение конфиденциальности, целостности и доступности информации хранящейся и обрабатываемой информации в системе. [Введите текст] 53 Целью нарушения конфиденциальности злоумышленником может быть получение большого количества контактных данных для организации спам рассылок, также предполагается использование системы для обслуживания закрытых мероприятий, информация о которых предназначена для узкого круга лиц и ответственность за конфиденциальность данных будет возложена на систему. Также целью нарушения конфиденциальности может быть цель завладеть исполняемыми файлами системы для развертывания собственного бизнес процесса. Целью нарушения целостности злоумышленником может быть хулиганское желание изменить информацию или удалить, что скажется на престиже системы и соответственно на финансовых показателях. Для привлечения клиентов к ИС у организаторов имеется возможность бесплатно организовывать мероприятия с ограниченным функционалом, в связи с этим появляется угроза целостности, при условии реализации которой организатор получит доступ к функционалу, который он не оплатил. Также возможность изменением тарифа для организатора обладают категории лиц II,III внутренних нарушителей, которые в своих корыстных целях могут проводить операции с данными, в результате которых организация владеющая ИС недополучит прибыли и понесет определенный ущерб. Внутренние нарушители категории III могут создавать учетные записи администраторов, тем самым могут предоставить доступ к ИС злоумышленникам, действия которых будет сложно предотвратить. Целью нарушения доступности системы может быть осуществлено с целью остановки бизнес-процесса обслуживания конкретного мероприятие, что выразится в виде недовольных клиентов и недополученной прибыли и снижении репутации системы, доступность системы необходимо обеспечить в момент непосредственной работы с клиентами. [Введите текст] 54 3.3 Определение актуальных угроз ИЮ и способов их реализации. Из описанных целей реализации угроз можно выделить актуальные угрозы ИС включая угрозы из базовой модели угроз[15] ФСТЭК: угроза осуществления НСД к разделам ИС требующим авторизации; угрозы «Анализа сетевого трафика» с перехватом передаваемой во внешние сети и принимаемой из внешних сетей информации; угрозы сканирования, направленные на выявление типа операционной системы и других сведениях о модулях ИС; угрозы типа «Отказ в обслуживании»; угрозы удаленного запуска приложений; угрозы внедрения по сети вредоносных программ; Для реализации угроз внешние нарушители могут применять атаки описанные п.1.4 первой главы и атаки направленные на ОС сервера, на которой расположена СУБД и БД, а также внутренние нарушители могут использовать возможности превышения полномочий предоставленных им. Также внутренние нарушители могут реализовывать угрозы воздействую на различные компоненты ИС, что приведет к сбоям в работе. Причиной некоторых угроз могут быть техногенные факторы. 3.4 Методы защиты от актуальных угроз. Для защиты от угрозы НСД к модулям ИС требующим авторизации разработан модуль авторизации пользователей, описанный в п.2.4 второй главы. В качестве защиты от угрозы «Анализа сетевого трафика» и атаки Man-in-the-Middle для сайта был приобретен сертификат в УЦ, в настройках сервера разрешены соединения только по HTTPS по инструкции[20]. [Введите текст] 55 В качестве защиты от угрозы угроз сканирования, направленных на выявление типа операционной системы и других сведениях о модулях ИС был применен алгоритм защиты от атаки сбора данных(Fringerprinting) описанный в п.1.4 первой главы. Для минимизации угрозы получения НСД путем подмены доверенного объекта был использован протокол HTTPS ,использован надежный алгоритм генерации сессии. Методы защиты от атак реализующих угрозу НСД на этапе разработки системы: SQL-injection – в качестве защиты от данной атаки была применена технология доступа к данным(EntityFramework), где все данные параметризированы и экранируются . XSS- защиту от данной атаки предоставляют стандартные средства разработки ASP.NET MVC. Fingerprinting – В файле конфигурации приложения была отключена передача информации о версии ASP.NET и версии сервера IIS. CSRF- использование POST запросов при операциях с данными. DirectoryTraversal – разделение всех пользователей по ролям и жесткое ограничение на доступ к директориям на основании роли пользователя, применен алгоритм авторизации и аутентификации п.2.3 Главы II. Для минимизации угроз удаленного запуска приложений, угроз внедрения по сети вредоносных программ на хостинг-сервере ИС установлено антивирусное ПО. Для угрозы типа «Отказ в обслуживании» мер противодействия применить не удалось в виду специфики реализации данной угрозы, но существует соглашение с компанией предоставляющей хостинг-сервер, которая отвечает за защитные меры против данной атаки . Для контролирования действий сотрудников применен ряд мер: [Введите текст] 56 Для возможности контролирования действий пользователей производится логирование всех действий пользователей на уровне триггеров базы данных. Лог представляет информацию о том, кто и когда совершил какое-то действие. Для доступа в административную панель было выделено два типа пользователей, это администраторы и клиенты(организаторы). Все представления данных в веб-приложения имеют разграничение на основе роли пользователя после авторизации в системе. Авторизация и аутентификация пользователей происходит по алгоритму описанному в п.2.4 второй главы. Для возможности усиления защиты доступа в панель администратора создана двухэтапная авторизации через SMS , после ввода правильного логина и пароля на номер пользователя отправляется смс, содержащее код подтверждения для авторизации на втором этапе. Использование протокола HTTPS дает возможность от одной из актуальных угроз перехвата учетных данных при входе в систему. Во избежание потери доступа в панель в программном коде и на уровне триггеров базы данных запрещено удалять пользователя с ID=1 и менять его роль в системе как администратора. Программно запрещено организатору создавать учетные записи с ролью организатора для другого мероприятия, к которому отсутствует доступ. Физически записи не удаляются, а помечаются флагом isDelete. Для обеспечения защиты от внутренних нарушителей категорий I,II,III был выбран юридический метод, а именно подписание соглашения о неразглашении данных и составление трудового договора с учетом ответственности за нарушения информационной безопасности ИС. В качестве защиты от техногенного фактора реализовано резервное копирование БД по расписанию. [Введите текст] 57 ЗАКЛЮЧЕНИЕ В дипломной работе была спроектирована и разработана защищенная автоматизированная система для ведения бизнеса путем предоставления услуг по информационной поддержке публичных мероприятий. На первом этапе были рассмотрены информационной поддержки, методы и технологии рассмотрены системы осуществления предоставляющие данные услуги. На основе рассмотренных методов были сформированы требования к системе и список предоставляемых функций. Далее была спроектирована архитектура системы с учетом требований информационной безопасности и выбраны технологии разработки. На стадии программирования были применены методы защиты от ряда угроз ИБ. После завершения разработки системы была построена модель угроз, выявлены актуальные угрозы и применены средства защиты для их минимизации. Можно сделать вывод о том, что поставленные задачи выполнены, тем самым достигнута цель дипломной работы. [Введите текст] 58 СПИСОК ЛИТЕРАТУРЫ 1. Omyconf [Электронный ресурс] //URL: http://omyconf.com/ru. (Дата обращения:01.12.13) 2. KitApps [Электронный ресурс] //URL: http://attendify.com (Дата обращения:01.12.13) 3. Bizzabo [Электронный ресурс] // URL: www.bizzabo.com (Дата обращения:01.12.13) 4. Веб-сервер [Электронный ресурс] // URL:http://en.wikipedia.org/wiki/Web_server (Дата обращения: 15.01.14) 5. Сравнение веб-серверов [Электронный ресурс] //URL: http://ru.wikipedia.org/wiki/Сравнение_веб_серверов. (Дата обращения: 15.01.14) 6. MVC [Электронный ресурс] //URL:http://habrahabr.ru/post/49718/ mvc.( Дата обращения:01.12.13) 7. SOAP [Электронный ресурс] // URL: http://www.rsdn.ru/article/xml/soap.xml. (Дата обращения:15.01.14 ) 8. REST vs SOAP[Электронный ресурс] // URL: http://habrahabr.ru/post/158605. (Дата обращения:15.01.14 ) 9. Российские и мировые продажи смарфонов по операционным системам [Электронный ресурс] // URL: http://www.json.ru/poleznye_materialy/free_market_watches/analytics/rossij skie_i_mirovye_prodazhi_smartfonov_po_operacionnym_sistemamm_2011_ -_2016/. (Дата обращения:15.01.14 ) 10.Архитектура ОС Android [Электронный ресурс] // URL:http://androidshark.ru/arhitektura-operatsionnoy-sistemyi-android/. (Дата обращения:15.01.14 ) 11.iOS [Электронный ресурс] // URL: http://ru.wikipedia.org/wiki/IOS. (Дата обращения:15.01.14 ) [Введите текст] 59 12.Статистика уязвимостей веб-приложений [Электронный ресурс]// URL: http://www.ptsecurity.ru/download/analitika_web.pdf - (Дата обращения : 15.01.14) 13.Об информации, информационных технологиях и о защите информации: Федеральный закон Российской Федерации от 27 июля 2006 г. N 149-ФЗ 14.Информационная безопасность [Электронный ресурс] // URL http://ru.wikipedia.org/wiki/Информационная_безопасность. (Дата обращения:15.01.14) 15.Базовая модель угроз ФСТЭК России [Электронный ресурс] // URL:http://fstec.ru/component/attachments/download/289. (Дата обращения:15.01.14 ) 16.Типовая модель угроз для ЛПУ [Электронный ресурс] // URL:http://www.aksimed.ru/download/center/Model_ugroz_MIS_LPU_200 9.pdf. (Дата обращения:15.01.14 ) 17.Методы и средства обеспечения безопасности. [Электронный ресурс]// URL:http://expert.gost.ru/ID/DOC/17799.pdf (Дата обращения : 15.01.14) 18.ServerMisconfiguration [Электронный ресурс]// URL:http://projects.webappsec.org/w/page/13246959/Server%20Misconfigu ration//ServerMisconfiguration – (Дата обращения : 15.01.14) 19.Методы борьбы с XSS [Электронный ресурс] // URL: http://help.yandex.ru/webmaster/security/xss.xml. (Дата обращения:15.01.14) 20.Настройка службы HTTPS в IIS [Электронный ресурс]. – URL: http://support.microsoft.com/kb/324069/ru (Дата обращения:01.02.14) 21.CocoaaControls [Электронный ресурс] // URL: http://www.cocoaacontrols.com. (Дата обращения:15.01.14) 22.GitHub [Электронный ресурс] // URL: http://www.github.com. (Дата обращения:15.01.14) 23.BitBucket [Электронный ресурс] // URL: http://www.bitbucket.com. (Дата обращения:15.01.14) [Введите текст] 60 24.Android Asynchronous Http Client [Электронный ресурс] // URL: http://loopj.com/android-async-http. (Дата обращения:15.01.14) 25.AFNetworking [Электронный ресурс] // URL: https://github.com/AFNetworking/AFNetworking. (Дата обращения:15.01.14) 26.ORM Lite [Электронный ресурс] URL: http://ormlite.com/sqlite_java_android_orm.shtml. (Дата обращения:15.01.14) [Введите текст] 61 ПРИЛОЖЕНИЕ 1 Пример запроса и ответа протоколу SOAP: Рис. 13 – XML запрос SOAP. Рис. 14 – XML ответ SOAP[15]. [Введите текст] 62 ПРИЛОЖЕНИЕ 2 Пример запроса и ответа REST: Рис. 15 – Запрос ответ REST[15]. [Введите текст] 63 ПРИЛОЖЕНИЕ 3 Подробная схема базы данных с основными таблицами представлена на Рис.16 Рис. 16 Схема БД. [Введите текст] 64 ПРИЛОЖЕНИЕ 4 Методы предоставляемые REST-сервисом. Запрос списка мероприятий Запрос: http://unfo.pro/api/index?action=get_actions Данный запрос является открытым и не требует дополнительных параметров. Ответ: Авторизация участника Запрос(пример): action –get_auth. login – логин пользователя. pass – хэш пароля. action_id – это id мероприятия из запроса get_actions; [Введите текст] 65 http://unfo.pro/api/index?action=get_auth&login=89000000000&pass=SHA256(p ass)&action_id=1 Ответ: В ответе авторизации приходит вся информация о пользователе с набором параметров. session_id(сессия) - используется для дальнейшей работы мобильного приложения с API. Получить список событий(докладов) для конкретного мероприятия После авторизации на конкретном мероприятии приложение пользователя запрашивает весь список событий(докладов), данная выгрузка может быть очень объемной в зависимости от количества событий, получить данную выгрузку может только пользователь авторизовавшийся, путем предоставления сессии в параметре session_id. Параметр action = get_events. Получить список участников на мероприятии. По данному запросу идет выгрузка всех участников с контактными данными, каждый пользователь имеет право скрыть свои контактные данные. Данный [Введите текст] 66 запрос позволяет реализовать возможность создать коммуникационную основу между людьми для создания новых деловых знакомств. Action=get_members. Получить список докладчиков на мероприятии. По данному запросу идет выгрузка всех людей , которые выступают с докладами. Каждый участник имеет право получить контактные данные докладчика. Зачастую люди приходят на мероприятие , чтобы попасть на доклад к конкретному человеку. Action= get_reporters. Получить список объявлений. Action- get_adverts, для того чтобы не выгружать все объявления посылается date = дата последнего полученного объявления, и если такого нет то date =01.01.1970. Получить список партнеров. Выгружаются списком информация о партнерах для мероприятия с контактной информацией. Action= get_partners. [Введите текст] конкретного