Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ТОКБ.doc
Скачиваний:
135
Добавлен:
17.03.2015
Размер:
445.95 Кб
Скачать

Защита памяти

Память защищается:

  1. Монопольный доступ

  2. Последовательный доступ: исключен взаимный доступ к разделяемым ресурсам

  3. Разграниченный доступ: как правило дискреционная политика

Способы защиты памяти:

  1. Барьерные адреса: выбирается барьерный адрес. Если программа обращается к большим ( или меньшим) адресам, чем барьерные, то инициируется исключение. Барьерный адрес WinNT: 0х80000000. Изначально появились барьерные адреса в MS DOS.

  2. Динамические области памяти: барьерный адрес может принимать разные значения.

  3. Сегментная адресация (адресация MS DOS): сегментный регистр CS. Адрес программы CS:IF. Программа занимает целое количество параграфов. CS – адрес параграфа (индекс), 0хffff – смещение в параграфе.

  4. Страничная адресация

Предотвращение неисправностей по в ас, построение сз от угроз отказа доступа, защита от сбоев па среды

Защита ПА среды делится:

  1. Предотвращение неисправностей ПО (гарантии проектирования)

  2. Обеспечение отказоустойчивости ПО

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

  1. Временная избыточность: часть ресурсов отводиться на восстановление системы (restart) (используется в NTFS в журналировании)

  2. Информационная избыточность: методы кодирования (код Хэмминга)

  3. Программная избыточность: дублируется код (не менее трех экземпляров в оперативной памяти)

Предотвращение отказоустойчивости ПО

Выделяют следующий алгоритм:

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

  2. Проектирование – занимается project designer . Программа разбивается на модули, модули на функции, функции на классы.

  3. Исполнение – кодирование.

Ошибки

Выделяют:

  1. Систематические: в ТЗ или в проектировании

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

  3. Заглушки

Тестирование

Тестер – прибор. Разработкой теста занимается группа программистов.

Рисунок 15 - Жизненный цикл проекта

Выводы:

  • Делать вывод сразу нельзя

  • Каждый виток спирали – версия

  • Проблема нового ПО – атака нулевого дня(уязвимость, которая появляется в новом ПО/аппаратуре, о которой нет сведений.

Семантическая защита ПО.

Обфускация кода или запутывание кода.

Основная задача: скрыть метод работы.

Пример: Правообладатель RSA Data security, запутывание кода 1C.

Запутывание производится на двух уровнях:

  1. Высокий – C, Pascal, ООП

Код можно запутать следующим образом:

    1. Внедрение мусорных ресурсов:

1.1.1 Int x;

X=x; //запутывание не будет произведено, компилятор отбросит

1.1.2. Int x;

Int *y;

Y=&x;

X=*y;

Все переменные определяются в один массив – это бессмысленно, т.к. именно так компилятор размещает данные в оперативной памяти

  1. Низкий:

    1. манипуляция с регистрами - переименование.

    2. Псевдо - код на основе сигнатур (одинаковое начало функции)

«Аист» - анализатор исходных текстов на языке Си, для поиска логических бомб. Находит только типовые вещи.