Автор работы: Пользователь скрыл имя, 02 Января 2013 в 18:12, курс лекций
Лекция № 1
Программные и аппаратные механизмы защиты
Лекция №2
Хранение аутентифицирующей информации в открытых компьютерных системах. Типовые схемы хранения ключевой информации. Защита БД аутентификации.
Лекция № 3
Протоколы стойкой удаленной аутентификации пользователей. Протокол CHAP, S/KEY. Удаленная аутентификация в Windows с использованием хэша LANMAN
Лекция № 4
Технические устройства идентификации и аутентификации
Лекция № 5
Идентификация и аутентификация пользователей с помощью биометрических устройств
Архитектура
Злоумышленник, отключая явный вызов HASP, в действительности отключает множество скрытых вызовов, результат исполнения которых отражается на функционировании программы, например, вызовы могли выполнять дешифровку кода, получать отклики от электронного ключа, которые будут проводится в ходе дальнейшей работы программы.
Лекция № 8
Защита программного обеспечения от исследования
Исследование исполняемого кода программы позволяет злоумышленнику разобраться с логикой работы защитных механизмов, что дает возможность отключить их либо обойти. При работе с аппаратными средствами защиты в исполняемом коде программы достаточно часто хранится конфиденциальная информация, например, коды доступа к электронному ключу, который не должен знать злоумышленник. Иначе говоря, возможность исследования кода является необходимым условием взлома программных продуктов. В связи с этим исполняемый код необходимо защищать от исследования. Для защиты ПО от исследования необходимо обеспечить защиту от статического и динамического анализа.
В первом случае
злоумышленник пытается получить листинг
программы на каком-либо языке для
возможности дальнейшего
Большая часть средств защиты от отладки основывается на обнаружении отладчиков в оперативной памяти с целью дальнейшего противодействия отладке, либо на включенных в исполняемый код механизмов, которые не могут быть корректно выполнены под отладкой в режиме трассировки. Работа отладчиков в реальном режиме процессора основана на прерываниях int1, int3, которые устанавливают точки прерывания, в защищенном режиме работа отладчиков основана на использовании регистра отладки dr0 – dr7.
Приемы защиты:
Один из приемов основан на том, что по команде pop ss следующая команда не может быть выполнена в режиме трассировки и она выполняется на реальном процессоре. В эту команду можно заложить защитный механизм.
push ss
pop ss
push f
pop ax
test ax, 100h
je debugger detected
1. mov ax, cs:[100]=ds:es:cs:mov ax, [100]
2. cs:nop
Противодействие средствам статического анализа:
mov ax, 0CEBh
jmp label
db 1,2,3,4,5,6,7,8,9
label: mov ax, 1234h
mov word ptr cs:label[1], 1234h
……
label jmp 0000h
mov bx, 1234h
……….
Jmp cs:[bx]
Для затруднения анализа исполняемого кода могут быть использованы попытки нестандартных приемов передачи управления. Могут быть сделаны моделирования одних инструкций через другие. Например, jmp, call, int через подобные инструкции.
Например:
Нормальный код |
Альтернативный код | |
…. jmp m …… m: …….. |
mov ax, offset m push ax ret …… m:…. | |
call адрес подпрограммы m:…. адрес подпрограммы: …… ret |
mov ax, offset m push ax jmp адрес подпрограммы m:…. адрес подпрограммы:…… ret | |
… ret |
… pop bx jmp bx |
В данном случае разработчиком системы защиты пишется специальный модуль, который инструкции в исполняемом коде программы. Таким образом, можно достаточно эффективно скрыть защитные механизмы от злоумышленника, затруднить их понимание.
push ss
pop ss
push f
pop ax
test ax,100h
je Debugger detected
Адреса |
Инструкция |
00000000 |
push ss |
00000001 |
jmp 0A |
00000003 |
pop ax |
00000004 |
jmp 0D |
00000006 |
je debugger detected |
000000A |
pop ss |
000000B |
push f |
000000C |
jmp 03 |
000000D |
test ax, 100h |
000000E |
jmps 06 |
Лекция № 9
Классификация средств атаки на средства защиты программного обеспечения
Программы-каталогизаторы – оболочки файловых систем, например, Far, Total Commander. С помощью данных средств возможно:
- выполнить сравнение дат создания файлов в каталоге, в котором установлено приложение. Если средства защиты используют какие-то файлы для хранения, например, информации об оставшемся количестве запусков, то ее дата будет отличаться от остальных.
Программы поиска
файлов и текстовых
Мониторы файловых операций (FileMon, RegMon, PortMon). Данные средства позволяют злоумышленнику проанализировать активность программы, «общение» программы с файлами, реестром, устройствами через порты ввода/вывода.
Мониторы вызова
подпрограмм и системных
Программы копирования областей оперативной памяти на внешние устройства (Advanced Memory Dumper).
Средства декомпиляции (Cordon swf) представляют собой средства статического анализа исполняемого кода для изучения исходных текстов программ. Хорошо работают для Basic, Flash.
Средства редактирования ресурсов (Passolo, Resource Hacker).
Средства программы эмуляции аппаратных средств (Virtual CD).
Средства эмуляции ЦП и ОС (VM Wave)
Защита от разрушающих программных воздействий (РПВ)
Важным моментом при использовании системы ЗИ является обеспечение потенциального невмешательства иных присутствующих в системе программ в процесс обработки информации компьютерной системой, работу системы ЗИ.
С помощью посторонних
программ, присутствующих в компьютерной
системе, злоумышленник может
Эти программы могут реализовать следующие функции:
РПВ делятся на следующие классы:
Для того, чтобы РПВ получило управление, оно должно находится в оперативной памяти и активизироваться по некому общему для этого РПВ и прикладной программы, являющейся целью её воздействия, событию. Подобное событие называется активизирующим.
Если РПВ присутствует в ПА среде и загружено в оперативную память, то при отсутствии для него активизирующего события деструктивные особенности этого РПВ невозможны.
В качестве событий могут выступать прерывания, связанные с выполнением определенных действий, а часто действие, связанное с работой системы защиты, ввод с клавиатуры, прерывания по таймеру, операция с файлами и т.д.
Основные модели работы РПВ
РПВ, активируясь в компьютерной системе, искажает потоки выходных данных, подменяет входные данные, а также инициирует или подавляет ошибки, возникающие при работе прикладных программ.
Выделяют 3 основные группы деструктивных функций РПВ:
Лекция № 10
Компьютерные вирусы как класс РПВ
Вирусы как класс РПВ обладают следующими функциями:
Компьютерные вирусы делятся на: