
- •СОДЕРЖАНИЕ
- •Вступительное слово
- •Балау Эльвира Игоревна
- •Анацкая Алла Георгиевна
- •КУЛЬТУРА РАСПРОСТРАНЕНИЯ ЛИЧНОЙ ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЯМИ СОЦИАЛЬНЫХ СЕТЕЙ
- •Бутов Олег Сергеевич
- •Мызникова Татьяна Александровна
- •ТЕНДЕНЦИИ РАЗВИТИЯ ПРОГРАММНЫХ ПРОДУКТОВ В ОБЛАСТИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
- •Гугняк Роман Борисович
- •Мызникова Татьяна Александровна
- •ПРИМЕНЕНИЕ МЕТОДОВ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ПРОГНОЗИРОВАНИЯ УГРОЗ WEB-ПРИЛОЖЕНИЯМ
- •Жуков Даниил Эдуардович
- •Толкачева Елена Викторовна
- •ВЫПОЛНЕНИЕ ТРЕБОВАНИЙ ЗАКОНОДАТЕЛЬСТВА РФ В ОБЛАСТИ КАТЕГОРИРОВАНИЯ ОБЪЕКТОВ КРИТИЧЕСКОЙ ИНФОРМАЦИОННОЙ ИНФРАСТРУКТУРЫ
- •Кальницкая Анна Владимировна
- •Семёнова Зинаида Васильевна
- •АНАЛИЗ ПУБЛИКАЦИОННОЙ АКТИВНОСТИ ПО ПРОБЛЕМЕ ЗАЩИТЫ ИНФОРМАЦИИ В АВТОМАТИЗИРОВАННЫХ СИСТЕМАХ ВОДНОГО ТРАНСПОРТА
- •Кирилов Андрей Дмитриевич
- •Толкачева Елена Викторовна
- •СРАВНИТЕЛЬНЫЙ АНАЛИЗ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ НА МОБИЛЬНЫХ УСТРОЙСТВАХ
- •Ковшарь Игорь Романович
- •Семенова Зинаида Васильевна
- •РАЗРАБОТКА ПРОТОТИПОВ РЕШЕНИЙ ДЛЯ ЗАЩИТЫ ОБМЕНА ВАЖНОЙ ИНФОРМАЦИЕЙ ЧЕРЕЗ ДЕМИЛИТАРИЗОВАННУЮ ЗОНУ В КОРПОРАТИВНОЙ СЕТИ
- •Лапшин Семён Сергеевич
- •Сапрыкина Надежда Александровна
- •МОДЕЛЬ ИНФОРМАЦИОННОГО ОБЩЕСТВА – ОТРАЖЕНИЕ НОВЫХ ОНТОЛОГИЧЕСКИХ ЗАКОНОМЕРНОСТЕЙ, ОБУСЛОВЛЕННЫХ ВНЕДРЕНИЕМ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
- •Курочка Раиса Александровна
- •Толкачева Елена Викторовна
- •ИСПОЛЬЗОВАНИЕ СРЕДСТВ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ В ГОСУДАРСТВЕННЫХ УЧРЕЖДЕНИЯХ
- •Ложников Павел Сергеевич
- •Сулавко Алексей Евгеньевич
- •Лукин Денис Вадимович
- •Белгородцев Артем Андреевич
- •СПОСОБ ГЕНЕРАЦИИ КЛЮЧЕВЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ НА ОСНОВЕ МУЛЬТИМОДАЛЬНОЙ БИОМЕТРИИ
- •Мазуров Александр Александрович
- •Семенова Зинаида Васильевна
- •ОБЕСПЕЧЕНИЕ ЗАЩИТЫ ПРИЛОЖЕНИЯ «СУШИ МАРКЕТ» СРЕДСТВАМИ ПЛАТФОРМЫ .NET FRAMEWORK И MS SQL SERVER
- •Михальцов Владислав Евгеньевич
- •Михайлов Евгений Михайлович
- •АНАЛИЗ ВОЗМОЖНОСТЕЙ РЕАЛИЗАЦИИ ИДЕНТИФИКАЦИИ И АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЕЙ В АС НА БАЗЕ СИСТЕМЫ ЭЛЕКТРОННОГО ДОКУМЕНТООБОРОТА ELMA
- •Нигрей Алексей Андреевич
- •Хайдин Борис Игоревич
- •Сулавко Алексей Евгеньевич
- •Пономарев Дмитрий Борисович
- •ОБ ОЦЕНКЕ РЕСУРСНОГО СОСТОЯНИЯ ЧЕЛОВЕКА НА ОСНОВЕ АНАЛИЗА ЭЛЕКТРИЧЕСКОЙ АКТИВНОСТИ МОЗГА
- •Погарский Павел Юрьевич
- •Анацкая Алла Георгиевна
- •КАТЕГОРИРОВАНИЕ ОБЪЕКТОВ КРИТИЧЕСКОЙ ИНФОРМАЦИОННОЙ ИНФРАСТРУКТУРЫ МЕДИЦИНСКОГО УЧРЕЖДЕНИЯ
- •Родина Екатерина Витальевна
- •Епифанцева Маргарита Ярополковна
- •СИНТЕЗ СЛУЧАЙНОГО ПРОЦЕССА ПО КОРРЕЛЯЦИОННОЙ ФУНКЦИИ: СОЗДАНИЕ БАЗЫ ПРОЦЕССОВ
- •Рой Дмитрий Александрович
- •Анацкая Алла Георгиевна
- •КОМПЛЕКСНАЯ ЗАЩИТА ИНФОРМАЦИИ В ИНФОРМАЦИОННОЙ СИСТЕМЕ СТРАХОВОЙ КОМПАНИИ
- •Севостьянов Никита Андреевич
- •Любич Станислав Александрович
- •АНАЛИЗ ВОЗМОЖНОСТЕЙ ФРЕЙМВОРКА FLASK ПО ОБЕСПЕЧЕНИЮ РАЗЛИЧНЫХ АСПЕКТОВ ЗАЩИТЫ ДАННЫХ
- •Стадников Денис Геннадьевич
- •Чобан Адиль Гаврилович
- •Шалина Екатерина Викторовна
- •РАСПОЗНАВАНИЕ БИОМЕТРИЧЕСКИХ ОБРАЗОВ С ИСПОЛЬЗОВАНИЕМ АЛГОРИТМОВ ИСКУССТВЕННЫХ ИММУННЫХ СИСТЕМ
- •Ткаченко Михаил Вадимович
- •Любич Станислав Александрович
- •ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ ДАННЫХ В АВТОМАТИЗИРОВАННОЙ СИСТЕМЕ «ЭЛЕКТРОННАЯ ОЧЕРЕДЬ ПРИЕМНОЙ КОМПАНИИ СИБАДИ»
- •Шмаков Антон Константинович
- •Комаров Владимир Александрович
- •ОЦЕНКА ВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ МОМЕНТОВ РАСПРЕДЕЛЕНИЯ В КАЧЕСТВЕ ПОКАЗАТЕЛЯ ФОРМЫ ОПРЕДЕЛЯЕМОГО СИГНАЛА
ОБЕСПЕЧЕНИЕ ЗАЩИТЫ ПРИЛОЖЕНИЯ «СУШИ МАРКЕТ» СРЕДСТВАМИ ПЛАТФОРМЫ .NET FRAMEWORK И MS SQL SERVER
Мазуров Александр Александрович
студент группы БИб15-И1 Сибирского государственного автомобильнодорожного университета (СибАДИ), г.Омск
E-mail: mazurovalexandr@mail.ru
Семенова Зинаида Васильевна
СибАДИДоктор пед. наук, зав. кафедрой информационной безопасности, профессор ибирского государственного автомобильно-дорожного университета, г.Омск
E-mail: zvs111@gmail.com
АННОТАЦИЯ
В статье рассматр ваются ряд аспектов обеспечения информационной безопасности автомат з рованной системы «Суши Маркет», предназначеной для автомат зац знес-процессов ресторана «Суши Маркет», а также база данных, в которой хранятся все данные и действия, выполняемые в приложен . При проект ровании программы были реализованы различные методы защ ты нформац , а именно: авторизация, распределение ролей, валидация данных, ш фрование паролей, использованы некоторые технологии, предназначенные для о еспечения езопасности приложений. При этом в некоторых случаях использованы подходы, отличающиеся от стандартных, ориентированных на встроенные возможности средств разработки.
Ключевые слова: информационная безопасность; средства защиты информации; .NET Framework; MS SQL Server.
Введение
В последние годы наблюдается постоянный рост количества веб-ресурсов в рамках глобальной сети Интернет, что, с одной стороны, способствует доступности информации, а с другой - усиливает угрозы несанкционированного доступа к конфиденциальным данным.
По статистике, предоставленной аналитиками Progressive Technologies около тридцати трех процентов атак направлены на веб-ресурсы [1]. Большинство из них направлены на получение финансовой выгоды или кражу персональных данных.
Самыми распространенными атаками являются межсайтовое выполнение сценариев и внедрение SQL-кода (рисунок 1). Последняя имеет больший интерес, так как с их помощью можно получить доступ к данным или выполнить команды на сервере.
62

СибАДИР сунок 1. Статистика видов атак на веб-приложения
Как звестно, разра отчики веб-приложений применяют разнообразные технолог , которые могут существенно отличаться используемым инструментарием. Большинство исследуемых веб-приложений, разработаны на базе PHP и ASP.NET (часть .NET Framework).
Возможности платформы .NET FRAMEWORK и MS SQL SERVER по защите данных
Разные технологии создания приложений, веб-ресурсов и автоматизированных систем предлагают свои методы защиты информации.
Так, MS SQL Server и платформа .NET Framework предлагает множество реализаций средств защиты информации для разных аспектов информационной безопасности [4], [6], [9].
Аутентификация
Прежде чем произойдет подключения к серверу БД, осуществляется проверка используемого конкретным пользователем метода аутентификации.
При соединении с сервером MS SQL используются два типа аутентификации: интегрированный режим аутентификации аутентификация средствами СУБД (MS SQL).
Интегрированный режим, который в частности может быть использован в рамках технологии единого входа, ориентирован на создание для конкретного пользователя одной учетной записи в операционной системе. менно на эту учетную запись и ориентируется SQL Server, анализируя соответствующие учетные данные. В данном варианте предусмотрено создание пользователя домена и на сервере должны быть добавлены пользователи операционной системы. Далее будет определятся правомочность доступа к ресурсу SQL Server. Здесь очевиден исход: подключение к SQL Server будет реализовано в
63
том случае, если соответствующими полномочиями пользователь обладает. В противном случае будет выдано предупредительное сообщение об отказе в обслуживании.
Аутентификация средствами СУБД (MS SQL)
На MS SQL Server этот режим определяется как смешанный режим Mixed
Mode. Если применяется данный режим аутентификации, то процедура проверки правомочности доступа стандартна: сначала идет проверка логического имени пользователя, а затем (если пользователь с таким именем зарегистрирован) идет проверка подлинности пароля.
СибАДИони введены правильно представляют корректные значения. Один из встроенных способов проверки введенных данных в WPF представлен классом ExceptionValidationRule. Этот класс обозначает введенные данные как некорректные, если в процессе ввода возникает какое-либо исключение, например, исключение преобразования типов.
При не совпаден пары login – password SQL Server выдает сообщение о невозможности подключен я к ресурсу. Для любого из режимов существуют инструкц определяющ е права разных пользователей.
В языке Transact-SQL, который используется в СУБД MS SQL Serser для определен я прав доступа имеются соответствующие языковые инструкции,
которых всего три. К н м относятся инструкции GRANT, DENY и REVOKE.
Они позволяют предоставить или запретить доступ на операции с объектами БД (GRANT, DENY) или же удалить ранее определенное разрешение или запрет (REVOKE).
Кроме того, не сключена авторизация средствами .NET Framework. Для этого существует множество и лиотек, но и собственная реализация может иметь все необходимые функции.
Распределение ролей
Благодаря компоненту Database Engine существует возможность быстро
решить проблему с созданием той или иной роли (системной или пользовательской). В Transact-SQL есть необходимые языковые инструкции
(Create Server Role, Alter Server Role).
Как и в случае с аутентификацией, распределение ролей может быть
реализовано в приложении.
Семантические ограничения полей ввода и валидация типов данных
При работе с данными важную роль играет валидация данных [6]. Прежде
чем использовать полученные от пользователя данные, нам надо убедиться, что
Можно обрабатывать ввод с клавиатуры, а можно воспользоваться классом ExceptionValidationRule, который в случае неудачи преобразования строки в число установит красную границу вокруг текстового поля.
Шифрование или хеширование данных идентификации
Для платформы .NET Framework существует множество криптопровайдеров. Наиболее популярные из них: стандартный криптопровайдер [2] и BCrypt [3].
64
Стандартный криптопровайдер
RNGCryptoServiceProvider Class в пространстве имен System.Security.Cryptography.
Реализует криптографический генератор случайных чисел, используя реализацию, предоставляемую поставщиком служб шифрования (CSP). Этот класс не наследуется.
BCrypt
Сибезопасности доступабАДк данным делает такие атакиИкак sql-инъекции не актуальными.
Разработчиками BCrypt является известный специалист в области
криптографии Нильс Провос и его коллега профессор Давид Мазьер. BCrypt — адаптивная кр птограф ческая функция формирования ключа. Данная функция используется для хранен я паролей в защищенном виде. Основана она на
широко звестном кр птографическом алгоритме Blowfish. Для защиты от
атак с помощью радужных таблиц BCrypt использует соль (salt). Кроме того, время работы данной функции легко настраивается и её можно замедлить, что позволяет существенно усложнить атаку, если она реализуется с помощью перебора.
Для платформы .NET Framework она реализована в библеотеке NuGet
BCrypt.Next.
Отдельно сто т отмет ть Entity Framework [4].
Entity Framework является продолжением технологии Microsoft ActiveX
Data и предоставляет возможность работы с базами данных через объектноориентированный код C#. Этот подход предоставляет ряд существенных преимуществ: разра отчику не нужно беспокоиться о коде доступа к данным, не нужно знать деталей ра оты СУБД SQL Server и синтаксиса языка запросов T-SQL, вместо этого работа производиться с таблицами базы данных как с классами C#, с полями этих таблиц - как со свойствами классов, а синтаксис SQL-запросов, заменен на более удобный подход с LINQ. Entity Framework берет на себя обязанности по преобразованию кода C# в SQL-инструкции.
Это полнофункциональный фреймворк имеет очень обширный функционал, но в рамках представленного в данной статье продукта, важно отметить что главная философия фреймворка, а именно работа с базами данных, не прибегая к коду sql, обеспечивает необходимый уровень
Таким образом, MS SQL Server и .NET Framework имеют обширные возможности по обеспечению защиты приложений.
Пример защиты реализован в программе «Суши маркет». Приложение содержит четыре окна, каждое из которых отвечает за определенные задачи (рисунок 2).
65

СибАДИ |
|||||
Рисунок 2. Главное окно приложения «Суши Маркет» (вкладка отзыв) |
|||||
Здесь поля для ввода принимают от пользователя информацию, которая |
|||||
проходит |
вал дац ю |
на размер введенного |
текста |
во избежание |
|
перезаполнения ячейки в |
азе данных. |
|
|
||
Валидация реализована встроенными функциями wpf на языке xaml: |
|||||
<TextBox |
x:Name="CommentName" |
MaxLength="100" |
Height="23" |
Canvas.Left="23" |
TextWrapping="Wrap" Text="Имя" Canvas.Top="78" Width="120" UndoLimit="99"/>
Из главного окна получить доступ к функциям привилегированного пользователя не получиться, для этого требуется перейти к окну авторизации (кнопка менеджмент и администрирование), которое потребует от пользователя логин пароль (рисунок 3):
Рисунок 3. Окно авторизации
Для полей «логин» и «пароль» также реализованы ограничения на длину ввода, а символы, вводимые в поле «пароль» скрыты.
Текст пароля, перед отправкой в запрос к базе данных, проходит процесс хеширования и верификации средствами библиотеки BCrypt, описанной выше:
66
foreach (User item in dbUtil.UserList)
{
if (LoginWindow1.UserLogin.Equals(item.Login)
&& BCrypt.Net.BCrypt.Verify(LoginWindow1.UserPassword, item.Password))
{
ActiveUser = item; IsAuthorized = true;
В зависимости от логина, система автоматически определяет роль пользователя в системе и в соответствии с ролью отображает панель
СибАДИадминистратора или менеджера соответственно для каждой из ролей:
if (ActiveUser.Role == "Admin")
{
AdminWindow AdminWindow1 = new AdminWindow(); if (AdminWindow1.ShowDialog() == true)
{
Update();
}
}
else if (ActiveUser.Role == "Manager")
{
ManagerWindow ManagerWindow1 = new ManagerWindow(); if (ManagerWindow1.ShowDialog() == true)
{
Update();
}
}
Управлять учетными записями может только администратор, никакой другой пользователь таких прав не имеет, но администратор не может удалить учетную запись администратора.
Пользователь с ролью «Менеджер» имеет право просматривать изменять список товаров, а также просматривать историю заказов
Все поля приложения имеют встроенную валидацию, а символы полей ввода пароля скрыты.
Авторизация производиться средствами .NET. ля определения роли пользователя, таблица Users имеет атрибут Role.
Доступ к базе данных описан в классе DBUtility. В соответствии с ролью, каждому пользователю определен перечень процедур. Процедуры также хранятся в коде приложения, а не на сервере баз данных, для более безопасного их хранения.
Процедуры приложения предоставлены в таблице
|
|
Таблица 1 |
|
|
Процедуры доступа к базе данных |
||
Название процедуры |
Описание процедуры |
Пользователи, имеющие |
|
доступ к процедуре |
|||
|
|
||
UpdateComments |
Запрос списка коментариев |
Незарегистрированный |
|
|
|
пользователь |
|
AddComment |
Запрос на добавление |
Незарегистрированный |
|
|
очередного комментария в БД |
пользователь |
|
UpdateUsers |
Запрос списка пользователей |
Администратор |
67

|
Название процедуры |
Описание процедуры |
Пользователи, имеющие |
|
|
доступ к процедуре |
|
||
|
|
|
|
|
|
AddUser |
Запрос на добавление |
Администратор |
|
|
|
пользователя в БД |
|
|
|
DeleteUser |
Запрос на удаление пользователя |
Администратор |
|
|
|
из БД |
|
|
|
GetAdminPassword |
Запрос на получение Хеш-кода |
Администратор |
|
|
|
пароля администратора |
|
|
|
СибАДИ |
|
||
|
ChangeAdminPassword |
Запрос на изменение пароля |
Администратор |
|
|
|
администратора |
|
|
|
AddProduct |
Запрос на добавление |
Менеджер |
|
|
|
очередного продукта в БД |
|
|
|
UpdateProducts |
Запрос списка продуктов |
Незарегистрированный |
|
|
|
|
пользователь, менеджер |
|
|
DeleteProduct |
Запрос на удаление продукта из |
Менеджер |
|
|
|
БД |
|
|
|
AddOrder |
Запрос на добавление |
Незарегистрированный |
|
|
|
очередного заказа |
пользователь |
|
|
UpdateOrders |
Запрос списка заказов |
Менеджер |
|
Процедуры представляют собой запрос на языке SQL который принимает определенные параметры. Например, реализация процедуры
UpdateComments() приведена ниже.
CommentList.Clear();
using (SqlCommand CmdCommentUpdate = Connection.CreateCommand())
{
CmdCommentUpdate.CommandText = "SELECT Id, Name, Text FROM
Comments";
using (DbDataReader ServiceReader = CmdCommentUpdate.ExecuteReader())
{
if (ServiceReader.HasRows)
{
while (ServiceReader.Read())
{
CommentList.Add(new Comment
{
Id = ServiceReader.GetInt32(ServiceReader.GetOrdinal("Id")),
Name = ServiceReader.GetString(ServiceReader.GetOrdinal("Name")),
Text = ServiceReader.GetString(ServiceReader.GetOrdinal("Text")) });
}
}
}
}
Так как данные из форм не направляются непосредственно в SQL запрос, а добавляются в список из сущностей, определенных в классе, а только затем направляются в запрос в качестве параметров, никакая из видов инъекций не пройдет.
68
Как видно из примера, при обновлении любого типа данных, так же ведется запись в качестве экземпляров класса и уже в таком виде обрабатывается в системе (идея позаимствована у Entity Framework, описанного выше, но использование его было бы излишним, так как при его применении происходит обособление от БД, что не всегда удобно).
Заключение.
овременный инструментарий для разработки Web-приложений имеет обширные возможности по защите данных. Однако в некоторых случаях целесообразно самостоятельно (в приложении) реализовывать отдельные аспекты защ ты. Это касается разработки небольших по объему ресурсов. Представленная программа написана при помощи современных средств разработки. При ее проектировании были учтены основные аспекты
обеспечен я безопасности приложений. |
|
|
|
|||||
писок л тературы: |
|
|
|
|
|
|||
1. |
|
тат ст |
ка уязв мостей веб-приложений за 2017. [Электронный ресурс] |
|||||
— |
Реж м |
доступа: https://www.ptsecurity.com/ru-ru/research/analytics/web- |
||||||
application-attacks-2018/ |
|
|
|
|
|
|||
2. |
Документац я Майкрософт по .NET Framework. [Электронный ресурс] — |
|||||||
Режим |
доступа: |
https://docs.microsoft.com/ru/dotnet/api/system.security. |
||||||
cryptography. rngcryptoserviceprovider?view=netcore-2.0 |
|
|
||||||
3. |
BCrypt. |
[Электронный |
ресурс] |
— |
Режим |
доступа: |
||
https://ru.wikipedia.org/wiki/Bcrypt |
|
|
|
|||||
СибАДИ |
4.Entity Framework Code First на практике. [Электронный ресурс] — Режим доступа: https://habr.com/post/236037/
5.Казарин О.В. Безопасность программного обеспечения компьютерных систем. Монография. – М.: МГУЛ, 2003. – 212 с.
6.ProfessorWeb.Работа с Entity Framework 6. [Электронный ресурс] — Режим доступа: https://professorweb.ru/my/entity-framework/6/level1
7.Исаев П. Безопасность приложений в Microsoft .NET. [Электронный ресурс] — Режим доступа:https://compress.ru/article.aspx?id=11132
8.Краткое введение в безопасность приложений. [Электронный ресурс] —
Режим доступа: https://habr.com/post/328810/
9.Microsoft.com. Модель криптографии .NET Framework. [Электронный
ресурс] |
— |
Режим |
доступа: |
https://docs.microsoft.com/ru- |
ru/dotnet/standard/security/cryptography-model |
|
69