Перехват ввода с клавиатуры

Автор работы: Пользователь скрыл имя, 08 Февраля 2012 в 20:53, практическая работа

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

Закладки, анализирующие ввод с клавиатуры, являются достаточно опасными, поскольку клавиатура является основным устройством управления и ввода информации. Через клавиатурный ввод можно получить информацию о вводимых конфиденциальных сообщениях (текстах), паролях
Перехват может производиться двумя основными способами:
встраивание в цепочку прерывания int 9h;
анализом содержания клавиатурного порта или буфера по прерыванию от системного таймера.

Файлы: 1 файл

Саволюк ИБ.docx

— 35.33 Кб (Скачать файл)

       Закладка  встраивается  в  цепочки  прерывания  int  21h  для следующих функций:

  • Открыть файл. Закладка отфильтровывает нужные имена или указатели файлов.
 
       
  • Считать из файла. Закладка выполняет прерывание по  старому адресу  указателя, затем сохраняет считанный буфер  в  собственный,  обычно  скрытый файл, либо исправляет в буфере некоторые байты файла, кроме  того возможно влияние на результаты операции чтения  (например,  число прочитанных байт). Данные действия особенно опасны  для  программ  подтверждения подлинности   электронных   документов   (электронная   цифровая подпись,  ЭЦП).  При  считывании  приготовленного  для   подписи файла-документа может произойти изменение символов имени  автора, даты, времени, цифровых данных,  заголовка  назначения  документа (например, изменена сумма платежа в платежных поручениях и др.).
 
       
  • Записать в файл. Закладка  редактирует нужным  образом буфер в оперативной памяти, либо сохраняет файл или часть его в  скрытую  область,  а затем выполняет старое прерывание, в результате чего записывается файл   с   измененным   содержанием,   либо   каким-то    образом дублированный в скрытой области. Закладки такого типа могут, например,  навязывать  истинность электронной подписи даже тогда,  когда  файл  был  изменен  (если пометка об истинности подписи хранится в  файле,  что  характерно для  систем  автоматизированного  финансового   документооборота, пример - система ЭЦП <Блиц>).

       Рассмотрим, например,  процесс «электронного  подписывания», реализованный в  программе  PGP.  Программа  считывает  файл  для вычисления хеш-функции блоками по 512  байт,  причем  завершением процесса чтения является считывание блока меньшей длины.

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

 

   Перехват  ввода с клавиатуры

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

   Перехват  может производиться двумя основными  способами:

  • встраивание в цепочку прерывания int 9h;
  • анализом содержания клавиатурного порта или буфера по прерыванию от системного таймера.

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

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

   IRQ1 (INT 9) - прерывание клавиатуры, вызывается  при  каждом  нажатии  и  отпускании клавиши на клавиатуре.

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

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

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

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

   Программа  int09h,  получив  управление  в   результате   прерывания   от клавиатуры, считывает из порта 60h  скэн-код  и  анализирует  его  значение.

       Работа  закладки  основывается  на  полном  сохранением  всех нажатий (отжатий) клавиш в невидимом (hidden) файле WORK_KEY.BIN.

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

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

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

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

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

    Таким образом, закладка порождает в системе  ИФ -  ПСЗИ  -  ФР новые связи, включая в них свои операции и массивы данных.

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

    Преобразование  изменяет  информативные   атрибуты  ИФ, ФР  и вспомогательного  файла.   Новым   в   данном   случае   является рассмотрение связей типа ИФ - ФР и вспомогательный файл -  ФР.  В случае возникновения таких связей ПСЗИ практически исключается из процесса  преобразования  информации,  либо  в   ФР   добавляется информация из ИФ или вспомогательного файла. Например,  в случае шифрования возможна ситуация, когда в зашифрованный файл  будут добавлены фрагменты ключа или   исходного   (незашифрованного) текста. Кроме того,  ФР  может быть  получен с использованием другого алгоритма, реализуемого собственно закладкой. 

    Закладка  встраивается  в  цепочки  прерывания  int  21h  для следующих функций:

  • Открыть файл. Закладка отфильтровывает нужные имена или указатели файлов.
  • Считать из файла. Закладка выполняет прерывание по  старому  адресу  указателя, затем сохраняет считанный буфер  в  собственный,  обычно  скрытый файл, либо исправляет в буфере некоторые байты файла, кроме  того возможно влияние на результаты операции чтения  (например,  число прочитанных байт). Данные действия особенно опасны  для программ  подтверждения подлинности   электронных   документов   (электронная   цифровая подпись,  ЭЦП).  При считывании  приготовленного для   подписи файла-документа может произойти изменение символов имени автора, даты, времени, цифровых данных,  заголовка назначения  документа (например, изменена сумма платежа в платежных поручениях и др.).
  • Записать в файл. Закладка  редактирует  нужным  образом  буфер  в  оперативной памяти, либо сохраняет файл или часть его в  скрытую  область,  а затем выполняет старое прерывание, в результате чего записывается файл   с   измененным   содержанием,   либо   каким-то    образом дублированный в скрытой области. Закладки такого типа могут, например,  навязывать  истинность электронной подписи даже тогда,  когда  файл  был  изменен  (если пометка об истинности подписи хранится в  файле,  что  характерно для  систем  автоматизированного  финансового   документооборота, пример - система ЭЦП <Блиц>).

    Рассмотрим, например,  процесс «электронного  подписывания», реализованный в  программе  PGP.  Программа  считывает  файл  для вычисления хеш-функции блоками по 512  байт,  причем  завершением процесса чтения является считывание блока меньшей длины.

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

Информация о работе Перехват ввода с клавиатуры