Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота з ЗПЗ №1.docx
Скачиваний:
20
Добавлен:
16.05.2015
Размер:
1.76 Mб
Скачать

Міністерство освіти і науки, молоді та спорту України

Вінницький національний технічний університет

Кафедра МБІС

Методичні вказівки до виконання лабораторних робіт

з дисципліни: “Захист програмного забезпечення”

для студентів спеціальності 6.170103 «Управління інформаційною безпекою»

Викладач: ас. Карпінець В.В.

Основні засоби та порядок статичного дослідження. Дослідженння роботи програм-моніторів

Мета роботи

Ознайомитись на практиці з основними засобами попереднього аналізу роботи захищеного ПЗ, що використовується зламниками систем захисту для статичного дослідження програм. Дослідити роботу програм-моніторів файлів, звернень до реєстру, до портів, моніторів процесів і задач.

Теоретичні відомості

1 Порядок статичного дослідження роботи СЗПЗ

Для ефективного дослідження (зламу) програмного забезпечення необхідно перш за все зібрати всю необхідну і вичерпну інформацію про роботу програмного забезпечення, середовища в якому воно виконується, які глобальні системні змінні та параметри воно використовує або активно модифікує, які файли та папки використовує. Крім того, необхідно визначити, чи здійснює дане програмне забезпечення програмні прив’язки та які динамічні бібліотеки використовує.

Для вирішення всіх цих питань спробуємо записати наближений алгоритм, який охопить найпоширеніший та найскладніший випадок несанкціонованого дослідження, що його використовує зловмисник для зняття захисту з програми.

  1. Перш за все необхідно запустити програмне забезпечення, спосте­рі­гати за його роботою, обмеженнями під час роботи та тими особ­ли­вос­тя­ми ПЗ, які виникають під час його роботи. Це можуть бути підозрілі рядки, ма­си­ви символів, діалогові вікна для введення реєстраційної інфор­мації тощо.

  2. Далі необхідно відслідкувати звернення програми до системного реєст­ру та власних файлів налаштувань. Інколи буває можливо лише змінити або виділити певні записи з реєстру чи файлу для зняття всіх обмежень у роботі програми.

  3. Тепер слід відслідкувати звернення програми до файлів, каталогів – до ресурсів файлової системи.

  4. Проаналізувати виконувані файли та динамічні бібліотеки на предмет запакування виконуваних файлів, їх шифрування тощо.

  5. Тепер можна приступити безпосередньо до дизасемблювання:

  1. в залежності від тих типів захисті або функцій, що викорис­то­вувались для програмної реалізації системи захисту програмного забезпечення, локалізувати місця коду, де відбувається виклик необхідних нам функцій або з’являються необхідні рядки;

  2. знайти місця умовного або безумовного переходу за інструкціями;

  3. визначити зміщення цих інструкцій відносно початку файлу та провести заміну відповідних інструкцій або команд на необхідні для ефективного зняття захисту з програмного забезпечення;

  4. знаючи зміщення, можна досить просто написати звичайну просту програму для запису даних у бінарний файл.

2 Моніторінг зверень до системного реєстра

Прикладом такої програми може слугувати утиліта RegMon. Вона надає можливість збирати інформацію про звернення до реєстру Windows.

Утиліта RegMon записує в log-файл абсолютно всі звернення до реєстру, включаючи звернення самої системи і всього програмного забезпечення, яке працює на момент збору даних. Програма має фільтр, за допомогою якого можна зібрати інформацію про звернення до реєстру тільки однієї чи декількох програм, або виключити з спостереження певні програми.

Зовнішній вигляд Registry Monitor (рисунок 2.1):

Рисунок 2.1 — Зовнішній вигляд Registry Monitor

Інтерфейс програми складається з 3-х частин - рядок меню (menu bar), панель інструментів (toolbar) і область виводу даних у вигляді таблиці, кожному рядку якої відповідає запис про звернення до реєстру. Для зупинки процесу перехоплення потрібно клацнути мишкою по кнопці з лупою, так, щоб її зображення стало перекресленим червоною лінією. Повторне клацання поверне режим перехоплення.

Подвійне клацання на окремому рядку викличе запуск редактора реєстру з переходом на розділ або ключ, відповідний даному записі. Порядок проходження рядків відповідає часу виконання операцій. Інформація у вікні виводу даних розділена на сім стовпців:

#- номер рядка з початку сесії перехоплення звернень до реєстру.

Time- час звернення.

Process- ім'я та ідентифікатор процесу (PID), який викликав звернення до реєстру.

Request- тип запиту. Типи запитів відстежувані regmon:

Path - шлях до ключа реєстру або до значення ключа, що оброблюється.

Result- Результат виконаного з реєстром дії:

Other- додаткова інформація.

Програма має таку опцію як Log Boot - відслідковування звернень до реєстру в процесі завантаження Windows. Після вибору опції, програма видасть повідомлення (рисунок 2.2), що Regmon налаштований для запису звернень до реєстру у файл журналу в процесі наступного перезавантаження ОС:

Рисунок 2.2 — Інформаційне повідомлення

Після перезавантаження, в кореневому каталозі системи (C: \ Windows) буде створений файл Regmon.log з даними моніторингу. Режим запису в журнал буде тривати до запуску Regmon.exe, що увійшов в систему користувачем і виконується тільки для одного перезавантаження. Regmon в режимі Log Boot інсталюється в системі і, після перезавантаження, запускається в якості драйвера, тому всі звернення до реєстру, що відбулися до його старту, не будуть відстежені. Перегляд журналу моніторингу можна виконати з використанням меню File – Open.

Утиліта Regmon налаштована на виведення інформації про звернення до реєстру Windows, виконуваних всіма процесами і додатками, але в програмі передбачена можливість фільтрувати вихідні дані. Задати умови фільтрації можна відразу після старту утиліти або викликавши вікно налаштування фільтрів (Regmon Filters)(рисунок 2.3) в будь-який момент часу c використанням меню програми або комбінації клавіш CTRL + L

Рисунок 2.3 — Вікно налаштування фільтрів

Фільтри дозволяють обмежити виведення даних Regmon виходячи з імені процесу, шляху в реєстрі, типу запиту і результатів його виконання. Для налаштування фільтрів можна використовувати три текстових поля. Фільтри розділяються один від одного символом "крапка з комою". Можливе використання символу * (зірочка) в якості шаблону (wildcard).

Include - тільки процеси і шляхи реєстру, перераховані в цьому полі, будуть виводитися в списку вихідних даних Regmon.

Exclude- процеси та шляхи реєстру, перераховані в цьому полі, не будуть виводитися в списку вихідних даних Regmon.

У полі Highlightвказуються фільтри, по яким визначаються рядки, що виділяються.

Програма запам'ятовує історію фільтрів, що вводились. При старті використовується останній заданий фільтр. Для скидання критеріїв фільтрації у вихідне значення використовується кнопка Defaults у вікні Regmon Filters.

Regmon – це функціональна і зручна у використанні утиліта, що дозволяє контролювати зміни в реєстрі і надає користувачеві докладні описи подій в реальному часі.