Реферат: Исследование уровня безопасности операционной системы Linux
Существуют три основных вида угроз:
· Угрозы раскрытия
· Угрозы целостности
· Угрозы отказа в обслуживании
Угроза раскрытия заключается в том, что информация становится известной тому, кому не следовало бы ее знать. В терминах компьютерной безопасности угроза раскрытия имеет место всякий раз, когда получен доступ к некоторой конфиденциальной информации, хранящейся в вычислительной системе или передаваемой от одной системы к другой. Иногда вместо слова "раскрытие" используются термины "кража" или "утечка".
Угроза целостности включает в себя любое умышленное изменение (модификацию или даже удаление) данных, хранящихся в вычислительной системе или передаваемых из одной системы в другую. Обычно считается, что угрозе раскрытия подвержены в большей степени государственные структуры, а угрозе целостности - деловые или коммерческие.
Угроза отказа в обслуживании возникает всякий раз, когда в результате некоторых действий блокируется доступ к некоторому ресурсу вычислительной системы. Реально блокирование может быть постоянным, чтобы запрашиваемый ресурс никогда не был получен, или оно может вызвать только задержку запрашиваемого ресурса, достаточно долгую для того, чтобы он стал бесполезным. В таких случаях говорят, что ресурс исчерпан.
Вывод.
В этой главе был осуществлен обзор основных терминов компьютерной безопасности, рассмотрены такие понятия, как угроза безопасности, уязвимость системы, атака на систему, описаны основные виды атак.
2. Локальная и сетевая безопасность Linux
Linux является сетевой ОС, поэтому провести четкую границу между локальной и сетевой безопасностью очень сложно. Но, поскольку компьютер, на котором установлена ОС Linux, может выступать как в качестве пользовательского компьютера, так и в качестве сервера, подключение его к сети не гарантируется. При отсутствии сети неуместно говорить о сетевой безопасности, потому что сетевой угрозы в принципе не существует. Следовательно, разделение общей безопасности системы на две составляющие вполне целесообразно.
Учитывая все это, можно сделать вывод, что локальная безопасность является обязательной практически в любом случае, кроме тех, когда к компьютеру имеет доступ только один человек – его владелец. Сетевая же безопасность является актуальной только в том случае, когда компьютер с установленной на нем Linux имеет выход в сеть. Сетевая безопасность является дополняющим звеном локальной безопасности, которые вместе определяют общую безопасность системы в целом. В принципе, локальную безопасность можно считать последним барьером в общей безопасности системы.
Локальная безопасность – это правила, меры и усилия, направленные на защиту системы изнутри, от локальных пользователей.
ОС Linux является полноценной многопользовательской системой с простой и распределенной архитектурой. Архитектура ОС Linux приведена на рисунке 2.1.
Рис. 2.1. Структура операционной системы Linux
Linux является многопользовательской системой, и тот факт, что в систему могут иметь одновременный доступ огромное число людей, как доверенных, так и нет, представляется более чем очевидным.
Зачем же необходимо обезопасить систему от локальных пользователей?
Для ответа на этот вопрос сначала рассмотрим, что представляется возможным пользователю, который имеет доступ в систему.
- После входа в систему пользователю выделяется определенная часть машинных ресурсов (дискового пространства, оперативной памяти, процессорного времени и так далее). Хорошо, если ОС изначально настроена на правильное разделение ресурсов. А если нет? Достаточно одному пользователю запустить пару-тройку «тяжелых» программ, как время ожидания для других программ даже на мощной машине может выйти за грань допустимого.
- Существуют программы, которые должен запускать только суперпользователь (пользователь root). Обычно с помощью этих программ осуществляется настройка системных параметров операционной системы, неправильная конфигурация которых может отрицательно отразиться на ее работоспособности. Случайный запуск такой программы обычным пользователем может привести к фатальным последствиям для всей системы в целом.
- «Гуляя» по дереву каталогов на жестком диске, пользователь может попасть в ту часть, в которой ему быть не положено (например, в каталог, где хранятся файлы других пользователей). Личные файлы каждого пользователя должны быть доступны ему и только ему, если, конечно, он сам не решит иначе.
Перечисленные примеры – это лишь малая часть. Иногда, даже сам этого не осознавая, неопытный пользователь может представлять потенциальную угрозу, если ему предоставить неограниченные права. К тому же сама порядочность пользователя – это роскошь, которую в современном мире может себе позволить не каждый.
Теперь рассмотрим, какие же средства предоставляет система Linux для обеспечения локальной безопасности.
2.1. Пользователи и пароли
Пользователь – это человек, пользующийся ресурсами и возможностями, которые ему предоставляет тот или иной сервис. Пользователь не обязан знать все аспекты функционирования этих сервисов, все, что ему необходимо знать – это как пользоваться ими.
В Linux каждый пользователь имеет свой уникальный числовой идентификатор, по которому он идентифицируется в системе. Этому идентификатору для более удобной работы соответствует имя пользователя. Например, для привилегированного пользователя root зарезервирован нулевой идентификатор.
Все имена пользователей Linux и соответствующие им идентификаторы хранятся в специальном файле passwd. Этот файл располагается в каталоге etc, который, в свою очередь, находится в корневом каталоге системы /. Файл имеет обычную текстовую форму.
Пример файла пользовательских имен passwd.
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
Каждая запись в этом файле разделена двоеточиями на 7 частей:
1. Имя пользователя. Это поле содержит имя пользователя. Для операционной системы не важно, какое имя имеет пользователь, система ориентируется на идентификатор, а имя играет, пожалуй, только информационное значение для человека, работающего в системе.
2. Поле пароля. Это поле в ранних версиях Linux содержало зашифрованный пароль, а теперь, когда была введена технология теневых паролей, в этом поле просто ставится x. Практического применения это поле не имеет.
3. Идентификатор пользователя (UID). В системе Linux каждый пользователь имеет уникальный идентификационный номер, который однозначно определяет его в системе. Этот номер используется в различных целях, например, при установке прав доступа на файлы. Права доступа будут рассмотрены в следующем разделе.
4. Идентификатор группы, к которой принадлежит этот пользователь (GID). Концепция групп будет рассмотрена в следующих разделах.
5. Поле комментария. В этом поле может храниться любая дополнительная информация о пользователе, например, его полное имя.
6. Полный путь к домашнему каталогу пользователя. В ОС Linux для каждого пользователя создается его домашний каталог, в котором он может хранить свои документы. Обычно эти каталоги располагаются в директории /home корневого каталога и по умолчанию имеют имена владельцев.
7. Путь к командной оболочке. Последнее поле содержит полный путь к рабочей оболочке пользователя (по умолчанию такой оболочкой является bash). Эта оболочка запускается, когда пользователь проходит процедуру аутентификации. В целях безопасности для системных пользователей в этом поле очень часто ставится /sbin/nologin. В приведенном примере пользователь bin имеет как раз такое значение в поле командного интерпретатора. Сама по себе программа nologin не является оболочкой, единственное ее назначение – не допустить вход в систему. Поэтому при попытке входа под именем пользователя, у которого в качестве рабочей оболочки установлена /sbin/nologin, ничего не происходит. Обычно такой подход используется при создании пользователей, которые являются системными, то есть от имени которых выполняются какие-то действия внутри системы. А поскольку таким пользователям не нужна рабочая оболочка, хорошим решением, с точки зрения безопасности, будет установка поля оболочки в /sbin/nologin. Еще одним распространенным решением в таких ситуациях является установка этого поля в значение /bin/false. Как известно, в Linux, да и в большинстве других операционных систем, успешное завершение программы определяется типом возвращаемого значения. Если возвращается нулевое значение, выполнение программы прошло успешно, если ненулевое – в процессе выполнения программы возникли ошибки. На основе возвращаемого значения система аутентификации делает вывод о том, пройдена ли аутентификация успешно или она «провалилась». false – программа, которая независимо от внешних факторов всегда возвращает значение, отличное от нуля, что в данном случае означает возникновение ошибок при запуске оболочки, и управление снова возвращается системе аутентификации.
При входе в систему программа, предоставляющая доступ, производит чтение информации о пользователях как раз из файла passwd. Право на запись в этот файл имеет только привилегированный пользователь root, читать же его могут все пользователи системы (права доступа описываются в разделе «Особенности файловой системы Linux»).
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15