Диплом: Проект комплекса информационной безопасности предприятия ООО «Чистое небо»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
65
Для управления и контроля информационно-технической безопасности
разработано множество нормативно-правовых документов, которые
представлены в таблице 17, и направлены они на обеспечение технологической
безопасности.
Таблица 17
Стандарты, регламентирующие качество программных средств
Номер документа
Описание
ISO 9126:1991. ИТ.
Оценка программного продукта. Характеристики качества и
руководство по их применению.
ISO 09000 -3:1991.
Общее руководство качеством и стандарты по обеспечению
качества. Ч. 3: Руководящие указания по применению ISO
09001 при разработке, поставке и обслуживании
программного обеспечения.
ISO 12207:1995.
Процессы жизненного цикла программных средств.
ANSI/IEEE 829 –
1983.
Документация при тестировании программ.
ANSI/IEEE 1008 –
1986.
Тестирование программных модулей и компонент ПС.
ANSI/IEEE 1012 –
1986.
Планирование проверки (оценки) (verification) и
подтверждения достоверности (validation) программных
средств.
ГОСТ Р ИСО 7498-2-
99
Информационная технология. Взаимосвязь открытых
систем. Базовая эталонная модель. Часть 2. Архитектура
защиты информации
ГОСТ Р ИСО/МЭК
9594-8-98
Информационная технология. Взаимосвязь открытых
систем. Справочник. Часть 8. Основы аутентификации
ГОСТ Р ИСО/МЭК
9594-9-95
Информационная технология. Взаимосвязь открытых
систем. Справочник. Часть 9. Дублирование.
ГОСТ Р 50739-95
Средства вычислительной техники. Защита от
несанкционированного доступа к информации. Общие
технические требования
ГОСТ 28147-89
Системы обработки информации. Защита
криптографическая. Алгоритм криптографического
преобразования
ГОСТ Р 34.10-94
Информационная технология. Криптографическая защита
информации. Процедуры выработки и проверки
электронной подписи на базе асимметричного
криптографического алгоритма
2.1.2. Организационно-административная основа создания системы
обеспечения информационной безопасности и защиты информации
предприятия.
66
Организационно-административным основанием системы обеспечения
информационной безопасности и защиты информации предприятия является
решение создания защищенной информационной системы, которая позволит
сохранять информацию о деятельности информации, при этом, безопасность
данных системы будет обеспечена за счет программных алгоритмов ограничения
доступа к информационным ресурсам, как средствами приложения, так и
средствами ограничения прав пользователей базы данных, также за счет
технологий виртуализации серверной архитектуры, которая позволит размещать
компоненты системы на разных серверах (контейнерах), разобщая таким
образом целостную систему, что позволит усложнить определение направление
атаки на информационные ресурсы предприятия.
2.2. Комплекс проектируемых программно-аппаратных средств
обеспечения информационной безопасности и защиты информации
предприятия.
2.2.1 Структура программно-аппаратного комплекса информационной
безопасности и защиты информации предприятия.
Одним из элементов структуры программно-аппаратного комплекса
информационной безопасности и защиты информации является технология
виртуализации. Следует отметить, что технология виртуализации -
предоставление вычислительных ресурсов, абстрагированное от их реальной
аппаратной реализации, например, одновременное выполнение нескольких,
изолированных друг от друга, операционных систем (ОС) и приложений на
одном компьютере. Совокупность компьютерных ресурсов, эмулирующую
работу отдельных компонентов аппаратного или программного обеспечения
(ПО), или даже целого компьютера, принято называть виртуальной машиной
(ВМ). Наличие нескольких ВМ на одном реальном компьютере обеспечивает
возможность независимой работы на одном физическом сервере (узле)
нескольких операционных систем и приложений.
67
Виртуализация может улучшить адаптивность, гибкость и
масштабируемость ИТ-среды и существенно снизить расходы. Виртуализация
позволяет более эффективно использовать вычислительные мощности и
совместно использовать ресурсы различных аппаратных устройств при
обслуживании многопользовательских клиентов. Помимо этого, виртуализация
способствует ускоренному развертыванию рабочих нагрузок, увеличивает их
производительность и открытость, позволяет автоматизировать множество
операций.
В настоящее время существует две основных технологии создания систем
облачных вычислений, основанные на виртуализации серверов (рис. 9).
Рис. 9. Сравнение двух технологий виртуализации
В первом подходе виртуализация осуществляется с помощью
гипервизора - программной надстройки над основной ОС, которая отделяет
виртуальные машины от сервера и по мере необходимости динамически
выделяет вычислительные ресурсы каждой ВМ (Amazon, Azure, VMWare).
Использование данного подхода не является строгим требованием и существует
второй способ, использующий изолированные контейнеры (OpenVZ, LXC
(LinuxContainers), Docker). В каждом из этих подходов есть как свои
преимущества, так и недостатки. Подход с использованием виртуализации
68
позволяет запускать в облаке ОС любых производителей, но теряя при этом в
производительности от 8 до 12 процентов по сравнению с использованием
физического сервера. Второй подход выгоднее с точки зрения вычислительной
производительности системы и экономии дисковых ресурсов, так как
контейнеры используют ядро основной системы. Для реализации этой
возможности выбрано решение Docker. Docker это программная платформа для
быстрой разработки, тестирования и развертывания приложений. Docker
упаковывает ПО в стандартизованные блоки, которые называются
контейнерами. Каждый контейнер включает все необходимое для работы
приложения: библиотеки, системные инструменты, код и среду исполнения.
Благодаря Docker можно быстро развертывать и масштабировать приложения в
любой среде и сохранять уверенность в том, что код будет работать.
В основе работы Docker лежит стандартизированный способ исполнения
кода. Docker – это операционная система для контейнеров. Подобно тому как
виртуальная машина создает виртуальное представление аппаратного
обеспечения сервера (то есть устраняет необходимость непосредственно
управлять таковым), контейнеры создают виртуальное представление серверной
операционной системы.
Использование Docker позволяет быстрее и эффективнее доставлять или
перемещать код, стандартизирует выполняемые приложениями операции и в
целом экономит средства, оптимизируя использование ресурсов. Благодаря
Docker можно получить объект, который с высокой надежностью запускается на
любой платформе. Простой и понятный синтаксис Docker обеспечивает полный
контроль над выполняемыми операциями.
Контейнер — легковесная виртуальная машина и имеет такие свойства
виртуальный машины как:
– собственное пространство процессов;
– собственные сетевые интерфейсы;
– возможность запускать приложения под суперпользователем;
69
– возможности отдельной операционной системы - установка
программных пакетов;
– возможность запуска сервисов и демонов, фоновых программ.
Отличаются контейнеры от виртуальных машин следующим:
– использование ядра хостовой системы;
– не может запустить операционную систему другой архитектуры или
использующую другое ядро;
– не может иметь своих модулей ядра;
– не требует запуска главного init процесса под первым pid;
– не требует каких-либо стандартных фоновых процессов для нормаль
– ной работы таких как cron, systemd и т. п.
С точки зрения хостовой системы процессы запущенные в контейнере –
это просто запущенные процессы, как и любые другие. Изначально контейнеры
в Linux появились с проектом LXC. Тогда интересующая задача была разбросана
по ядру с доступом через разрозненные интерфейсы (API). С появлением
контрольных групп cgroups код стал более связный, а программный ин терфейс
более унифицированный, добавилась и документация с множеством примеров.
Cgroups позволили управлять доступностью таких ресурсов как:
– память;
– процессор
– блочные устройства ввода-вывода;
– сеть (с помощью iptables/tc).
Общая картина устройства контрольных групп:
– каждая подсистема древовидно иерархична (память, процессор и т.
п.);
– иерархии независимы между собой (например, деревья для памяти и
процессора могут различаться);
– каждый процесс принадлежит только одному узлу иерархических
деревьев (можно представить каждую иерархию системой отсчета в
многомерном пространстве, а процесс точкой в этом пространстве);
70
– каждая иерархия ведет свое начало от главного, корневого узла;
– все процессы изначально принадлежат к корневому процессу каждой
иерархии;
– каждый узел является группой процессов делящими между собой
общие для этих процессов ресурсы.
Изоляция посредством пространства имён контрольных групп
предоставляет возможность разделять процессы между собой таким образом, что
они не "видят" ресурсы соседних контрольных групп, что представляет собой
легковесную виртуальную машину (контейнер). Легковесную т. к. работает всё
на едином ядре.
Работать с пространствами имён контрольных групп и самими
контрольными группами можно напрямую /sys/fs/cgroup/, что представляет
собой ряд неудобств, однако, с появлением Docker механизм значительно
упростился. Docker предоставил механизмы упаковки программного
обеспечение, распространения и запуска. Образ контейнера Docker представляет
собой легковесный, отдельный, запускаемый пакет программного обеспечения,
который включает всё необходимое для своего запуска: исполняемые файлы,
системные утилиты, системные библиотеки, настройки, окружение. Доступна
технология как на Linux, так и на Windows. Программное обеспечение,
упакованное в подобный контейнер, запускается везде одинаково, независимо от
окружения хостовой системы. Для разработчика программного обеспечение
Docker означает:
– чистое, надёжное и безопасное окружение для приложения;
– нет волнений о недостающих зависимостях, библиотеках и подобном,
– ведь в образ всё необходимое ставишь сам;
– запуск образа в отдельном контейнере позволяет запускать
параллельно множество версий одного и того же программного
обеспечения с разными библиотеками и прочими зависимостями;
– автоматизация тестирования, внедрения, упаковки;
71
– снижает, а порой устраняет обеспокоенность о совместимости
программного обеспечения на разных платформах т. к. основные
требования – это архитектура и версия Linux ядра;
– отсутствие избыточного потребления ресурсов по сравнению с
тяжеловесными виртуальными машинами.
Для информационного ресурса организации, архитектура которого будет
простроена при помощи Docker, необходим контроль доступа, а также
механизмы, ограничивающие доступ к системе. В связи с этим необходимо
реализовать способы регистрации работников организации в системе и
последующие их авторизации для получения доступа к возможностям системы.
Так, алгоритм регистрации пользователей является важной частью современного
веб-приложения, которое обеспечивает безопасность системы. Регистрация
позволяет пользователю внести в систему свои данные, и таким образом,
приложение будет выделять пользователя среди других, и предоставлять
определенный функционал и возможности для конкретного пользователя в
случае авторизации по регистрационным данным. Рассмотрим алгоритм
регистрации пользователя в системе (рис. 10).
72
Начало
Форма регистрации
пользователя
Ввод
регистрационных
данных
Допустимые
данные
Сохранение данные
пользователя
Сообщение о
недопустимых данных
(неверные символы,
логин занят)
Нет
Да
Конец
Хеширование пароля
Рис. 10. Алгоритм регистрации на сайте
После регистрации пользователя, алгоритмом, который дает возможность
использовать регистрационные данные и авторизоваться на сайте, является
алгоритм авторизации пользователей (Приложение А). Рассмотрим более
подробно данный алгоритм и способ его осуществления.
В алгоритме предусмотрена «соль», которая генерируется исходя из
количества символов в логине пользователя. Для каждого пользовательского
пароля (при его регистрации), создается своя соль и записывается в базу рядом с
паролем, чтобы использовать при хешировании и последующем сравнении хеша
данных авторизации пользователей.
73
Плюсы алгоритма и метода авторизации рядовых пользователей:
- снижены требования к паролю пользователей;
- исключен метод подбора и дешифрования пароля пользователя;
- отсутствие возможности авторизации через сторонние сервисы;
- частный подход к алгоритмам шифрования.
Процесс работы над модулем регистрации показан на рис. 11.
Рис. 11. Прием и запись данных регистрации
После приема данных из POST параметров осуществляется обработка
введенных через форму данных (рис. 12) с помощью методов класса
RegistrationForm.php (рис. 13).
74
Рис. 12. Создание формы регистрации в системе
В классе регистрации задаются свойства и осуществляется обработка
данных регистрации в методах:
private $email;
private $username;
private $usersecondname;
private $password;
private $passwordConfirm;
public function validate();
public function passwordsMatch.
Также там заданы геттеры и сеттеры для упрощения доступа к свойствам
через эти методы из формы регистрации и конструктора класса.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран