Введение
Глава 1. Задача выявления НДВ 11
1.1. Методы статического анализа 11
1.1.1. Поиск потенциально опасных конструкций 11
1.1.2. Проверка формальных моделей 12
1.1.3. Абстрактная интерпретация 13
1.1.4. Анализ потоков данных 15
1.2. Методы динамического анализа 17
1.2.1. Контроль поведения 17
1.2.2. Инструментальное оснащение 18
1.3. Гибридные методы 18
1.4. Методы анализа исполняемого кода 20
1.4.1. Дизассемблирование 20
1.4.2. Существующие внутренние представления 21
1.4.3. Особенности некоторых архитектур 24
1.5. Инструментарий 26
1.6. Системы анализа исполняемого кода 28
1.6.1. Интерактивный дизассемблер IDA 28
1.6.2. Статический анализатор CodeSurfer/x86 29
1.6.3. Платформа динамического анализа Valgrind 33
1.6.4. Платформа для комплексного анализа BitBlaze 33
1.6.5. Анализатор времени выполнения BoundT 34
1.6.6. Прочие системы анализа исполняемого кода 35
1.7. Выводы 38
Глава 2. Система выявления НДВ 41
2.1. Модель нарушителя 41
2.2. Требования к системе 44
2.3. Компоненты системы 49
2.3.1. Дизассемблер 49
2.3.2. Анализатор потоков данных 55
2.3.3. Интерфейс к системам компьютерной алгебры 59
2.3.4. Статический анализатор 60
2.3.5. Модуль выявления НДВ-К 62
2.4. Выводы 63
Глава 3. Элементы системы выявления НДВ 65
3.1. Язык описания архитектур процессоров 65
3.1.1. Внутреннее представление 65
3.1.2. Структура описания 65
3.1.3. Адресные пространства 66
3.1.4. Выражения 67
3.1.5. Правила 70
3.1.6. Типы 73
3.1.7. Прочее 74
3.1.8. Компиляция 75
3.1.9. Применение правил 78
3.2. Граф потока управления 80
3.3. Моделирование ввода-вывода 83
3.3.1. Компоненты модели ввода-вывода 83
3.3.2. Язык описания модели ввода-вывода 86
3.3.3. Анализ модели ввода-вывода 89
3.4. Численные домены 90
3.4.1. Абстрактные значения 92
3.4.2. Абстрактные суммы 93
3.4.3. Мультисуммы 97
3.4.4. Выровненные адреса 97
3.4.5. Битовые поля 99
3.5. Анализатор потоков данных 100
3.6. Домен простых состояний 105
3.6.1. Состояния участков памяти 105
3.6.2. Состояния программы 110
3.7. Домен символьных состояний 113
3.8. Символьный анализ циклов 118
3.9. Проверка политики обработки информации 128
3.10. Выводы 130
Глава 4. Применение системы выявления НДВ 132
4.1. Работа с системой выявления НДВ 132
4.2. Тестовые испытания 133
4.3. Внедрение - ООО ИБМ Восточная Европа/Азия 135
4.4. Внедрение - Кафедра №42 НИЯУ МИФИ 141
Заключение 143
Список литературы 146


