Українська   English
 

Реферат по теме выпускной работы

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

Содержание

Введение

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

Далее для назначения/отмены привилегий используется язык SQL, включающий операторы GRANT, REVOKE и т. д. Большинство современных реляционных СУБД поддерживает дискреционную (DAC) и мандатную (MAC) модели разграничения доступа, а также дополнительные средства обеспечения безопасности.

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

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

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

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

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

Безопасность клиент-серверного приложения с базой данных

Рисунок 1 – Безопасность клиент-серверного приложения с базой данных (анимация: 9 кадров, 6 циклов, 198 кбайт)

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

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

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

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

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

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

Риски безопасности для клиент-серверных приложений с базами данных

Рисунок 2 – Риски безопасности для клиент-серверных приложений с базами данных

Рассмотрим и проанализируем основные из них:

3. Идентификация источников угроз и построение модели угроз для клиент-серверного приложения с базами данных

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

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

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

Внутренними источниками угроз клиент-серверных приложений с базами данных и СУБД являются:

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

4. Обзор исследований и разработок

4.1 Обзор международных источников

Существует множество источников, посвященных проблеме обеспечения безопасности клиент-серверных приложений с базами данных. Так, в статье Database Security and Encryption: A Survey Study исследуется безопасность баз данных, анализируются проблемы, требования и угрозы обеспечения безопасности баз данных, а также рассматривается использование средства защиты шифрования на различных уровнях безопасности баз данных.

А в статье DATABASE SECURITY: THREATS AND PREVENTIVE MEASURES производится анализ множества различных угроз и уязвимостей и определяются наиболее распространенные и проблемные, также предлагается наиболее подходящие превентивные меры или решения для каждого из проанализированной угрозы и уязвимости.

В книге Database Reliability Engineering: Designing and Operating Resilient Database Systems by Laine Campbell and Charity Majors уделяется внивмание требованиям к уровню обслуживания и управление рисками баз данных, созданию и развитию архитектуры для обеспечения надеждности работы баз данных, разработке инфраструктуры и управлению инфраструктурой, безопасному хранению, индексации и репликациия данных, определению характеристик хранилища данных и наилучших вариантов использования, проектированию компонентов архитектуры хранилища данных и архитектуры управляемые данными.

4.2 Обзор национальных источников

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

Книга PostgreSQL 11. Мастерство разработки – 2019 Шенига Ганса-Юргена освещает передовые технические аспекты PostgreSQL, включая логическую репликацию, кластеры баз данных, оптимизацию производительности, мониторинг и управление пользователями. В ней раассматриваются транзакциии, блокировки, индексы и оптимизация запросов. Кроме того, рассматривается обеспечение сетевой безопасность и механизм резервных копии и репликаций, полезные расширения PostgreSQL, позволяющие увеличить производительность при работе с большими базами данных.

В книге Основы технологий баз данных – 2020 Новикова Б., Горшковой Е. и Графеевой Н. подробно рассматриваются основные понятия, устройство и принципы работы СУБД, обеспечение безопасности работы, а также технологии (архитектура, алгоритмы, структуры данных), лежащие в их основе.

4.3 Обзор локальных источников

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

В работе Модели производительности систем управления базами данных Селми Уаяик исследует производительность системы управления базы данных при помощи сравнения серверов баз данных [4].

5. Проектирование программных средств и алгоритмов защиты клиент-серверного приложения с базами данных исходя из модели угроз

5.1 Алгоритм сокрытия пароля

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

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

Если пароль будет утерян или скомпрометирован, должен произойти сброс, это означает, что для аутентификации не нужно хранить пароль в открытом виде. Один из способов решить эти проблемы – использовать односторонний хэш, то есть шифрование, которое невозможно расшифровать. Известны алгоритмы хеширования, такие как MD5-хеш, SHA-1. Эти алгоритмы хороши тем, что независимо от размера данных, размер возвращаемых данных всегда один и тот же. MD5 имеет длину 128 бит, что составляет 16 байт. Одного алгоритма хеширования недостаточно, так как его легко взломать.

Для снижения риска взлома необходимо использовать самый надежный хэш алгоритм, доступный в нашей базе кода. И засолить наши пароли, то есть создать случайное значения для добавления в конец пароля, чтобы сделать его более уникальным. Это также необходимо для предотвращения анализа паролей, если использовать только алгоритм хеширования все одинаковые пароли будут иметь одинаковый хеш. При использовании случайного значения соли сохраненные хеши становятся уникальными, даже если используется один и тот же пароль. Также при авторизации будут подставляться в запрос не сами значения переменных, а их параметры, для предотвращения SQL-инъекций [5].

Из вышесказанного можно сформировать следующий алгоритм регистрации/авторизации.

  1. Регистрация пользователя:
    • ввод имени пользователя;
    • ввод пароля;
    • создание случайной соли к паролю;
    • применение хеш алгоритма;
    • сохранение имени пользователя, хэша и соли в таблице базы данных.
  2. Авторизация пользователя:
    • таймаут 2 секунды, для замедления атак при помощи грубой силы;
    • получение имени пользователя и пароля;
    • получение соответствующей записи из базы данных;
    • использование соли из базы данных, чтобы создать хеш к паролю;
    • сравнение полученного хэша с хешем пароля, который хранится в базе данных;
    • возврат Не удалось войти в систему или Успешная авторизация; (не показываем более детальные сообщения пользователь не найден или неверный пароль, поскольку это дает нарушителю много информации).

5.2 Алгоритм разграничения прав доступа

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

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

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

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

Из вышесказанного можно сформировать следующий алгоритм разграничения прав доступа:

5.3 Алгоритм обезличивания персональных данных

Для снижения риска несанкционированного доступа к личным данным или утечки таких данных, планируется использовать алгоритм обезличивания персональных данных (рис. 3).

Блок-схема алгоритма обезличивания персональных данных

Рисунок 3 – Блок-схема алгоритма обезличивания персональных данных

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

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

Разбиение каждого множества должно обладать следующими свойствами:

  1. подмножества разбиения включают все элементы множества данных одного атрибута;
  2. все элементы в подмножествах упорядочены как по внутренним номерам (номера элементов внутри подмножества), так и по внешней нумерации самих подмножеств в разбиении;
  3. суммарное число элементов всех подмножеств множества данных одного атрибута равно общему числу элементов этого множества.

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

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

Данный алгоритм обладает следующими преимуществами:

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

5.4 Алгоритм обеспечения контроля целостности обезличенных персональных данных

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

Данный алгоритм обладает следующими преимуществами:

5.5 Средства защиты на уровне СУБД

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

Заключение

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

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

Список источников

  1. Основные аспекты безопасности СУБД: что следует знать [Электронный ресурс] /. – Режим доступа: https://tproger.ru/articles/dbsecurity-basics. – Заглавие с экрана.
  2. С чего начинается защита базы данных? [Электронный ресурс] /. – Режим доступа: https://www.dataarmor.ru/с-чего-начинается-защита-базы-данных. – Заглавие с экрана.
  3. Secure Password Authentication Explained Simply [Электронный ресурс] /. – Режим доступа: https://www.codeproject.com/Articles/54164/Secure-Password-Authentication-Explained-Simply. – Заглавие с экрана.
  4. Системы управления базами данных [Электронный ресурс] /. – Режим доступа: http://www.bseu.by/it/tohod/sdo4.htm – Заглавие с экрана.
  5. В.К. Волк. Базы данных. Проектирование, программирование, управление и администрирование: учебник – Санкт-Петербург: Лань, 2020. – 244 с.
  6. А.С. Куракин. Алгоритм деперсонализации персональных данных // Научно-технический вестник информационных технологий, механики и оптики, № 6 (82), 2012. – p.130-135.
  7. Ю.А. Гатчин, О.А. Теплоухова, А.С. Куракин. Алгоритм контроля целостности деперсонализированных данных в информационных системах персональных данных // Научно-технический вестник информационных технологий, механики и оптики, № 1 (83), 2013. – p.145-147.