- •Сборник методических указаний к лабораторным работам
- •Безопасность операционных систем
- •Содержание
- •Лабораторная работа № 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. Библиографический список
IV. Роль реестра при загрузке ос
При загрузке системы анализируются следующие разделы:
HKLM\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run,
HKLM\Software\Microsoft\Windows\CurrentVersion\Run,
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce,
HKLM\Software\Microsoft\Windows\CurrentVersion\Run,
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce,
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce,
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices,
HKCU\Software\Microsoft\Windows\CurrentVersion\Run,
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce,
где HKLM соответствует ветке HKEY_LOCAL_MACHINE, а HKCU — HKEY_CURRENT_USER.
Программы, находящиеся в данных разделах, будут загружены автоматически.
V. Функции api для работы с реестром
Для работы с реестром предусмотрен ряд API функций, позволяющих получать и редактировать информацию, хранящуюся в его разделах, на программном уровне. Таким образом, у злоумышленника появляется ещё одна возможность для совершения несанкционированных действий, направленных на разрушение или дестабилизацию системы.
Важной особенностью Win32 API функций работы с реестром, а также стандартных программ управления реестром является невозможность доступа к разделам реестра, которые были созданы с явным указанием NULL в качестве части имени. Несмотря на видимость этих ключей системе, Regedit и Regedit32 не имеют доступа к таким ключам. При этом, используя Native API (скрытые внутренние функции системы, обычно не документированные), имеется возможность создания и использования таких ключей, что создает потенциальную опасность.
В таблице 1 приведены основные функции Native API для работы с реестром.
Таблица 1. Native API для работы с реестром
Имя |
Win32 API аналог |
Описание |
Примечание |
NtCreateKey |
RegCreateKey |
DDK |
|
NtOpenKey |
RegOpenKey |
DDK |
|
NtDeleteKey |
RegDeleteKey |
DDK |
|
NtDeleteValueKey |
RegDeleteValue |
DDK |
|
NtEnumerateKey |
RegEnumKey, RegEnumKeyEx |
DDK |
|
NtEnumerateValueKey |
RegEnumValue |
DDK |
|
NtFlushKey |
RegFlushKey |
DDK |
|
NtInitializeRegistry |
|
|
Единственный параметр указывает тип загрузки (установка системы или обычная загрузка) |
NtNotifyChangeKey |
RegNotifyChangeKeyValue |
|
|
NtQueryKey |
RegQueryKey |
DDK |
|
NtQueryMultiplValueKey |
RegQueryMultipleValues |
|
|
NtQueryValueKey |
RegQueryValue, RegQueryValueEx |
DDK |
|
NtReplaceKey |
RegReplaceKey |
|
|
NtSaveKey |
RegSaveKey |
|
|
NtRestoreKey |
RegRestoreKey |
|
|
NtSetInformationKey |
|
|
Устанавливает атрибуты раздела |
NtSetValueKey |
RegSetValue, RegSetValueEx |
DDK |
|
NtLoadKey |
RegLoadKey |
|
|
NtLoadKey2 |
|
|
Введена в NT 4.0. Аналогична предыдущей, но позволяет указывать некоторые опции при загрузке |
NtUnloadKey |
RegUnloadKey |
|
|
Следующий фрагмент демонстрирует создание “неправильного” с точки зрения Win32 API ключа.
WCHAR HiddenKeyNameBuffer[] = L"Can't touch me!\0";
KeyName.Buffer = HiddenKeyNameBuffer;
// длина должна включать завершающий NULL
KeyName.Length = wcslen( HiddenKeyNameBuffer ) *sizeof(WCHAR) + sizeof(WCHAR);
InitializeObjectAttributes( &ObjectAttributes, &KeyName,
OBJ_CASE_INSENSITIVE, SysKeyHandle, NULL );
Status = NtCreateKey( &HiddenKeyHandle, KEY_ALL_ACCESS,
&ObjectAttributes, 0, NULL, REG_OPTION_NON_VOLATILE,
&Disposition );
if( !NT_SUCCESS( Status )) {
MessageBox(NULL, "Error: Couldn't create HKLM\\Software\\NULL Key Test\n",”NULL Key Test”, MB_ICONERROR);
exit(1);
}