- •Сборник методических указаний к лабораторным работам
- •Безопасность операционных систем
- •Содержание
- •Лабораторная работа № 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. Библиографический список
7. Библиографический список
1. Олифер В.Г. Сетевые операционные системы: Учеб. пособие для вузов / В.Г. Олифер, Н.А. Олифер .— М.: Питер, 2003. — 544с.
2. Таненбаум Э. Современные операционные системы / Э. Таненбаум.— 2-е изд. — М.: Питер, 2006 .— 1038с.
3. Монадьеми П. Защита от хакеров в Windows XP/ П. Монадьеми, Б. Мюллер; пер. с нем. под ред. С.Н. Банникова.— М.: БИНОМ, 2005 .— 320с.
4. Немет Э. UNIX: Руководство системного администратора/ Э. Немет, Г. Снайдер, С. Сибасс, Т.Р. Хейн. 3-е изд. — М.: Питер, 2003 .— 925с.
Лабораторная работа № 15. Windows PowerShell: работа с системными журналами
1. Цель работы
Получение практических навыков работы с журналами событий ОС Windows с использованием средства автоматизации PowerShell
2. Теоретические сведения
Рассмотрим командлеты PowerShell основанные на .NET, для работы с журналами событий. Начнем с самого простого командлета - Get-EventLog. Он позволяет получать данные и информацию о журналах событий.
# смотрим список имеющихся журналов
Get-EventLog –List
# полученный список можно форматировать (сотмительное удовольствие)
Get-EventLog -List | Format-List *
# или получить сведения по определенному журналу
Get-EventLog -List | Where-Object {$_.Log -eq "Application"} | FL
Поиск событий
Поиск событий выглядит довольно просто т.к. он легко фильтруется через Where-Object. Для понимания того что мы ходит найти вводим
Get-EventLog -Newest 1 -LogName application | Get-Member
видим
Смотрим первый столбик. Отсюда можно взять различные полезности (по имени) для поиска события по его ID и пр.
# Взять 10 последних записей из журнала Application имеющих тип Error
Get-EventLog -Newest 10 -LogName application | Where-Object {$_.EntryType -eq "Error"}
# Взять 100 последних записей из журнала Security с ID 529
Get-EventLog -Newest 100 -LogName security | Where-Object {$_.EventID -eq "529"} | FL
# Взять 100 последних записей из журнала Security только за сегодня
Get-EventLog -Newest 100 -LogName security | Where-Object {$_.TimeGenerated.Date -eq (Get-Date).Date} | FL
# Найти 100 записей из журнала Security за последние 7 дней с кодом 529
Get-EventLog -Newest 100 -LogName security | Where-Object {{$_.TimeGenerated.Date -eq (Get-Date).AddDays(-7)} -and {$_.EventID -eq "529"}}
Просмотр событий на локальном компьютере
Для просмотра событий на локальном компьютере используйте все тот же командлет Get-EventLog с ключом -LogName и указанием имени нужного журнала.
# доступный список журналов получаем с помощью Get-EventLog –List
# для получения последних десяти событий вводим
Get-EventLog -LogName application -Newest 10
# для запроса только ошибок вводим
Get-EventLog -LogName application -Newest 100 -EntryType Error
# для получения информации от определенного источника необходимо ввести
Get-EventLog -LogName application -Newest 100 -source outlook
Просмотр событий на удаленном компьютере
Для получения данных журналов на удаленном хосте используется все тот же командлет Get-EventLog, синтаксис запросов прежний, требуется только указание параметра -ComputerName.
# получаем список журналов с хоста под именем REMOTE_HOST
Get-EventLog -ComputerName REMOTE_HOST -List
Аналогичный функционал можно получить, если использовать WMI-класса Win32_NTEventlogFile
$Logs = Get-WMIOject -Class Win32_NTEventLogFile -Computer REMOTE_HOST
$Logs | FL
Создание собственных журналов
При написании какого-нибудь инструментария ведущего записи в журналах желательно (но необязательно) вести записи в отдельном журнале, имеющем осознанное имя, в моем случае это PsScripts.
New-Eventlog -logname ‘PsScripts’ -Source ‘Logonscript’
Создание записей в журнале
Для создания записей в журнале используется командлет Write-EventLog.
write-eventlog -logname ‘PsScripts’ -Source ‘Logonscript’ -Message ‘Something bad happened’ -id 111
write-eventlog -logname ‘PsScripts’ -Source ‘Logonscript’ -eventID 112 -entrytype Information -message "PsApp added a user-requested feature to the display." -category 1 -rawdata 10,20
Очистка журналов
Для очистки журнала используйте командлет Clear-Eventlog с параметром -LogName
Clear-Eventlog -LogName "Application"
Удаление журналов
Созданный несколькими пунктами ранее журнал при необходимости можно удалить командой.
Remove-Eventlog -logname ‘PsScripts’
Экспорт данных
Для удобства анализа журналов можно их выгружать в CSV-формат.
Get-EventLog -LogName system -newest 100 | Export-Csv -NoTypeInformation D:\Report\1.csv
Правильнее результаты выгружать в обычный текстовый файл.
Get-EventLog -LogName system -newest 100 | Out-File D:\Report\1.csv
Примеры
Резервное копирование файла журнала или журналов в зависимости от поставленной задачи.
# наша цель – журнал Application
$log = gwmi "Win32_NTEventLogFile WHERE LogFileName=’Application’"
# сохраним его в файл
$log.BackupEventlog("D:\Backup\Application-backup.evt")
# второй вариант того же действия
# тот же журнал Application
$logName = "Application"
# куда сохранять результат
$path = "D:\Backup\"
# сформируем имя файла
$exportFile = $logName + (get-date -f yyyyMMdd) + ".evt"
# запрашиваем данные
$logFile = Get-WmiObject Win32_NTEventlogFile | Where-Object {$_.logfilename -eq $logName}
# сохраняем в файл
$logFile.backupeventlog($path + $exportFile)
# остается только назначить задание в планировщике и дописать процедуру очистки журнала.
Рассмотрим работу командлета Get-WinEvent который получает события из журналов и файлов журналов отслеживания событий (файлы созданные средством отслеживания событий для Windows (ETW)), как на локальном компьютере так и на удаленном.
Примечание. Командлет Get-WinEvent работает только в Windows Vista, Windows Server 2008 R2 и последующих версиях Windows. Для работы потребуется установленный Microsoft .NET Framework 3.5 или более поздней версии.
Для начала вызываем комадлет без параметров.
Get-WinEvent
Чтобы прервать выполнение команды нажмите CTRL+C.
Информации много, причем бесполезной. Пора посмотреть детально на то чем мы располагаем и что можем сделать.
Смотрим список всех журналов, имеющиеся на локальном компьютере.
Get-WinEvent -ListLog * | ft -a
Некоторые журналы могут быть пустыми (при выводе они будут только мешать) и поэтому немного видоизменяем запрос
Get-WinEvent -ListLog * | Where {$_.recordcount}
Если нам требуются только «классические» журналы, которых гораздо меньше, для их просмотра используйте:
Get-WinEvent -listlog * | Where {$_.IsClassicLog -eq ‘True’}
Для получения количества событий из определенного журнала используйте:
$events = Get-WinEvent -logname "Windows PowerShell"
$events.count
После получения списков журналов можно продолжить изучение и перейти к поставщикам журналов событий (Provider).
Примечание: Поставщик журнала событий — это программа или служба, которая записывает события в журнал событий.
Посмотреть список всех провайдеров можно командой.
Get-WinEvent -ListProvider *
Определенного поставщика можно задать по имени или по маске.
Get-WinEvent -ListProvider *update*
Get-WinEvent -ListProvider *policy*
Например, все установленные обновления запрашиваются из журнала следующим образом:
$provider = Get-WinEvent -ListProvider Microsoft-Windows-WindowsUpdateClient
$provider.events | ? {$_.description -match "success"} | select id,description | ft -AutoSize
Можно вытянув запрос в строку использовать Events вот так:
(get-winevent -listprovider microsoft-windows-grouppolicy).events | format-table id, description -auto