Особенности закладок и защита от воздействия закладок. Пакеты антивирусных программ

Автор: Пользователь скрыл имя, 01 Декабря 2011 в 20:26, практическая работа

Описание работы

Цель работы: изучить принцип построения программных закладок и методы защиты от воздействия закладок, изучить разновидности пакетов по защите ПК.

Работа содержит 1 файл

Практическая работа №2 -Особенности закладок и защита от воздействия закладок. Пакеты антивирусных программ.doc

— 1,018.50 Кб (Скачать)

         - Принципы защиты  от вирусов.

         - Что такое спам?

         - Принципы защиты  от спама.

5. Проверить  компьютер на наличие троянских  коней.

6. Установить  программу  для сохранения образа дисков в файл.

7.  Создать  резервную копию диска.

8. Ответить  на тесты. 

Ход выполнения практической работы 

1. Составьте  таблицу №1 «Теоретические модели  функционирования программных закладок» 

2. Разберите  механизмы разрушения программы  защиты, схем контроля  или   изменение текущего состояния  программной среды 

Механизм  разрушения программы  защиты, схем контроля  или  изменение  текущего состояния  программной среды 

    Предположим, что  злоумышленнику  известна  интересующая  его программа  с  точностью  до  команд  реализации   на   конкретном процессоре.  Следовательно,  возможно  смоделировать  процесс  ее загрузки  и  выяснить  относительные  адреса   частей   программы относительно  сегмента  оперативной   памяти,   в   который   она загружается. Это означает, что возможно  произвольное  изменение кода программы и соответственно отклонение (возможно  негативного характера) в работе прикладной программы.

    Тогда алгоритм действия закладки  может быть таким:

    1) закладка загружается в  память  каким-либо  указанным  выше  образом;

    2) закладка  осуществляет  перехват  (редактирование  цепочки) одного или нескольких прерываний:

  • прерывания DOS <запуск программ и загрузка оверлеев> ;
  • прерывания BIOS <считать сектор>;
  • прерывание таймера.

    3) по одному из трех событий  закладка получает управление  на свой код и далее выполняется:

  • проверка  принадлежности   запущенной   программы   или   уже работающей (для таймерного прерывания) к интересующим программам;
  • определение сегмента, в который загружена программа;
  • запись относительно определенного сегмента загрузки некоторых значений в ОП так, чтобы отключить схемы контроля и/или исправить программу нужным образом.

    Принципиальная возможность исправления  кода следует из  того, что вывод  о правильности  работы  программы   делается  на  основе операций    сравнения    в    арифметико-логическом    устройстве микропроцессора.

    Сравнение результатов работы  выполняется командой типа СМР,  а результат сравнения изменяет  один  или  несколько  бит   регистра флагов. Следовательно,  того же результата можно достичь,  изменив эти биты одной из команд работы с регистром флагов типа CLD, CLC, LAHF и т. д.

    Наконец, возможен случай, когда  содержательный код  программы  защиты вместе со схемой контроля  будет удален из памяти полностью  и все последующие операции  будут выполнены без влияния  программы защиты.

        Основным способом активизации  разрушающих  закладок  является  запуск  ассоциированных  с   ними  программ.  При  этом   закладка получает  управление  первой  и  выполняет  какие-либо   действия (изменения  адресов  прерывания   на   собственные   обработчики, исправление в коде программ защиты и  т.  д.).  В  данном  случае борьба с воздействием  закладок  может  быть  произведена  только путем контроля  целостности  исполняемых  файлов  непосредственно перед их исполнением.

     Эти   операции   связаны   с   легко идентифицируемым  событием в программной среде  ПЭВМ -  выполнением или завершением  прерывания int N.

    В  рамках  принятой  модели  можно  выделить  следующие  пути воздействия программных закладок.

    В ситуации 1:

    1.1.  Сохранение  на   внешнем   устройстве   информации   из  изменяемой области ОЗУ, синхронизированное  с прерыванием int N.

    1.2. Разрушение информации в изменяемой  области.

    1.3. Определение прерывания int N на  собственную программу  в ОЗУ путем:

       1.3.1. Изменения вызовов int N в пользовательской  программе.

       1.3.2. Встраивания в цепочки прерывания  обычным образом.

    В ситуации 2:

    Пункты 1.1 - 1.3 полностью сохраняются,  но  добавляется  еще один:

    2.4. Изменение  кода  самого  исходного  обработчика  int  N.

     Пусть работа  программно-аппаратного  комплекса  строится  по следующей схеме: 

                     Возвpат упpавления

                   LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL©

                  Ё  Обpаботчик int N,k            Ё

          LLLLLL>L*LLLLLL*                 *LLLLLLL*

    Вызов                Ё                 Ё

   пользовательской      Ё                 Ё

   пpогpаммы             Аппаpатная частьLL> 

    Тогда возможны следующие ситуации:

    1)  нападение на  пользовательскую  программу,  работающую  с программно-аппаратным комплексом, путем исправления в ЕХЕ-  или СОМ-файле данной программы вызовов прерываний int N (код CD N) на вызов своего прерывания, например, int М; 

int M ----------->  Резидентная пpогpамма-закладка

                     Возвpат упpавления

                   LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL©

                  Ё  Обpаботчик  int N,k            Ё

          LLLLLL>L*LLLLLL*                 *LLLLLLL*

         int N           Ё                 Ё

                         Ё                 Ё

                         Аппаpатная частьLL> 

    2) нападение на обработчик int N.

    - исправление в таблице прерываний  адреса  int  N  на  другой произвольный  адрес в пределах ОЗУ; 

    Таблица прерываний: off1 seg1 ... offN segN ... off255 seg255

segN:offN

     -------> Резидентная  пpограмма-закладка

                     Возвpат упpавления

                   LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL©

                  Ё  Обpаботчик  int N,k            Ё

                  *LLLLLL*                 *LLLLLLL*

   -------->             Ё                 Ё

  упpавление не          Ё                 Ё

  пеpедается             Аппаpатная частьLL> 

    -переопределение прерывания на коды  закладки  с выполнением части функций в программно-аппаратном  комплексе,  а части -  в закладке.

 Таблица прерываний:

 оff1 seg1 offN segN ... off255 seg255 

segN:offN

     -------> Резидентная  пpограмма-закладка

                    Ё

                Выделение j-й подфункцииLLL©

               LLLLLLLLLLLLLLLLLLLLLLLLLLLL>

              Ё      Возвpат  упpавления

              Ё    LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL©

              Ё   Ё  Обpаботчик  int N,k            Ё

              -LLL*LLLLLL*                 *LLLLLLL*

   -------->             Ё                 Ё

  упpавление не          Ё                 Ё

  пеpедается             Аппаpатная частьLL> 

    Примером  является  программная  закладка,  маскируемая   под прикладную   программу-<ускоритель>   типа    "Turbo    Krypton".  Обработчик ранних версии платы Krypton, реализующей алгоритм ГОСТ 28147-89 [11], находился в ПЗУ, однако  не  предпринимал  никаких действий по проверке того, на какой адрес указывает прерывание 4Ch,  определенное  комплексом  для взаимодействия   с   платой. Несмотря   на   то,   что   закладка   воздействует   только   на демонстрационные   версии   программ,   работающих   с    платой, <разработчикам> закладки  нельзя  отказать  в  значительной  доле юмора - ускорение  программ  шифрования  по  прежнему  привлекает многих. 

 Пpимеp 4. Упpощенный фpагмент кода закладки 

.MODEL TINY

.CODE

org 100h

start:

jmp init

CopyRight db "Turbo Krypton driver 1992."

; Новая  функция обработки прерывания 4С

new_4C :

pushf

; начало  сравнений рода работы

z1:

; сравнить  с родом работы 0 или 1 - зашифрование

сmр  аl,0

jne z2

jmp zz

z2:

crm al, 1

jne r1

; реализация  зашифрования

zz:

push cx

push si

push di

push ах

; сложение  с фиксированным байтом OFFh по  модулю 2

zzz:

mov ah,byte ptr ds:[si+8]

xor ah,0FFh

mov byte ptr es:[di],ah

inc di

inc si

loop zzz

pop ах

pop di

pop si

pop cx

jmp end_new_4c

; возврат  из прерывания без передачи  управления на плату

r1:

; проверка  на режим расшифрования - 2 или  3

сmp al, 2

jne r2

jmp rr

r2:

cmp al, 3

jne ost

rr:

push cx

push si

push di

push ах

rrr:

mov ah,byte ptr ds:[si+8]

хоr ah,0FFh

mov byte ptr es:[di],ah

inc di

inc si

loop rrr

pop ах

pop di

Информация о работе Особенности закладок и защита от воздействия закладок. Пакеты антивирусных программ