Файл: Особенности обеспечения безопасности ОС Linux.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.04.2023

Просмотров: 128

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

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

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

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

  1. обзор понятия защиты операционной системы. Многие наверняка слышали этот термин, а также термины, связанные с ним напрямую, например: утечка информации, конфиденциальные данные и пр. В этой работе приводятся основанные на государственных стандартах определения;
  2. определение рассматриваемого объекта. Многие рядовые пользователи видели интерфейс Windows, слышали о Linux, но подкованный в технических вопросах администратор сети должен сделать выбор в пользу конкретной операционной системы. Поможет это сделать небольшой аналитический обзор;
  3. методы, с помощью которых достигается защита операционной системы. Говоря открыто, обеспечение безопасности – это комплекс мер, снижающий определённые риски. В этой работе рассматриваются конкретные риски и методы воздействия на них.

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

Источниками для написания работы и приводимых в работе выводов служат, в первую очередь, учебные пособия для учащихся высших учебных заведений под редакцией таких авторов, как Бакланов В. В., Белов Ю. С., Замятин А. В. и др. Также в список литературы включены публикации отечественных и зарубежных авторов Олифер В. Г. и Олифер Н. А., Бэндл Д., Стюарт Мак-Клар и др. Приводятся ссылки на открытые источники, размещённые в сети интернет, а также используются материалы из конспекта лекций Лихоносова А. Г.


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

Немаловажной особенностью данной работы является использование нормативных устанавливающих документов, таких как ГОСТ Р 50739‑95, ГОСТ Р 51583-2014, группа ГОСТ Р ИСО/МЭК 15408 и др.

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

Обзор операционных систем

Операционная система – совокупный комплекс программного обеспечения, который предоставляет пользователю возможность запускать приложения и управлять ими, а программам – получать доступ к аппаратным ресурсам вычислительной системы [1, p. 3].

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

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

Сама операционная система подразделяется на два уровня – ядро и системные утилиты[1]. Ядро служит для обеспечения функций, указанных выше, в то время как системные утилиты – это инструменты для управления функциями. Обычно ядро состоит из следующих компонентов:

  • система управления сеансами пользователей регистрирует пользователя в операционной системе в начале работы, выполняет хранение информации, необходимой для быстрого доступа через информационное окружение, поддерживает связь сеанса с устройствами, отвечает за завершение сеанса при окончании работы пользователя с системой;
  • система управления процессами распределяет ресурсы между процессами, обеспечивает защиту памяти процессов от модификации другими процессами, реализует механизмы межпроцессорного взаимодействия;
  • файловая система – система, преобразующая физические данные, хранящиеся на накопителях, в логические (файлы и каталоги). Также в функции этой системы входит обеспечение разграничения прав доступа к файлам и каталогам;
  • система ввода-вывода необходима для связи компонентов ядра с логическими устройствами, поддерживаемыми операционной системой. Операционная система сама по себе «не видит» физические компоненты вычислительной системы – они либо представлены адресом ячейки в оперативной памяти, либо связаны посредством специальной программы – драйвера – с аппаратной частью. Более того, для выполнения некоторых функций ОС может создавать собственные логические устройства, функционирующее только внутри ОС, например, системные часы [1, pp. 13-14].

Операционные системы для серверов принято разделять по типу используемого ядра: так называемые Unix-based ОС и Windows. Первые системы получили своё развитие от операционной системы Unix – многозадачной многопользовательской системы, первая версия которой вышла в конце 1960-х годов. Открытость исходного кода привела к широкому разнообразию дистрибутивов. Самым распространённым видом Unix-подобных систем является Linux, основанная на одноимённом ядре, а также библиотеках и прикладных программах проекта GNU. Семейство Linux-дистрибутивов сильно разнообразно, их можно разделить на несколько типов:

  • deb-based системы, к которым относятся такие представители, как Debian и Ubuntu;
  • RPM-bases системы, в которые входят, например, Red Hat Linux, Fedora и OpenSUSE
  • source-based системы, в которых программное обеспечение собирается не из готовых пакетов для установки, а из исходных кодов – Slackware и Gentoo.

Отличительной особенностью операционных систем, основанных на ядре Linux, является то, что практически всё программное обеспечение, включая саму операционную систему, распространяется по бесплатным лицензиям [2].

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

Первые версии Windows не являлись полноценными операционными системами, а по сути представляли собой графический интерфейс для операционной системы MS DOS. Своё же начало эта линейка ведёт отсчёт с середины 1980-х годов, когда вышла в продажу первая версия – Windows 1.0.

Впервые деление на персональные и серверные ОС для Windows началось в 1993 году, когда вышла первая операционная система Windows NT[2] для серверов и корпоративных компьютеров. С этого времени компания Microsoft начала выпуск операционных систем отдельно для персональных компьютеров и/или корпоративных рабочих станций и отдельно для серверного оборудования.

На момент написания работы последней версией персональной операционной системы семейства Windows является Windows 10, а для серверов – Windows 2019 Server[3].

Среди персональных (или, так называемых десктопных) операционных систем явно превалирует Windows. Портал Net Marketshare приводит аналитику использования операционных систем:

Рисунок 1 Статистика использования десктопных ОС
по данным портала Net Marketshare[4]


На графике видно, что популярнейшие на момент написания работы операционные системы Windows 7 и Windows 10 занимают примерно 78% рынка. По данным этого же портала суммарная доля ОС Windows составляет 86%.

Что касается использования операционной системы на серверном оборудовании, то здесь ситуация сильно отличается от того, что мы видим в десктопном сегменте. Аналитическое агентство W3Cook приводит статистику установок различных операционных систем на web-серверах: доля ОС Windows составляет 1,86%, в то время как Linux – 98,14%[5]. Объясняется это достаточно просто: продукт компании Microsoft является коммерческим, в то время как и дистрибутивы Linux, и программное обеспечение для этой ОС в своём большинстве бесплатны.

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

Точкой отсчёта создания ОС Unix принято считать 1969 год – программисты лаборатории Bell Labs компании AT&T для решения задач лаборатории разработали для рабочего компьютера PDP‑7 операционную систему на языке ассемблер. Интересным является тот факт, что изначально широкое распространение этой ОС не планировалось. В силу того, что ассемблерные коды привязаны к архитектуре (у разных производителей процессоров свой набор инструкций), энтузиастами код был переписан на языке Си, что открыло возможности для кроссплатформенного использования.

В середине 1970-х годов студентами калифорнийского университета в Беркли был выпущен свой релиз версии Unix. Причиной отдельной версии ОС являлось то, что в изначальном варианте Unix не было встроенной поддержки сетевого взаимодействия между разными рабочими станциями. Операционная система, разработанная в университете Беркли, получила название BSD (аббревиатура от англ. Berkley Software Distribution). Данный этап по сути задал два различных вектора развития Unix: коммерческие продукты, выпускаемые под лицензией, основанной на пятой редакции выпуска Unix (т. н. System V), и Unix BSD [1, p. 5].

В настоящее время клоны Unix очень широко распространены. Достигается это благодаря нескольким существенным особенностям:

  • системы как правило обладают кроссплатформенностью;
  • полная, а порой избыточная, документация на всё поставляемое программное обеспечение;
  • гибкая система настройки;
  • повсеместно внедряемый графический интерфейс;
  • дополнительные модули для запуска приложений конкурирующих операционных систем [3, p. 4].

Тем не менее, Unix-подобные системы не лишены и недостатков, среди которых, например, сложность администрирования, вызванная такими факторами, как:

  • неочевидное разграничение прав доступа пользователей для доступа к конфиденциальной информации;
  • требуемая квалификация, обуславливающаяся чрезвычайно большим количеством команд и их параметрами;
  • большое разнообразие сборок операционных систем делает управление программами сложной задачей [4, p. 6];
  • неограниченные полномочия администратора, что дополнительно усложняет процесс устранения возможных ошибок [3, p. 5].

Нормативная база

Государственный стандарт ГОСТ Р 53622-2009 «Информационные технологии (ИТ). Информационно-вычислительные системы. Стадии и этапы жизненного цикла, виды и комплектность документов» определяет это понятие следующим образом: «Информационно-вычислительная система (программно-технический комплекс) – это совокупность данных (баз данных) и программ, функционирующих на вычислительных средствах как единое целое для решения определённых задач[6]» [5]. Поэтому любую операционную систему можно рассматривать как часть информационной системы[7][8] [6].

Любая информационная система вместе с находящимися в ней данными должна иметь три важнейших свойства: конфиденциальность, целостность и доступность[9] [7]. При этом в ГОСТ Р ИСО/МЭК 15408-1-2012 «Информационная технология (ИТ). Методы и средства обеспечения безопасности. Критерии оценки безопасности информационных технологий. Часть 1. Введение и общая модель» под конфиденциальностью понимается защита информации от несанкционированного раскрытия, под целостностью – защита от несанкционированной модификации, а под доступностью – защита от потери возможности её использования[10] [6].

Понятие безопасности информационной системы, а точнее, её защищённости, описано в стандарте ГОСТ Р 50739-95 «Средства вычислительной техники. Защита от несанкционированного доступа к информации. Общие технические требования» и включает в себя выполнение одновременное трёх требований:

  1. однозначно определённые и непротиворечивые правила разграничение доступа;
  2. регистрация событий, имеющих отношение к безопасности;
  3. гарантии того, что выполняются первые два требования[11] [8].