- •6.170103 «Управління інформаційною безпекою»
- •1. Основні положення та теоретичні відомості
- •1.1. Методи побудови ключових ознак на дисках.
- •1.2. Захист програм від дизасемблерів та налагоджувачів
- •1.2.1. Захист програм від статичних методів дослідження.
- •1.2.2. Захист програм від динамічних методів дослідження.
- •2. Вихідні дані та варіанти завдань.
- •3. Приклади виконання курсової роботи та фрагменти програм що демонструють окремі методи захисту.
- •5. Приклади варіантів виконання курсової роботи
- •4. Тематика курсової роботи
- •6. Список рекомендованої літератури
1.2.2. Захист програм від динамічних методів дослідження.
У цьому випадку прийоми, які використовуються, направлені в основному на виявлення засобів стеження за захищеною програмою і реалізувати протидію. До найбільш поширених засобів захисту від даних методів дослідження, які слід використовувати в курсові роботі, відносяться наступні.
Дозвіл і заборона переривань. Використання в захищеній програмі команд, що періодично змінюють значення флага IF, ускладнює налагоджувачам встановлювати контрольні точки, що допомагають дослідженню виконуючого модуля.
Контроль програми в пам'яті. Виконавши завантаження програми в пам'ять, хакер з метою її вивчення за допомогою налагоджувача встановлює контрольні точки, а також може робити інші зміни в кодовому модулі. Виявити модифікації можна шляхом вставки в певних точках програми модулів підрахунку контрольної суми коду, що знаходиться в пам'яті. У разі неспівпадання підрахованої суми з відомим значенням в програмі виробляються протидії налагоджувачу.
Контроль часу виконання. Виявити захоплення програми налагоджувачем і переривання її роботи в процесі дослідження можна шляхом контролю часу виконання окремих модулів. При відмінності контрольного часу від поточного в виконуючому коді проводиться перехід до захисних дій.
Відновлення векторів переривань. Багато які програми, особливо резидентні, призначені для дослідження захищених програмних продуктів, після свого запуску перевизначають значення векторів переривань, в більшості випадків пов'язаних з дисковими операціями і функціями DOS. Для виявлення стеження і забезпечення власного захисту в програмному продукті при необхідності повинна бути передбачена процедура відновлення адрес у векторах переривань, очищення пам'яті, а також перевірка автентичності початкових команд обробників вказаних вище переривань.
Перевизначення векторів переривань. При дослідженні захищеної програми хакер намагається виявити захисні механізми, що часто будуються на перериваннях за дисковими операціями і зверненнях до функцій DOS. З метою маскування вказаних звертань доцільно заздалегідь перевизначити вільні номери переривань, наприклад, 40h і 50h визначити як 13h і 21h, тобто вміст пам'яті за адресами 4Ch-4Fh і 84h-87h скопіювати відповідно в 100h-103h і 140h-143h. Далі в програмі при зверненні до переривань 40h або 50h насправді будуть оброблятися 13h або 21h. Для аналогічних цілей можна також застосовувати переривання, які мало використовуються, наприклад, 5h.
Перевірка вільної пам'яті. Якщо кодовий модуль захоплений налагоджувачем або контролюється іншими програмними засобами, то об'єм вільної пам'яті в поточному режимі буде відрізнятися від об'єму у разі автономної роботи захищеної програми. Цю залежність можна використати як ознаку для вироблення протидії при неспівпаданні очікуваного діапазону значень вільної пам'яті після її перевірки.
Перевірка доступних областей пам'яті. При роботі програми спільно з налагоджувачем або іншими засобами дослідження, різні програмно доступні області пам'яті, наприклад, відеопам'ять, можуть відрізнятися вмістом. Тоді на певних етапах автономного виконання захищеної програми можна зазделегідь визначити контрольну суму вказаної відеопам'яті і порівняти її, наприклад, з поточним значенням (при спільному виконанні з іншими програмами). Відмінність величин в цьому випадку буде служити сигналом для вироблення протидії.
Блокування консолі. З метою ускладнення аналізу захисного механізму в період його роботи рекомендується здійснювати блокування роботи клавіатури і відеотермінала. Для цієї мети застосовують комплекс різноманітних заходів. До них відносяться: заборона відеосигналу і роботи клавіатури шляхом скидання третього і сьомого бітів відповідно в портах 3B8h, 3D8h і 61h, використання спеціальних ресурсів DOS, наприклад, підфункції 1 функції 44h переривання 21h, перевизначення векторів переривань, що використовуються для роботи з консоллю та інш.
