Помощь в написании студенческих работ
Антистрессовый сервис

Разработка системы контроля доступа к файлам

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

Выпущенная в 2004 году система призванная сменить лидирующий в то время CVS. На данный момент активно используется и внедряется множеством сообществ разработчиков, придерживающихся разработке открытого ПО (сообщества, которые в прошлом использовали CVS в их числе). К ним относятся так же такие известные проекты, как Mono, MediaWiki, FreeBSD, Free Python, Pascal, Ruby, Apache, Haiku, AROS и GCC… Читать ещё >

Разработка системы контроля доступа к файлам (реферат, курсовая, диплом, контрольная)

Современное общество невозможно представить без информационных технологий. Если каких то 20 лет назад доступ к компьютерам имела лишь малая прослойка населения, то сейчас наличие компьютера и навыков работы с ним является обязательным во многих отраслях. Персональный компьютер плотно вошёл наш быт: автоматизация работы, виртуальные развлечения и, конечно же, хранение информации. В двадцатом веке практически вся информация хранилась физически, в основном на бумажных носителях. Всеобщая компьютеризация позволила перенести огромные объёмы картотек на компактные носители. Рядовые же пользователи получили возможность компактно хранить важную, да и порой просто незаменимую информацию.

В то время как ощутимая часть данных юридических лиц хранится в базах данных, файлы по-прежнему являются неотъемлемым хранилищем информации. Для физических же лиц хранение информации в файлах зачастую является единственно возможным.

Тем не менее, защите конфиденциальности информации, хранящихся в виде файлов не уделяется должное внимание. Простые пользователи вообще редко задумываются о возможности несанкционированного доступа к их личным данным. В организациях же отказ от защиты, зачастую, продиктован высокой стоимостью организации мероприятий, и неверным оцениванием стоимости информации.

Отдельно стоит проблема построения сложных структур доступа сотрудников в организациях. Современные средства нередко предлагают достаточно скудные возможности по разграничению прав, либо несоизмеримую стоимость.

Целью дипломного проектирования является разработка системы контроля доступа к файлам. На сегодняшний день имеется мало программных продуктов, которые могли удовлетворять требованиям безопасности, и при этом быть достаточно дешевы, как в плане покупки, так и в плане развертывания и обслуживания. Именно данную нишу должен занять разрабатываемый программный комплекс.

Перечень условных обозначений

файл доступ интерфейс программный ИТ — информационные технологии ФЗ — федеральный закон ПДн — персональные данные ИСПДн — Информационная Система Персональных Данных

НСД — несанкционированный доступ КС — корпоративная сеть СВТ — средства вычислительной техники АС — автоматизированные системы ПО — программное обеспечение СУБД — система управления базами данных

ADO — ActiveX Data Objects — «Объекты Данных ActiveX»

WCF — Windows Communication Foundation — «Фонд Коммуникации Windows»

WPF — Windows Presentation Foundation — «Фонд Визуализации Windows»

DPAPI — Data Protection Application Programming Interface — «Интерфейс защиты данных прикладного программирования»

GIV — Guideline for Information Valuation — «Инструкция по Оценке Стоимости Информации»

1. Анализ методов и средств контроля доступа к файлам

1.1 Основные понятия

Рассматривать предметную область невозможно без отрыва от основных понятий компьютерной безопасности. Правовые нормы регулируются Законодательными Актами, указами Президента Российской Федерации, Постановлениями Правительства Российской Федерации, Доктриной Информационной Безопасности.

Информация — это сведения о лицах, предметах, событиях и процессах (независимо от формы их представления), используемые в целях получения знаний или практических решений.

Информационная система — совокупность технического, программного и организационного обеспечения, а также персонала, предназначенная для того, чтобы своевременно обеспечивать надлежащих людей надлежащей информацией.

В статье 5, ФЗ «Об информации, информационных технологиях и защите информации» от 27.7.2006 г. № 149-ФЗ[11], сказано: «Информация в зависимости от категории доступа к ней подразделяется на общедоступную информацию, а также на информацию, доступ к которой ограничен федеральными законами (информация ограниченного доступа)» .

Общедоступная информация это такой вид информации, которую нельзя скрывать от общества. Примером может служить информация документы, накапливаемые в открытых фондах библиотек и архивов, о деятельности органов государственной власти и органов местного самоуправления, состоянии окружающей среды. Дополнительно, к этой категории относятся нормативные правовые акты, затрагивающие права, свободы и обязанности человека и гражданина, правовое положение организаций и полномочия государственных органов, органов местного самоуправления.

Информация, представляющая ценность для ее владельца, доступ к которой ограничивается на законном основании, является информацией ограниченного доступа. В то же время, информация ограниченного доступа разделяется на информацию, соблюдение конфиденциальности которой установлено федеральным законом (конфиденциальная информация) и информацию составляющею государственную тайну.

Перечень сведений, отнесенных к государственной тайне" опубликован в ст. 5 Закона РФ 1993 г. № 5485 «О государственной тайне"[12]. Существует три степени секретности такой информации:

Особой важности Совершенно Секретно Секретно Перечень сведений конфиденциального характера опубликован в Указе Президента РФ от 6.03.97 г. № 188 «Об утверждении перечня сведений конфиденциального характера"[13]. К видам конфиденциальной информации можно отнести следующее:

Персональные данные — сведения о фактах, событиях и обстоятельствах частой жизни гражданина, позволяющие идентифицировать его личность, за исключением сведений, подлежащих распространению в средствах массовой информации в установленном федеральными законами случаях Тайна следствия и судопроизводства — сведения, составляющие тайну следствия и судопроизводства, а также сведения о защищаемых лицах и мерах государственной защиты, осуществляемой в соответствии с ФЗ от 20 августа 2004 г. № 119-ФЗ и другими нормативными правовыми актами Российской Федерации Коммерческая тайна — сведения, связанные с коммерческой деятельностью, доступ к которым ограничен в соответствии с Гражданским кодексом Российской Федерации и федеральными законами Профессиональная тайна — сведения, связанные с профессиональной деятельностью, доступ к которым ограничен в соответствии с Конституцией Российской Федерации и федеральными законами (врачебная, нотариальная, адвокатская тайна, тайна переписки, телефонных переговоров, почтовых отправлений, телеграфных и иных сообщений и т. д.)

Служебная тайна — служебные сведения, доступ к которым ограничен органами государственной власти в соответствии с Гражданским кодексом Российской Федерации и федеральными законами Сведения о сущности изобретения — сведения о сущности изобретения, полезной модели или промышленного образца до официальной публикации информации о них Согласно национальному стандарту РФ «Информационная технология. Практические правила управления информационной безопасностью» (ГОСТ Р ИСО/МЭК 17 799−2005)[14] информационная безопасность — защита конфиденциальности, целостности и доступности информации:

Конфиденциальность — свойство информационных ресурсов, в том числе информации, связанное с тем, что они не станут доступными и не будут раскрыты для неуполномоченных лиц Целостность — неизменность информации в процессе ее передачи или хранения Доступность — свойство информационных ресурсов, в том числе информации, определяющее возможность их получения и использования по требованию уполномоченных лиц Информация так же имеет свою стоимость. Оценка стоимости информации делится условно на осязаемые и неосязаемые активы. К осязаемым отнесем средства обслуживания информационных технологий (ИТ) — аппаратное обеспечение, сетевое обеспечение (среда передачи данных), запасные части, документация и зарплата персонала для поддержки функционирования систем. Стоимостные характеристики этих активов обычно известны либо легко вычисляемы.

Стоимость неосязаемых активов должна учитывать два вида расходов: расходы на замену/восстановление программного обеспечения и данных, расходы при нарушении конфиденциальности/целостности/доступности.

Определение стоимости неосязаемых активов — задача не всегда простая. Существуют отдельные методики такой работы, например, Guideline for Information Valuation (GIV) — Инструкция по Оценке Стоимости Информации.

В Указе Президента РФ № 188 от 6 марта 1997 года о «Перечне сведений конфиденциального характера» [15], персональные данные стоят на первом месте.

В ФЗ-№ 152 определяются такие понятия как Персональные данные и Оператор. Персональные данные — любая информация, относящаяся к определенному или определяемому на основании такой информации физическому лицу (субъекту персональных данных), в том числе: фамилия, имя, отчество, год, месяц, дата и место рождения, адрес, семейное, социальное, имущественное положение, образование, профессия, доходы, другая информация. Оператор — государственный орган, муниципальный орган, юридическое или физическое лицо, организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели и содержание обработки персональных данных.

Согласно ФЗ-152, оператор, обрабатывающий персональные данные, должен выполнять ряд требований, обеспечивающий конфиденциальность обрабатываемой им информации. «Оператор обязан принимать организационные и технические меры, для защиты персональных данных от НСД, уничтожения, изменения, блокирования, копирования, распространения и иных неправомерных действий»

Кроме того, невозможно не рассмотреть доктрину информационной безопасности Российской Федерации, представляющую собой совокупность официальных взглядов на цели, задачи, принципы и основные направления обеспечения информационной безопасности Российской Федерации.

Доктрина служит основой для:

формирования государственной политики в области обеспечения информационной безопасности Российской Федерации;

подготовки предложений по совершенствованию правового, методического, научно-технического и организационного обеспечения информационной безопасности Российской Федерации;

разработки целевых программ обеспечения информационной безопасности Российской Федерации.

Доктрина информационно безопасности Российской Федерации развивает Концепцию национальной безопасности Российской Федерации применительно к информационной сфере[16].

1.2 Анализ проблем безопасности работы с файлами

Если для организаций стоимость информации, а, следовательно, и возможные потери и стоимость восстановления при нарушении её целостности, конфиденциальности, доступности, ещё возможно посчитать, то пользовательские данные нередко являются невосполнимыми и незаменимыми. Фактически, отношение стоимости обеспечения состояния безопасности информации пользователя к важности пользовательских данных является моральной дилеммой в том случае, когда сама информация не приносит непосредственного дохода. Доподлинно известно множество случаев, когда люди при пожаре спасали фотографии в первую очередь. В то же время защита целостности личной информации пользователя на компьютере постоянно подвергается опасности. Несмотря на очевидные опасности потери невосполнимых данных, даже близкие к ИТ сфере люди зачастую пренебрегают защитой важной информации.

В ситуации общего доступа к информационным ресурсам защита конфиденциальности, целостности, доступности информации встаёт особенно резко. Организация хранение файлов на общем носителе при возможном одновременном доступе нескольких пользователей достаточно распространённая задача. В тех же случаях, когда необходимо сложное ограничение на доступ, стоимость построения системы резко увеличивается, как и сложность её администрирования и использования.

Как показала практика, злоумышленник может получить доступ к файлам организации множеством способов:

Получение доступа к сети извне Обманное получение доступа Кража оборудования Соответственно необходимо отгородить важные файлы от внешнего проникновения, ограничивать доступ потенциальных злоумышленников, хранить данные в зашифрованном виде.

В руководящих документах Гостехкомиссии Российской Федерации приведены следующие основные способы несанкционированного доступа к информации в корпоративных сетях[17][18][19][20][21]:

Непосредственное обращение к объекту с конфиденциальной информацией (например, с использованием вредоносного программного обеспечения, установленного на компьютер пользователя несанкционированно) Создание программных и технических средств, выполняющих обращение к объекту в обход средств защиты (например, с использованием случайно или намеренно оставленных разработчиком этих средств, так называемых люков) Модификация средств защиты для осуществления несанкционированного доступа (например, внедрение программных закладок) Внедрение в технические средства СВТ или АС программных или технических механизмов, нарушающих структуру и функции этих средств для осуществления несанкционированного доступа (например, путем загрузки на компьютере иной, незащищенной операционной системы) В общем виде, угрозы безопасности в корпоративных сетях разделяются на две категории. Это непреднамеренные и умышленные угрозы. К непреднамеренным угрозам относятся:

Ошибки в проектировании КС Ошибки в разработке программных средств КС Случайные сбои в работе аппаратных средств КС, линий связи, энергоснабжения Ошибки пользователей КС Воздействие на аппаратные средства КС физических полей других электронных устройств (при несоблюдении условий их электромагнитной совместимости) и др.

К умышленным угрозам относятся:

Несанкционированные действия обслуживающего персонала КС (например, ослабление политики безопасности администратором, отвечающим за безопасность КС) Несанкционированный доступ к ресурсам КС со стороны пользователей КС и посторонних лиц, ущерб от которого определяется полученными нарушителем полномочиями Анализируя угрозы информационной безопасности в КС, следует учитывать, что КС, как и большинство других сетей, подключена к Интернет. Внутренние пользователи должны получать выход в Интернет, а внешние пользователи должны получать доступ к внутрикорпоративной сети. Это создает ряд угроз общего характера, которые могут дать злоумышленнику возможность воспользоваться уязвимостью, через которую он может проникнуть к важным сетевым ресурсам.

Первая угроза — это угроза со стороны внутренних пользователей. Статистика приводит разные цифры, но все исследователи сходятся в том, что большинство атак начинается изнутри корпоративной сети. Потенциальными источниками таких атак являются обиженные сотрудники, промышленные шпионы, посетители и беспечные пользователи, допускающие ошибки. Разрабатывая систему безопасности, необходимо уделять особое внимание внутренним угрозам.

Второй является угроза подключенным к Интернет хостам общего доступа.

В случае общего доступа к информационным ресурсам необходимо обеспечить возможность простого сохранения и получения данных пользователей. При этом необходимо предотвратить возможность получения доступа злоумышленника к файлам пользователей.

Для физических лиц в первую очередь необходимо обеспечить целостность информации, хранящейся в файлах, сокрытие факта наличия данных файлов и их конфиденциальность.

Отдельной проблемой стоит целесообразность использования средств защиты информации для рядового пользователя. Как было сказано выше, оценка стоимости данных составляющих духовную ценность крайне сложна и зависит от множества изменчивых факторов. При решении о внедрении системы контроля доступа к файлам пользователь больше опирается на такие факторы как время, потраченное на внедрение, усилия и необходимая база знаний. Так же нужно принять во внимание необходимость в автоматизации многих процессов, так как среднестатистический пользователь компьютера не готов каждый день проводить определённые одинаковые манипуляции. Ну и, безусловно, система контроля доступа к файлам должна быть интуитивно понятна, легко развёртываться и обладать низкой стоимостью.

1.3 Анализ существующих средств контроля доступа к файлам

Не имеет смысла разрабатывать новый программный продукт, не рассмотрев существующие решения на рынке. На сегодняшний день существует огромное количество продуктов, разрешающих в той или иной степени проблему, описанную в предыдущем подразделе.

Способов контроля доступа к файлам на данный момент на рынке представлено множество. Условно их можно разделить по следующим видам:

Сервисы сетевого доступа и службы каталогов Системы сокрытия файлов Системы контроля версий Системы контроля доступа к файлам

1.3.1 Сервисы сетевого доступа и службы каталогов

Сервисы сетевого доступа представлены приложениями для работы с FTP, FTPS и т. д. (xTy FTP, FAR Navigator и т. д.). Службы каталогов (Active Directory, OpenLDAP и т. д.) представляют собой средство иерархического представления ресурсов, принадлежащих некоторой отдельно взятой организации, и информации об этих ресурсах. Под ресурсами могут пониматься материальные ресурсы, персонал, сетевые ресурсы и т. д.

Недостатки:

Сложная система сохранения резервных копий каждого файла. Отсутствие автоматизации в данном вопросе Отсутствие возможности быстро скрыть/отобразить файл в общем списке Отсутствие гибкости расположения ссылок файлов Отсутствие гибких прав по отношению к каждому файлу Грубая система объединения файлов Непосредственно недостатки самих протоколов

Из вышесказанного следует, что, несмотря на удобство и распространённость файловых серверов, служб каталогов, они предоставляют достаточно слабые и неудобные возможности для контроля доступа к файлам.

1.3.2 Системы сокрытия файлов

Представлены на сегодняшний день множеством приложений (Windows Guard, Rohos, Folder Guard). Несмотря на свою распространённость, обладают целым рядом фатальных недостатков:

Отсутствие гибкости администрирования Отсутствующие или слабо представленные возможности работы с несколькими пользователями Зачастую, низкий уровень безопасности Сложность миграции развёрнутой системы В силу того, что подобные программы нередко используют неочевидные возможности файловой системы и человеческой психологии, надёжность хранения данных падает пропорционально навыку злоумышленника Слабые возможности создания резервных копий файлов. Отсутствие автоматизации в данном вопросе Примитивный способ отображения списка файлов Отсутствие возможности быстро скрыть/отобразить файл в общем списке Отсутствие гибкости расположения ссылок файлов Из вышеперечисленного очевидно следует полная несостоятельность использования систем сокрытия фалов для решения вопроса контроля доступа к файлам.

1.3.3 Системы контроля версий

Пожалуй, наиболее ёмкий вид, на котором необходимо остановиться подробнее. Системы управления версиями (Version Control System) опираются на централизованную модель, где имеется единое хранилище данных (документов), которое управляется специальным сервером, выполняющим основной набор функций по управлению версиями. Когда пользователь системы контроля версий работает с документами, он должен в первую очередь получить необходимую ему версию документа из указанного хранилища системы контроля версий. Зачастую, создаётся копия документа, она же «рабочая копия», на компьютере пользователя или в зоне его прав. Так же сохраняется и может быть получена пользователем любая из предыдущих версий, которая должна быть выбрана по следующим атрибутам: номер версии, дата создания, идентификатор, пользователь, а так же по другим признакам. После окончания редактирования пользователем, документ возвращается в хранилище VCS. Соответственно, в отличие от других систем, старая версия документа не стирается, но сохраняется как одна из предыдущих версий. Её можно получить в любой момент. Сервер системы контроля версий нередко использует дельта-компрессию — это способ хранения документов, в котором только изменения между различными версиями сохраняются. Дельта-компрессия позволяет значительно уменьшить объём данных, для хранения, но увеличивает время записи и уменьшает надёжность системы. Так как, зачастую, самой востребованной версией является именно последняя версия файла, система контроля версий может при сохранении новой версии сохранять её целиком, а потом заменить в своём хранилище ранее сохранённую последнюю версию на разницу между этой и последней версией. ClearCase и другие некоторые системы поддерживают сохранение версий обоих видов: большинство версий сохраняется с использованием дельта-компрессии, но время от времени (по специальной команде администратора) выполняется процедура сохранения версий всех файлов в полном виде. Данный подход гарантирует максимально полное восстановление истории в случае повреждения системы хранения.

Иногда создание новой версии файла выполняется достаточно незаметно для конечного пользователя (прозрачно), либо программным обеспечением, имеющим поддержку такой функции встроено, либо за счёт использования специфичной файловой системы. В таком случае пользователь просто работает с файлом, как обычно, и при сохранении файла автоматически создаётся новая версия.

Очень часто бывает, что над одним проектом одновременно работает целая группа человек или коллектив. Если несколько человек изменяют один и тот же файл, то один из них может случайно отменить изменения, сделанные другим или получить неправильную версию файла. Системы управления версиями позволяют отслеживать подобные коллизии, но и предлагают программные средства их решения. Подавляющее большинство систем контроля версий имеет возможность автоматически объединить произведённые изменения, сделанные различными разработчиками. Но подобное автоматическое объединение изменений, зачастую, реально возможно только для текстовых файлов (например, исходные коды) и только при условии, что изменялись разные части этого файла (например, различные методы класса в исходном коде). Подобное ограничение связано с тем, что подавляющее большинство систем управления версиями ориентированы на обслуживание процесса разработки программного обеспечения, когда как исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение выполнить не удалось, система может предложить решить проблему вручную.

Очень часто выполнить процедуру слияния нет возможности как в автоматическом, так и в ручном режиме, например, если формат файла неизвестен системе контроля версий или слишком сложен способ реализации текста. Некоторые системы предоставляют возможность блокирования файл в своём хранилище. Данная процедура не позволяет другим пользователям получить доступ к рабочей копии, а так же препятствует модификации рабочей копии файла (например, средствами файловой системы) и, нередко, обеспечивает доступ к документу только тому пользователю, который в данный момент работает с выбранным документом.

Дополнительно, системы управления версиями, зачастую, предоставляют целый ряд других возможностей:

Позволяют создавать различные варианты одного и того же документа, например, ветки, обладающие общей историей изменений до точки ветвления и с различным — после неё

Дают возможность узнать, имя пользователя, который когда-либо добавил или модифицировал выбранный набор строк в файле Возможность комментирования действий пользователя в журнале изменений. Например пользователь может указать причину удаления метода не только в коде, но и в системе контроля версий Разграничивает права доступа пользователей, разрешая или запрещая чтение или изменение данных, в зависимости от того, кто запрашивает это действие[8].

Для полного анализа недостатков систем контроля версий необходимо рассмотреть крупнейшие из представленных на данный момент на рынке:

ClearCase

Крупная система разрабатываемая подразделением Rational Software компании IBM с 1992 года. Предоставляет огромные возможности для работы с файлами, перекрывая практически любые подобные задачи. В этом и скрывается фатальный недостаток ClearCase: большая громоздкость и требование к оборудованию, вкупе с высокой стоимостью не позволяют использовать её как лёгкую систему контроля доступа к файлам. К тому же отсутствие возможности шифрования данных передаче их при помощи MultiSite плохо сказывается на безопасности.

CVS

Популярная централизованная система управления версиями на лицензии GNU GPL. В силу прекращения поддержки в 2008 году формально является устаревшей. К тому же обладает несколькими недостатками, не позволяющими её использовать как полноценную систему контроля доступа к файлам:

Невозможно переименовать файл или директорию так, чтобы это изменение было отражено в истории Ограниченная поддержка юникода и не-ASCII имен Публикации изменений не атомарны Наборы изменений не поддерживаются Неэффективное хранение бинарных файлов Оригинальный GNU CVS не поддерживает разграничения прав между пользователями репозитория Графический интерфейс требует отдельного приложения

CVSNT

Совместимая с CVS система фактически перенимает множество недостатков CVS. Главным из которых является консольный интерфейс. Популярный же GUI для Windows WinCVS подходит исключительно для людей с высоким уровнем компьютерной грамотности в силу некоторой нелогичности и перегруженности интерфейса.

Subversion

Выпущенная в 2004 году система призванная сменить лидирующий в то время CVS. На данный момент активно используется и внедряется множеством сообществ разработчиков, придерживающихся разработке открытого ПО (сообщества, которые в прошлом использовали CVS в их числе). К ним относятся так же такие известные проекты, как Mono, MediaWiki, FreeBSD, Free Python, Pascal, Ruby, Apache, Haiku, AROS и GCC. Система очень активно используется и в закрытых проектах и корпоративной сфере. Хостинг Subversion, в том числе для проектов обладающим открытым кодом, также предоставляют такие хостинг-проекты как Google Code, Tigris.org, SourceForge.net и BountySource. Однако такая распространённая система не лишена недостатков, главным из которых является сложность работы пользователей, дороговизна развёртывания и отсутствие встроенного механизма шифрования. Вышеперечисленные недостатки критичны для полноценной и простой системы контроля доступа к файлам.

Perforce

Система контроля версий с очень схожими с Subversion возможностями и обладающая теми же недостатками.

RCS

Одна из первых систем контроля версий. В силу слабой поддержки и крайне низкой интуитивности на роль полноценной и простой системы контроля доступа к файлам не подходит.

SourceSafe

VCS от Microsoft. Несмотря на высокие возможности и достаточно дружественный интерфейс низкая стабильность не позволяет использовать её как полноценную систему контроля доступа к файлам.

Все вышеперечисленные системы контроля версий обладают, безусловно, богатыми возможностями для работы с файлами, однако дополнительно к перечисленным недостаткам главным является сам факт проектирования VCS как программного обеспечения для программистов и упор на операции с текстовыми файлами. Следовательно, для широкого использования как системы контроля доступа к файлам они не подходят.

1.3.4 Системы контроля доступа к файлам

Довольно слабо представленные на рынке системы непосредственно направленные на решение поставленной задачи. В качестве примера будут рассмотрены недостатки системы FileControl:

Аппаратная зависимость.

Работа непосредственно с файлами, а не с ссылками.

Неограниченные права администратора Высокая стоимость для физических лиц.

Работа на непосредственно носителях данных.

Отсутствие возможности раздельного редактирования фалов разными пользователями.

Ввиду перечисленных недостатков следует несостоятельность подобных систем, как простого, дешевого и универсального средства защиты файлов, предназначенного как для пользователей, так и для организаций.

1.3.5 Комплексный анализ недостатков существующих решений

В дополнение, необходимо выделить несколько основных уязвимостей и недостатков корпоративного или пользовательского рабочего места, оборудованного данными средствами:

Уязвимости:

Системный администратор: в силу должности, системный администратор, зачастую, обладает полными правами на добавление, изменение, а главное, чтение файлов. Безусловно, подобное отношение упрощает и ускоряет администрирование, но в то же время является важной уязвимостью, так как, как и новый, так и старый, проверенный, системный администратор может воспользоваться своими возможностями в пользу, как потенциального злоумышленника, так и во вред кампании Пользователи/сотрудники: даже теоретические возможности по нанесению ущерба могут быть предварены в жизнь злоумышленником, особенно если он является сотрудником. Зачастую, даже сверхнадёжный сотрудник может случайна разгласить тайну, которая может подставить в опасность безопасность файлов как организации, так и физического лица.

СВТ: любой компьютер уязвим для вредоносного ПО. Явное хранение файлов, а так же сохранение их в незащищённом виде после окончания работы является сильной уязвимостью.

Общие недостатки всех систем:

Взаимоисключение свойств интуитивности и мощности.

Непропорциональная стоимость и сложность развёртывания возможностям контроля доступа к файлам.

Современное средство, выполняющее роль контроля доступа к файлам должно отвечать следующим требованиям:

Обеспечение независимости пользовательских файлов друг от друга.

Возможность контроля редактирования файла при доступе нескольких пользователей.

Устойчивость метода хранения к несанкционированному доступу.

Независимость работоспособности системы от человеческого фактора.

Соразмерность стоимости и сложности развёртывания стоимости данных.

1.4 Формулировка общих требований к разрабатываемой системе

По итогам анализа проблем безопасности работы с файлами, существующих решений описанной проблемы необходимо выделить общий набор требований к разрабатываемой системе контроля доступа к файлам. Система должна объединять достоинства всех существующих на данный момент решений, но избежать их недостатков:

Низкая стоимость развертывания программного продукта.

Низкий порог вхождения для пользователя.

Широкие возможности по распределению прав доступа.

Защищенность конфиденциальности данных от внутреннего нарушения.

Представлены основные понятия и определения.

Описана проблематика предметной области и произведено описание угроз.

Произведен анализ существующих средств выполняющих контроль доступа к файлам.

Выявлены недостатки существующих средств выполняющих контроль доступа к файлам.

Сформулированы требования к разрабатываемому средству контроля доступа к файлам.

2. Проектирование системы

2.1 Постановка задачи дипломного проектирования

Необходимо разработать систему контроля доступа к файлам, удовлетворяющую следующим условиям:

Ссылочное отображение файлов Удовлетворение модели «Пользователь — Группа — Файл» (рис. 2.1).

Рисунок 2.1 — Модель «Пользователь-Группа-Файл»

Наличие как приватных пользовательских файлов, привязанных к конкретному пользователю, так и глобальных, права на изменение, получение которых, могут иметь все пользователи, имеющие в своих группах подобные файлы.

Дружественный интерфейс, представляющий интуитивно понятный способ представления списка файлов и операций с ними.

Разграничение файлов по уровню доступа на личные и глобальные.

Хранение личных файлов пользователей в зашифрованном виде.

Хранение файлов в файловой системе только во время сеанса работы.

Администратор не должен обладать правами чтения личных файлов пользователя.

Возможность добавления/получения целых групп файлов.

Возможность частичного удаления (сокрытия) файлов.

Простота регистрации пользователя.

Автоматическая регистрация изменений каждого файла с последующим сохранением прежней версии.

2.2 Выбор способа хранения файлов

Для осуществления собственной роли система контроля доступа к файлам должна осуществлять хранение файлов в недоступном для несанкционированного чтения и модификации виде. На данный момент имеется множество способов хранения, однако, в силу требования низкой стоимости развёртывания, дорогостоящие способы хранения рассматриваться не будут. Так же не будут рассматриваться заведомо небезопасные и противоречащие текущему законодательству Российской Федерации способы хранения данных.

Файловая система Расположение файлов пользователей непосредственно в файловой системе в защищённом разделе в зашифрованном виде.

Достоинства:

Высокая скорость обработки данных.

Логичная система хранения файлов.

Простота реализации.

Отсутствие необходимости в привлечении стороннего ПО.

Недостатки:

Низкий уровень безопасности. На защищённый раздел злоумышленник может проникнуть в обход Windows.

Слабые возможности по гибкой работе с политиками доступа к файлу. Гарантированно быстрое отображение группы файлов возможно только в случае расположения их в одной директории. Отображение файлов, распределённых по всему защищённому разделу, занимает длительное время, соответственно построение списка файлов пользователя будет слишком длительным.

Низкая скорость поиска. В случае большого количества файлов неиндексированный поиск слишком длителен, а индексированный требует дополнительного хранения индексов.

Сложность развёртывания. Требуется отдать отдельный раздел, достаточного объёма.

Бинарный файл или группа бинарных файлов.

Запись в бинарный файл или группу бинарных файлов потока данных, в котором зашифрованы необходимые файлы.

Достоинства:

Компактность.

Высокий уровень защищённости.

Отсутствие необходимости в привлечении стороннего ПО.

Недостатки:

Сложность реализации. Необходимо разработать метод хранения и алгоритмы чтения/записи/поиска.

Нелогичная система хранения файлов.

Требование к неиндексированному поиску. Так как при расшифровке индекса злоумышленник получит доступ к файлам, ограниченный только шифрованием самого потока данных каждого файла.

Слабые возможности по расширяемости алгоритма записи/чтения/поиска.

XML — файл Запись потока байтов нужных файлов в XML файле Достоинства:

Простота реализации Высокая скорость поиска Логичная система хранения данных Высокие возможности по распределённому доступу к файлам Отсутствие необходимости в привлечении стороннего ПО Недостатки:

Большие требования к объёму Низкая скорость доступа в случае шифрования XML файла, в обратном случае низкий уровень защищённости База данных Хранение в базе данных потока данных, содержащих зашифрованные файлы пользователей Достоинства:

Высокая скорость доступа Высокий уровень защищённости Быстрый поиск и отображение списка/дерева Удобная возможность работать с данными Логичная система хранения файлов Недостатки:

Требование стороннего ПО Возможные сложности при развёртывании Все 4 способы хранения данных полностью удовлетворяют требованиям к системе контроля доступа к файлам, однако в силу высокой сложности развёртывания хранение файлов в файловой системе использоваться не будет.

Так как приложение рассчитано на длительную поддержку и развитие, слабо расширяемы способ хранения данных в бинарном файле или группе бинарных файлов тоже не может быть принят.

Безусловно, способ хранения в XML файле благодаря своим достоинствам очень хорошо подходит для решения данной задачи, однако, в силу низкой компактности хранения данных и требовании в шифровании самого файла, данный метод хранения не может являться оптимальным.

Хранение данных в базе данных, безусловно, является наилучшим вариантом. Так как конечной целью является уменьшение сложности развёртывания системы, возможные проблемы, связанные с установкой СУБД могут быть критичными, так что необходимо выбрать достаточно надёжную систему.

2.3 Идеология построения интерфейса

Разработанный кампанией Xerox оконный интерфейс взаимодействия с пользователем стал на сегодняшний день основным, практически вытеснив ранее доминирующую консоль. Несмотря на, безусловно, богатые возможности консоли и низкую требовательности к аппаратным ресурсам, оконный интерфейс предлагает интуитивность работы с программным обеспечением. Именно интуитивность интерфейса работы с пользователем позволяет, набрав определённый набор стереотипов, разрабатывать программы, не требующие высокого порога вхождения.

При разработке интерфейса приложения необходимо учитывать как общее восприятие пользователем программы, так и малозаметные детали, строящие полную картину.

Работая на компьютере, у пользователей складывается определённый набор стереотипов. Зачастую он отличается от стереотипов, приобретённых житейским опытом работы с документами. Не редко подобные отличия выливаются в коллизию реакции на событие. Фактически, пользователей можно разделить на 3 типа:

У пользователя стереотипы, приобретённые в жизни, сильно преобладают над стереотипами, приобретёнными при работе с ПК. Разработка интерфейса, направленного на работу с подобным типом пользователя требует не только отображения житейских стереотипов, но и отображения полной информации непосредственно в интерфейсе.

У пользователя стереотипы, приобретённые при работе на ПК, достаточны для работы с графическим интерфейсом операционной системы. При построении интерфейса, рассчитанного на данный тип пользователей, требуется в первую очередь соблюдать общие нормы расположения управляющих элементов и связей данных.

Пользователь понимает идеологию хранения данных и работы программы. Зачастую, данному типу пользователей для быстрой и комфортной работы требуется отображение информации согласованно со способом её хранения.

Объединение свойственных житейскому опыту и опыту работы с ПК стереотипов достаточно сложная проблема. Однако проблем недопонимания можно максимально избежать, удовлетворяя в первую очередь базовые потребности каждого типа пользователей, а уже потом, требования увеличения скорости работы:

Отображение информации по возможным действиям в виде текста, но не в виде иконок.

Соблюдение кинетических стереотипов (например, двойной щелчок).

Построение архитектуры хранения данных максимально близко к отображаемым данным.

Главная цель, которую необходимо ставить при построении удобного пользовательского GUI, состоит в том, чтобы уменьшить объём знаний пользователей, необходимых для работы с программной, и размышлений, необходимых для выполнения требуемой задачи. Можно отметить два главных вопроса, на которые должен «отвечать» интерфейс пользователю. Данные три вопроса необходимо всегда учитывать, при конструировании интуитивного интерфейса[5]:

Что необходимо сделать для выполнения поставленной задачи.

На что повлияет выполнение того или иного действия.

Какие ещё возможности могут потребоваться

Именно ответы на вышесказанные вопросы составляют основу построения интуитивного интерфейса. Вне зависимости от уровня пользователя и его понимания предметной области, восприятие и скорость выполнения задачи увеличивается тогда, когда для выполнения поставленной задачи, но должен выполнить разделённый на шаги набор действий. Безусловно, все задачи должны быть четко сформулированы и определены.

Соответственно, можно сформулировать четыре шага построения интуитивного интерфейса:

Одна форма соответствует либо одной задаче, либо одной сущности, представляемой пользователю, но не обязательно представленной в системе.

Указать задачу или сущность для каждой формы.

Иерархически расположить элементы для выполнения задачи, в порядке очерёдности.

Установить переходы на вторичные задачи или сущности — потомки.

Стоит отметить пять рекомендаций, которые улучшат как и интуитивность интерфейса, так и общую его привлекательность:

Использование общих шаблонов форм.

Предоставление форм, предназначенных для запуска задач.

Выполнение задачи должно быть очевидным для пользователя, соответственно нельзя добавлять нелогичный и, тем более, недокументированный, функционал.

Предоставлять интуитивную возможность закончить текущую задачу и начать новую.

Сделать очевидным следующий шаг при навигации.

2.4 Требования к архитектуре

Проектируемая система должна комфортно представлять данные любым пользователям вне зависимости от навыков работы в ПК. И хотя сам метод хранения файлов инкапсулирован, структура базы данных должна максимально соответствовать отображаемому виду ради увеличения скорости доступа и упрощении поддержки.

Представление файлов пользователя должно опираться как на устойчивые стереотипы отображения файлов в файловой системе, так и на исключительно жизненный опыт работы с документами.

В силу обширности сферы применения программного продукта, архитектура должна быть достаточно универсальной для возможных расширений, модификаций под конкретные нужды каждого и возможных клиентов.

Пользователь программы работает с инкапсулированными данными, хранимыми в БД. Формально, пользователь должен представлять хранение файлов как на дополнительном разделе ПК.

Стоит отметить, что задача осуществления контроля доступа к файлам достаточно требовательна к ресурсам, как сервера, так и сети. К тому же должна остаться возможность быстрого развёртывания на локальном ПК для личных нужд.

Для архитектуры существуют несколько требований:

масштабируемость.

высокая безопасность.

высокая надёжность.

низкие требования к скорости канала (сети) между терминалами и сервером приложений.

низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости.

В соответствии с данными требованиями была выбрана трёхуровневая архитектура. Несмотря на усложнение разработки, подобное решение позволяет получить быструю, безопасную, масштабируемую систему.

2.5 Проектирование процесса работы пользователей с приложением

Разрабатываемая система контроля доступа к файлам должна предоставлять пользователю, формально, место на сервере, предназначенное для его файлов.

Весь процесс работы пользователя в системе можно описать в диаграмме (см. рис. 2.2):

Рисунок 2.2 — Алгоритм работы пользователя в системе В процессе работы с файлами пользователь должен иметь возможность добавлять, удалять, редактировать необходимые файлы.

Наиболее удобный способ хранения и отображения пользовательских файлов представляет собой модель Пользователь — Групп — Файл. Общий смысл данной модели заключается в распределении ссылок файлов по группам. В группе не может быть одного и того же файла, однако один файл может быть в нескольких группах.

В главном окне отображается список групп пользователя и дерево файлов, соответствующее выделенной группе.

Пользователь, в свою очередь, имеет доступ к нескольким группам и может добавлять свои, изначально пустые, группы и заполнять их файлами. Редактировать списки групп каждого пользователя может только администратор, однако и он не может удалять и редактировать файлы. Фактически, доступ к файлам имеет только владелец файла и те пользователи, которые получили соответствующий доступ.

В системе существует 2 типа файлов:

Обычный. Получить данный файл может лишь тот пользователь, который его же и добавил.

Глобальный. Данный тип файлов могут получить все пользователи, в группах которых он находится.

Новый пользователь при входе в систему проходит регистрацию. Для этого нет необходимости переходить в другое окно, достаточно ввести необходимые логин/пароль и произойдёт автоматическая регистрация.

Любой пользователь может:

Добавить новую группу. Для этого необходимо указать путь, куда будут записываться файлы при получении. Указывать имя группы необязательно.

Удалить группу. Файлы, находившиеся в группе, не удаляются, так что при распределении их по другим группам, затронуты они не будут.

Получить информацию по файлу. В этом случае открывается окно, отображающее всю возможную информаци. ю, возможные действия и резервные копии.

Добавить файл. Пользователь должен выбрать непосредственно файл и узел в дереве каталогов отображаемых файлов.

Добавить папку. В таком случае в указанный узел добавляется папка и всё её содержимое.

Скопировать файл в другую группу. Файл будет скопирован вместе с каталогами-родителями.

Сделать файл скрытым. В таком случае файл не будет отображаться и записываться в файловую систему, если не указана опция «отображать скрытые файлы».

Удалить файл из группы. Как и с ситуацией с группами, файл из системы непосредственно не удаляется, так что изменение в текущей группе не затронет данный файл в других группах.

Записать файл. Файл записывается в файловую систему по указанному пути, конкатенированному с путём группы и непосредственным путём файла Записать группу. Все файлы из данной группы будут записаны в систему по соответствующему пути.

При работе нескольких пользователей с одним файлом необходимо разграничивать возможности по редактированию. Для этого введена возможность повесить на файл флаг «редактируется». Другой пользователь не сможет в таком случае изменить данный файл.

При каждом изменении файла записывается его резервная копия с указанием даты изменения и именем пользователя, проделавшего данное изменение. В любой момент можно записать в файловую систему нужную резервную копию или вернуть состояние файла к выбранной копии.

Каждый файл в системе характеризуется следующим набором свойств:

Именем файла. Имя указывается полностью, вместе с расширением.

Пользователем, добавившим его.

Флагом, является ли он папкой.

Потоком бит, представляющим непосредственно зашифрованный файл.

Датой создания.

Флагом, является ли он скрытым.

Флагом, редактируется ли он в данный момент.

Свойством доступа: глобальный или не глобальный. Характеризует права доступа к нему, а именно только непосредственно добавивший его пользователь, и любой пользователь системы.

Тем не менее, пользователь не оперирует с данными свойствами одновременно, так как каждый файл представлен не как запись в таблице, а как единая система, объединяющая в себе все свойства.

Группы:

Название группы.

Путь. Именно по заданному пути будут сохраняться файлы в файловую систему.

Свойства группы представлены в таблице «группы». При добавлении группы пользователь должен указать свойство «путь». В случае, если свойство «имя группы» пользователь не укажет, оно будет выставлено по умолчанию.

Сама по себе группа рассматривается скорее как аналог локального диска в файловой системе, в то время как файлы — его содержание.

Система абстрагирована от понятия пользователя. Пользователь получает доступ, но не как к базе данных или общему ресурсу, а как к личному файловому архиву.

Администрирование системы подразумевает только операции над группами. Непосредственно администратор не имеет доступа к обычным файлам, хотя и может получить доступ к глобальным файлам.

При работе администратора с группами, ему должно быть предоставлена возможность просмотра и редактирования групп каждого пользователя.

Пользователь должен быть абстрагирован от понятия доступа к базе данных. О способе и месте хранения данных он тоже не должен знать, тем более о таком понятии как строка подключения. Соответственно файл клиента распространяется вместе конфигурационным файлом со строкой подключения к БД. В случае необходимости установки клиента на несколько компьютеров в организации, достаточно распределить приложение и файл конфигурации.

Каждый не глобальный файл при добавлении шифруется по алгоритму DPAPI, с ключом, опирающимся на регистрационные данные пользователя в системе. Таким образом, достигается защищённость файлов и независимость данных от остальных пользователей.

После окончания работы с приложением производится удаление всех файлов из файловой системы.

2.6 Модель взаимодействия компонентов системы

В основе системы контроля доступа к файлам стоит трёхзвенная архитектура: клиент — сервер приложений — СУБД (см. рис. 2.3).

Рисунок 2.3 — Трехзвенная архитектура Рассмотрим каждый элемент по отдельности.

Клиент:

Приложение, рассчитанное на непосредственно работу пользователя с ним. Клиент выполняет следующие задачи:

Отображение всех возможных действий для пользователя Предоставление пользователю возможность получения файлов Передача команд пользователя к серверу приложений Сервер приложений:

Служба, являющаяся связующим звеном между клиентом и СУБД. Выполняет следующие функции:

Передача СУБД всей информации, полученной от клиента Передача Клиенту данных, взятых из СУБД Реализация команд, полученных от клиента СУБД работает непосредственно с базой данных, получая информацию от сервера приложений и выполняя полученные инструкции.

3. Реализация проекта

3.1 Выбор состава технических и программных средств

3.1.1 Система управления базами данных Microsoft SQL Server 2008

Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для от небольших и средних по размеру баз данных до крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.

Microsoft SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase[4].

3.1.2 Язык программирования C#. Версия 4.0

C# - объектно-ориентированный язык программирования. Разработан в 1998;2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств, вроде Visual Studio.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML[1].

C# 4.0 были выпущены в апреле 2010 года, одновременно с выпуском Visual Studio 2010.

Показать весь текст
Заполнить форму текущей работой