Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Несколько слов о безопасности симметричных криптосистем
Забегая вперед, обратим внимание, что для криптоанализа симметричных систем разработано множество методов: · метод полного перебора ключей, · методы криптоанализа с использованием теории статистических решений, · разностный криптоанализ и его модификации, · линейный криптоанализ. С помощью данных методов осуществлены эффективные криптоатаки на большинство симметричных криптосистем. Безопасность симметричных криптосистем определяется двумя факторами: · стойкостью самого алгоритма, · длиной ключей. Критерием качественного шифрования служит следующий принцип: стойкость шифра должна определяться только секретностью ключа (правило Кирхгоффса -Dutchman A. Kerckhoffs).
Отчет по лабораторной работе должен содержать следующие сведения: 1. Титульный лист. 2. Цель работы. 3. Теоретическое введение. 4. Техническое задание. 5. Анализ ТЗ. 6. Схемы алгоритмов. 7. UML-диаграммы (более 3-х). 8. Модульная структура программы. 9. Спецификация на программные модули. 10. Результаты тестирования (2-3 теста). 11. Экранные формы работающей программы. 12. Листинг разработанной программы с комментариями (в приложении). 13. Результаты работы программы (выводы о проделанной работе). 4.2 Задания для самостоятельной работы 1. Ознакомьтесь с теоретическими основами шифрования данных. 2. Вариант задания по номеру в журнале. 3. Напишите программу согласно варианту задания. 4. Отладьте разработанную программу и покажите результаты работы программы преподавателю. 5. Составьте по лабораторной работе отчет. Таблица 4. 1 – Индивидуальные задания к лабораторной работе № 4
Продолжение табл. 4.1
4.3 Контрольные вопросы 1. Перечислите основные обратимые операции, используемые в образующих функциях блочных шифров. 2. Поясните, что такое сеть Фейштеля? В чем ее основные достоинства? 3. Опишите, какие параметры блочных шифров влияют на его криптостойкость?
4. Какие блочные шифры, построенные по принципу сети Фейштеля, вам известны? 5. Проведите сравнительный анализ алгоритмов ГОСТ 28147-89 и Rijndael. 6. Проведите сравнительный анализ режимов шифрования CBC и ECB. 7. Проведите сравнительный анализ режимов шифрования CBC и CFB. 8. Общая схема алгоритма шифрования DES. 9. Почему длина ключа для алгоритма DES равна 56 бит? 10. В чём заключается процесс расшифрования данных в DES? 11. Как используется заданный ключ при шифровании в алгоритме ГОСТ? 12. Общие черты и отличия алгоритмов ГОСТ и DES. 13. Критерии оценки свойств лавинного эффекта.
ЛАБОРАТОРНАЯ РАБОТА № 5. ВЗАИМОДЕЙСТВИЕ С ЖУРНАЛАМИ СОБЫТИЙ ОС WINDOWS Цель работы: изучение методов работы с системными журналами; отслеживание событий записи в системные журналы. Теоретическое введение В ОС Windows предусмотрена запись всех важных событий, происходящих в операционной системе, в журналы событий (Event Logs). Просмотреть информацию в журнале событий можно при помощи встраиваемой консоли Event Viewer в Microsoft Management Console (MMC). Как минимум, в системе ведется три отдельных журнала: Application (журнал приложений), Security (журнал безопасности) и System (системный журнал). Окно Event Viewer представлено на рисунке 2.
Рисунок 2 – Окно Event Viewer
Журнал приложений хранит важные события, связанные с конкретным приложением. Журнал безопасности хранит события, связанные с безопасностью. Например, вход - выход из системы, использование и изменение привилегий пользователей и групп, обращение к ресурсам. Системный журнал хранит события операционной системы или ее компонентов. Например, неудачи при запуске служб или инициализации драйверов, общесистемные сообщения и прочие сообщения, относящиеся к операционной системе в целом. Поля в записях журналов событий имеют следующее значение: · Тип (Type). Поле «Тип» может принимать следующие значения – Уведомление (Information), Предупреждение (Warning) или Ошибка (Error). Уведомление (Information) – успешная операция. Предупреждение (Warning) – проблема, не требующая немедленного решения. Ошибка (Error) – серьезная проблема. В журнале безопасности встречаются еще два типа событий – Аудит успехов (SuccessAudit) и аудит отказов (FailureAudit).
· Дата (Date). Показывает дату и время, когда произошло событие. · Источник (Source). Имя программного обеспечения, которое протоколирует событие. · Категория (Category). Может быть определена для фильтрации событий. Категории определяются источником событий. · Идентификатор события (Event identifier). Специфицирует определенное сообщение о событии. Значение идентификатора зависит от версии ОС Windows.
В NET предусмотрены классы, при помощи которых можно взаимодействовать с журналами событий программным образом. Данные классы определены в пространстве имен System.Diagnostics и описаны в таблице 5.1.
Таблица 5. 1 – Классы System.Diagnostics, предназначенные для работы с журналами событий
Экземпляры класса EventLog позволяют создавать новые журналы событий, записывать события в журналы событий, производить очистку журналов событий, считывать записи журнала событий, реагировать на появление в журнале новых записей. Основные свойства и методы класса EventLog приведены в таблице 5.2.
Таблица 5. 2 – Основные свойства и методы класса EventLog
Примеры работы с журналами событий приведены в подразделе 5.2.
Примеры программирования
На рисунке 3 представлена форма приложения для работы с журналами.
Рисунок 3 – Окно приложения для работы с журналами событий
Приведено описание используемых в приложении элементов управления в таблице 5.3.
Таблица 5. 3 – Элементы управления приложения для работы с журналами событий
Последовательность программирования приложения: 1. Для работы с журналами событий необходимо подключить пространство имен System.Diagnostics: using System.Diagnostic. 2. Объявление глобальных переменных: public EventLog[] elogs; public EventLog securitylog, eventLog; где elogs – массив, содержащий информацию о всех журналах событий в системе; securitylog – журнал безопасности. Используется для перехвата событий записи в журнал безопасности Security; eventLog – системный журнал. Используется для перехвата событий записи в системный журнал System.
3. Для события Click кнопки button1 (Получить список журналов) пишем следующий программный код: //--------------------------------------------- // Получение списка доступных журналов //--------------------------------------------- private void button1_Click(object sender, EventArgs e) { // Очистка дерева logTreeView; logTreeView.Nodes.Clear();
// Создание дерева журналов TreeNode InfoNode = new TreeNode(); InfoNode.Text = "Список доступных журналов событий"; // Создание корневого элемента дерева logTreeView.Nodes.Add(InfoNode); // Создание массива записей о всех журналах
elogs = EventLog.GetEventLogs(); // Вывод в цикле информации о каждом журнале foreach (EventLog elog in elogs) { logTreeView.Nodes[0].Nodes.Add(elog.Log.ToString() + " (" + elog.LogDisplayName.ToString() + ")");
elog.Close(); } // Очистка массивазаписей о всех журналах elogs = null; } 4. Для события Click кнопки button2 (Просмотр выбранного журнала) пишем следующий программный код: //--------------------------------------------- // Просмотр выбранного журнала //--------------------------------------------- private void button2_Click(object sender, EventArgs e) { logDataGridView.Rows.Clear(); string tmp = ""; string logType = ""; int k = 0; // Проверка, выбран ли журнал if (logTreeView.SelectedNode!= null) { tmp = logTreeView.SelectedNode.Text; // Полчить имя выбранного журнала k = tmp.IndexOf(" ("); if (k!= 0) logType = tmp.Substring(0, k); // Прочитать содержимое выбранного журнала EventLog ev = new EventLog(logType, System.Environment.MachineName); int LastLogToShow = ev.Entries.Count; if (LastLogToShow <= 0) { string message = "В журнале: " + logType + " отсутствуют записи"; string caption = "Просмотр журналов событий"; MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { // чтение выбранного журнала groupBox2.Text = "Просмотр журнала " + logType; int i = 0; for (i = 0; i < LastLogToShow; i++) { EventLogEntry CurrentEntry = ev.Entries[i]; logDataGridView.Rows.Add(CurrentEntry.InstanceId, CurrentEntry.EntryType.ToString(), CurrentEntry.TimeGenerated.ToString(), CurrentEntry.MachineName.ToString(), CurrentEntry.Message); } } ev.Close(); } else MessageBox.Show("Ни один журнал не выбран", "Просмотр журналов событий", MessageBoxButtons.OK, MessageBoxIcon.Information); } 5. Для события Click кнопки button3 (Очистить выбранный журнал) пишем следующий программный код: //--------------------------------------------- // Очистка выбранного журнала //--------------------------------------------- private void button3_Click(object sender, EventArgs e) { logDataGridView.Rows.Clear(); string tmp = ""; string logType = ""; int k = 0; if (logTreeView.SelectedNode!= null) { tmp = logTreeView.SelectedNode.Text; k = tmp.IndexOf(" ("); if (k!= 0) logType = tmp.Substring(0, k); EventLog ev = new EventLog(logType, System.Environment.MachineName); int LastLogToShow = ev.Entries.Count; if (LastLogToShow <= 0) { string message = "В журнале: " + logType + " записи уже отсутствуют"; string caption = "Очистка журналов событий"; MessageBox.Show(message, caption, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { ev.Clear(); ev.Close(); } } else MessageBox.Show("Ни один журнал не выбран", "Очистка журналов событий", MessageBoxButtons.OK, MessageBoxIcon.Information); } 6. Для перехвата событий записи в журнал безопасности необходимо создать свой обработчик событий и добавить его к списку обработчиков событий, которые прикреплены к данному объекту (в данном случае журналу безопасности). Новый обработчик событий имеет вид: //--------------------------------------------- // Перехват записей в журнал безопасности //--------------------------------------------- protected void OnEntrySecurityWritten(object sender, EntryWrittenEventArgs e) { richTextBox1.AppendText("Запись в журнал " + ((EventLog)sender).LogDisplayName + " Время " + e.Entry.TimeWritten + "Позиция " + e.Entry.Index + "\r\n"); } В данном случае информация о перехваченных событиях будет выводиться вполе richTextBox1.
7. Для события Click кнопки button4 (Мониторинг событий безопасности) пишем следующий программный код: //--------------------------------------------- // Мониторинг событий безопасности //--------------------------------------------- private void button4_Click(object sender, EventArgs e) { // Создается объект "журнал безопасности" securitylog = new EventLog("Security", Environment.MachineName); // К обработчику событий данного журнала // добавляется новый обработчик //OnEntrySecurityWritten securitylog.EntryWritten += new EntryWrittenEventHandler(OnEntrySecurityWritten); // Объявить доступным конкретный экземпляр класса securitylog.EnableRaisingEvents = true; } 8. Для события Click кнопки button5 (Отменить мониторинг событий безопасности) пишем следующий программный код: //--------------------------------------------- // Отмена мониторинга событий безопасности //--------------------------------------------- private void button5_Click(object sender, EventArgs e) { securitylog.EntryWritten -= OnEntrySecurityWritten; } 9. Для перехвата событий записи в системный журнал, как и в предыдущем случае, необходимо создать свой обработчик событий и добавить его к списку обработчиков событий, которые прикреплены к данному объекту (в данном случае к системному журналу). Для разнообразия обработчик событий выводит на экран окно с предупреждением в случае, если событие является ошибкой (Error), или предупреждением (Warning), или информационным (Information), как показано на рисунке 4.
Рисунок 4 – Сообщение о перехвате событий записи в системный журнал Новый обработчик событий имеет вид: //--------------------------------------------- // Перехват записей в системный журнал //--------------------------------------------- private void OnEntryWritten1(object sender, EntryWrittenEventArgs e) { if (e.Entry.EntryType == EventLogEntryType.Error || e.Entry.EntryType == EventLogEntryType.Information || e.Entry.EntryType == EventLogEntryType.Warning) { DialogResult result; result = MessageBox.Show("Внимание!" + "\r\n" + "В системе произошло событие " + e.Entry.InstanceId + "\r\n" + "Время " + e.Entry.TimeGenerated.ToString() + "\r\n" + "Сообщение: " + e.Entry.Message + "\r\n" + "\r\n" + " Просмотрите журнал событий для выяснения причин.", "Система активного аудита", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } 10. Для события Click кнопки button6 (Мониторинг системны событий) пишем следующий программный код: //--------------------------------------------- // Мониторинг системных событий //--------------------------------------------- private void button6_Click(object sender, EventArgs e) { eventLog = new EventLog("System", Environment.MachineName); eventLog.EntryWritten += new EntryWrittenEventHandler(OnEntryWritten1); eventLog.EnableRaisingEvents = true; } 11. Для события Click кнопки button6 (Отменить мониторинг системных событий) пишем следующий программный код: //--------------------------------------------- // Отмена мониторинга системных событий //--------------------------------------------- private void button7_Click(object sender, EventArgs e) { eventLog.EntryWritten -= OnEntryWritten1; } 5.3 Задания для самостоятельной работы Написать оконное приложение для вывода списка всех имеющихся журналов аудита. Предусмотреть возможность вывода на экран любого журнала, удаления и добавления любых записей, очистку любого журнала. Индивидуальные задания приведены в таблице 5.4.
Таблица 5. 4 – Индивидуальные задания к лабораторной работе № 5
Продолжение таблицы 5.4
Продолжение таблицы 5.4
5.4 Контрольные вопросы 1. Перечислите журналы событий. Укажите названия журналов, укажите местоположение журналов (на каком диске, в каком каталоге). 2. Из каких полей состоят записи в системных журналах? 3. Какое пространство имен используется для работы с журналами событий в.NET Framework? 4. Какая информация записывается в журнал приложений? 5. Какая информация записывается в системный журнал? 6. Какая информация записывается в журнал безопасности? 7. Какие события в системных журналах могут свидетельствовать об атаках на компьютерную систему?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-07; просмотров: 100; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.187.233 (0.118 с.) |