- •Сборник методических указаний к лабораторным работам
- •Безопасность операционных систем
- •Содержание
- •Лабораторная работа № 1. Получение информации о конфигурации компьютера
- •1. Цели работы
- •2. Теоретические сведения
- •1. Реестр Windows
- •2. Использование функций Windows api
- •3. Использование wmi-интерфейса
- •7. Библиографический список
- •Лабораторная работа № 2. Командные интерпретаторы posix-совместимых операционных систем
- •1. Цели работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 3. Работа с файлами и каталогами в ос Unix
- •1. Цель работы
- •2. Теоретические сведения
- •Ino_t d_ino; /* номер индексного дескриптора */
- •Int closedir (dir *dirptr); /* dirptr - дескриптор каталога */
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 4. Структура системы управления вводом-выводом в ос Unix
- •1. Цели работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 5. Работа с процессами в ос Unix. Сигналы и каналы в Unix
- •1. Цель работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 6. Базовые технологии безопасности операционных систем
- •1. Цель работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 7. Парольная политика безопасности операционных систем
- •1. Цель работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 8. Оценка защищенности nt-системы: безопасность файловой системы, права доступа, квоты, связи и их настройка
- •1. Цель работы
- •2. Теоретические сведения Особенности файловой системы ntfs
- •3. Контроль доступа к файлам и каталогам
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 9. Оценка защищенности nt-системы: защита реестра
- •1. Цель работы
- •2. Теоретические сведения
- •I. Организация реестра
- •II. Дублирование подразделов в разных ветвях
- •III. Файлы system.Dat и user.Dat
- •IV. Роль реестра при загрузке ос
- •V. Функции api для работы с реестром
- •VI. Основные вредительские действия, связанные с изменением реестра
- •VII. Проблемы защиты реестра Windows
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 10. Методы и средства несанкционированного доступа к ресурсам ос
- •1. Цель работы
- •2. Теоретические сведения
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 11. Оценка защищенности nt-системы: политика безопасности в области паролей и аудита
- •1. Цель работы
- •2. Теоретические сведения
- •I. Пароли
- •II. Получение хэшей паролей
- •III. Системный аудит
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 12. Администрирование ос Windows с помощью средства автоматизации Microsoft PowerShell
- •1. Цель работы
- •2. Теоретические сведения
- •Первый запуск
- •Справка
- •Практика
- •Установка уровня политики ExecutionPolicy
- •Редактирование скриптов
- •Создание запланированных заданий
- •7. Библиографический список
- •Лабораторная работа № 13. Windows PowerShell: управление компьютером
- •1. Цель работы
- •2. Теоретические сведения Управление сеансами пользователей
- •Управление питанием
- •Сбор информации о системе
- •Получение данных об установленных приложениях и заплатках
- •Установка по
- •Обновление по
- •Удаление по
- •Просмотр списка служб
- •Практика
- •Настройка сервисов
- •Создание локальных процессов
- •Создание удаленных процессов
- •Завершение неотвечающих процессов
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
- •Лабораторная работа № 14. Windows PowerShell: работа с файлами, папками и реестром
- •1. Цель работы
- •2. Теоретические сведения Работа с файлами и папками
- •Практика
- •Создание дополнительных дисков
- •Поиск в реестре
- •Примеры
- •Удаленный реестр
- •Правка реестра
- •7. Библиографический список
- •Лабораторная работа № 15. Windows PowerShell: работа с системными журналами
- •1. Цель работы
- •2. Теоретические сведения
- •Поиск событий
- •Просмотр событий на локальном компьютере
- •Просмотр событий на удаленном компьютере
- •Фильтрация событий
- •Получение данных из файла
- •Экспорт данных
- •Работа с удаленными компьютерами
- •3. Оборудование
- •4. Задание на работу
- •5. Оформление отчета
- •6 Контрольные вопросы
- •7. Библиографический список
3. Оборудование
Персональный компьютер с установленной операционной системой Unix или Linux.
4. Задание на работу
Составьте и выполните shell - программы, включающей следующие действия:
1. Вывод на экран списка параметров командной строки с указанием номера каждого параметра.
2. Присвоение переменным А, В и С значений 10, 100 и 200, вычисление и вывод результатов по формуле D=(A*2 + B/3)*C.
3. Формирование файла со списком файлов в домашнем каталоге, вывод на экран этого списка в алфавитном порядке и общего количества файлов.
4. Переход в другой каталог, формирование файла с листингом каталога и возвращение в исходный каталог.
5. Запрос и ввод имени пользователя, сравнение с текущим логическим именем пользователя и вывод сообщения: верно/неверно.
6. Запрос и ввод имени файла в текущем каталоге и вывод сообщения о типе файла.
7. Циклическое чтение системного времени и очистка экрана в заданный момент.
8. Циклический просмотр списка файлов и выдача сообщения при появлении заданного имени в списке.
5. Оформление отчета
Отчет должен содержать:
название и цель работы;
вариант задания;
результаты работы созданных скриптов;
листинги скриптов, реализующих задание.
6 Контрольные вопросы
6.1. Какое назначение имеют shell - файлы?.
6.2. Как создать shell - файл и сделать его выполняемым?
6.3. Какие типы переменных используются в shell - файлах?
6.4. В чем заключается анализ цепочки символов?
6.5. Какие встроенные команды используются в shell - файлах?
6.6. Как производится управление программами в командном интерпретаторе Unix?
6.7. Назовите операторы создания циклов в языке командного интерпретатора.
7. Библиографический список
1. Забродин Л.Д. UNIX. Введение в командный интерфейс. – М.: ДИАЛОГ-МИФИ, 1994. – 144 с.
2. Дансмур М., Дейвис Г. Операционная система UNIX и программирование на языке Си: Пер. с англ. – М.: Радио и связь, 1989. – 192 с.
3. Керниган Б.В., Пайк Р. UNIX – универсальная среда программирования: Пер. с англ. – М.: Финансы и статистика, 1992. – 304 с.
4. Робачевский А.М. Операционная система UNIX. – СПб.: BHV – Санкт-Петербург, 1997. – 528 с.
5. Т.Чан Системное программирование на C++ для UNIX. /Пер. с англ. -К.: Издательская группа BHV, 1997. - 592 с.
Лабораторная работа № 3. Работа с файлами и каталогами в ос Unix
1. Цель работы
Ознакомиться с файловой системой ОС UNIX, механизмами ее функционирования, основными элементами файловой системы: суперблок, описатели файлов, типы файлов, список свободных описателей файлов, список свободных блоков.
2. Теоретические сведения
Интерфейс между пользовательской программой и внешним устройством (или между двумя пользовательскими программами) в ОС UNIX осуществляется в рамках единой структуры данных, называемой файлом ОС UNIX.
Всякий файл ОС UNIX в соответствие с его типом может быть отнесен к одной из следующих четырех групп: обычные файлы, каталоги, специальные файлы, каналы.
Обычный файл представляет собой совокупность блоков диска, входящих в состав файловой системы ОС UNIX. В указанных блоках может быть произвольная информация.
Каталоги представляют собой файлы особого типа, отличающиеся от обычных, прежде всего, тем, что осуществить запись в них может только ядро ОС UNIX, в то время как доступ по чтению может получить любой пользовательский процесс, имеющий соответствующие полномочия. Каждый элемент каталога состоит из двух полей: поля имени файла и поля, содержащего указатель на описатель файла, где хранится вся информация о файле: дата создания, размер, код защиты, имя владельца и т.д. В любом каталоге содержится, по крайней мере, два элемента, содержащие в поле имени файла имена "." и "..". Элемент каталога, содержащий в поле имени файла контекст ".", в поле ссылки содержит ссылку на описатель файла, описывающий этот каталог. Элемент каталога, содержащий в поле имени файла контекст "..", в поле ссылки содержит ссылку на описатель файла, в котором хранится информация о родительском каталоге текущего каталога.
Специальные файлы - это некоторые файлы, каждому из которых ставится в соответствие свое внешнее устройство, поддерживаемое ОС UNIX и имеющее специальную структуру. Его нельзя использовать для хранения данных, как обычный файл или каталог. В то же время над специальным файлом можно производить те же операции, что и над обычным файлом: открывать, вводить и/или выводить информацию и т.д. Результат применения любой из этих операций зависит от того, какому конкретному устройству соответствует обрабатываемый специальный файл, однако в любом случае будет осуществлена соответствующая операция ввода-вывода на внешнее устройство, которому соответствует выбранный специальный файл.
Четвертый вид файлов - каналы - будет рассмотрен отдельно в последующих лабораторных работах.
Cистемные функции ОС UNIX для работы с файловой системой
Возвращают дескриптор файла |
open, creat, dup, pipe, close |
Преобразуют имя в описатель |
open, creat, chdir, chmod, stat, mkfifo, mound, mknod, link, unmount, unlink, chown |
Назначают inode |
creat, link, unlink, mknod |
Работают с атрибутами |
chown, chmod, stat |
Ввод/вывод из файла |
read, write, lseek |
Работают со структурой файловой системы |
mount, unmount |
Управляют деревьями |
chmod, chown |
Остановимся на тех из них, которые требуются для выполнения лабораторной работы. Для получения информации о типе файла необходимо воспользоваться системными вызовами stat() (fstat()). Формат системных вызовов stat() (fstat()):
#include <sys/types.h>
#include <sys/stat.h>
int stat(const char *name, struct stat *stbuf);
int fstat(int fd, struct stat *stbuf);
Оба системных вызова помещают информацию о файле (в первом случае специфицированном именем name, а во втором - дескриптором файла fd) в структурную переменную, на которую указывает stbuf. Вызывающая функция должна позаботиться о резервировании места для возвращаемой информации; в случае успеха возвращается 0, в противном случае -1 и код ошибки в errno. Описание структуры stat содержится в файле sys/stat.h. С небольшими модификациями она имеет вид:
struct stat
{
dev_t st_dev; /* device file */
ino_t st_ino; /* file serial inode */
ushort st_mode; /* file mode */
short st_nlink; /* number of links */
ushort st_uid; /* user ID */
ushort st_gid; /* group ID */
dev_t st_rdev; /* device ident */
off_t st_size; /* size of file */
time_t st_atime; /* last access time */
time_t st_mtime; /* last modify time */
time_t st_ctime; /* last status change */
};
Поле st_mode содержит флаги, описывающие файл. Флаги несут следующую информацию:
S_IFMT 0170000 – тип файла
S_IFDIR 0040000 – каталог
S_IFCHR 0020000 – байт-ориентированный специальный файл
S_IFBLK 0060000 – блок-ориентированный специальный файл
S_IFREG 0100000 – обычный файл
S_IFFIFO 0010000 – дисциплина FIFO
S_ISUID 04000 – идентификатор владельца
S_ISGID 02000 – идентификатор группы
S_ISVTX 01000 – сохранить свопируемый текст
S_ISREAD 00400 – владельцу разрешено чтение
S_IWRITE 00200 – владельцу разрешена запись
S_IEXEC 00100 – владельцу разрешено выполнение
Символьные константы, четыре первых символа которых совпадают с контекстом S_IF, могут быть использованы для определения типа файла.
Большинство системных вызовов, работающих с каталогами, оперируют структурой dirent, определенной в заголовочном файле <dirent.h>.
struct dirent
{