Исследование и разработка методики автоматического обнаружения уязвимостей в исходном коде программ на языке Си

Исследование и разработка методики автоматического обнаружения уязвимостей в исходном коде программ на языке Си

Автор: Маликов, Олег Рустэмович

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2006

Место защиты: Москва

Количество страниц: 101 с. ил.

Артикул: 3308151

Автор: Маликов, Олег Рустэмович

Стоимость: 250 руб.

Исследование и разработка методики автоматического обнаружения уязвимостей в исходном коде программ на языке Си  Исследование и разработка методики автоматического обнаружения уязвимостей в исходном коде программ на языке Си 

Оглавление
Введение.
1. Постановка задачи.
2. Обзор работ и классификация.
2.1 Лексический анализ
2.2 Синтаксический анализ.
2.3 Использование спецификаторов типов
2.4 Анализ потока данных
3. Используемые понятия и методы.
3.1 Абстрактный объект памяти АОП.
3.2 Модельный целочисленный тип.
3.3 Атрибуты АОП
3.4 Полурешетка контекстов
4. Общая схема методики поиска уязвимостей.
4.1 Внутрипроцедурный анализ
4.1.1 Представление функции
4.1.2 Анализ циклов
4.1.3 Компактное представление потока данных.
4.1.4 Алгоритм работы с представлением потока данных.
4.1.5 Вычисление контекстов инструкций.
4.1.6 Инструкции увеличения счетчика в цикле.
4.1.7 Условные переходы .
4.1.8 Прямые вызовы функций
4.1.9 Вызовы функций по указателю
4.1. Остальные инструкции.
4.1. Входной и выходной контексты функции.
4.2 Межпроцсдурный анализ.
4.2.1 Общий межпроцсдурный алгоритм
4.2.2 Стратегия обхода графа вызовов
4.2.3 Анализ вершины графа вызовов
4.2.4 Интерфейс для внутрипроцедурного анализа.
4.3 Обнаружение уязвимостей на основе вычисленных атрибутов.
4.4 Реализация уточнения уязвимостей и обнаружения их источников
5. Реализация методов
6. Экспериментальные результаты
Заключение
Список литературы


В -м году студентом Карнсльского университета Робертом Моррисом была написана программа, использующая уязвимость типа «переполнение буфера» в программном коде сервиса fingerd операционной системы 4. BSD. Вирус использовал данную уязвимость для получения контроля над атакуемым компьютером, сканирования локальной сети и распространения своего тела на другие компьютеры, на которых имелась данная уязвимость. Программный код системного демона fingerd содержал в себе примерно такие же строки, как и изображенные на рисунке 1. Рисунок 1. Примерный фрагмент кода демона fingerd. Библиотечная функция gets считывает в буфер по адресу первого параметра buf строку символов со стандартного ввода. При этом длина строки никак не контролируется. На рисунке 2 упрощенно показано расположение данных на стеке в момент вызова функции f, характерное для подавляющего большинства операционных систем. Адрес возврата соответствует адресу, по которому будет передаваться управление после окончания выполнения кода функции f. Легко заметить, что адрес возврата из функции располагается за локальным массивом sub начале выполнения функции f указывает на некоторый корректный код выполняемой программы. Моррису оставалось лишь подобрать вводимую пользовательскую строку таким образом, чтобы адрес возврата указывал на необходимый участок программного кода. Таким кодом в случае вируса Морриса было выполнение командного интерпретатора с правами суперпользователя, что позволяло выполнить любые операции на пораженной вирусом машине. Рисунок 2. Схематичное расположение данных на стеке. ОС семейства ІЛМІХ спроектированы таким образом, что каждый пользователь в рамках ОС является либо простым пользователем, либо суперпользователем с неограниченными правами. Такое разделение подразумевает разграничение прав доступа к файлам для различных пользователей системы. Однако часто возникает необходимость обращения от имени обычного пользователя к системным файлам, владельцем которых по определению является суперпользователь. Например, для того, чтобы пользователь имел возможность менять свой пароль для входа в систему, существует программа рагзюсі, которая, очевидно, должна иметь права на запись в файл с паролями, который принадлежит суперпользователю. Для этого нужно, чтобы была обеспечена возможность запуска программы раэзюс! Очевидно, что такое требование нарушает идеальную модель разграничения доступа, при которой пользователь может влиять лишь на принадлежащие ему данные. Именно поэтому большинство 1ЛМ1Х-подобных операционных систем имеет класс безопасности по терминологии «Оранжевой книги» не выше С1. Заметим, что такой механизм не может иметь места в ОС класса В и выше. В ОС семейства ЦМХ изначально существует механизм БиЮ-процессов. Наличие флага БИЮ у исполняемого файла означает, что при запуске файл будет наследовать права его владельца, а не того пользователя, который его запускает. Такой механизм крайне опасен, так как в случае, если в программе с таким флагом имеется ошибка, позволяющая совершить некие непредусмотренные действия, то они могут быть совершены с гораздо более высокими правами, чем те, которые имеет запускающий программу пользователь. Если же владельцем программы являлся суперпользователь (как часто и бывает), то круг возможных действий пользователя после использования ошибки в программе становится неограниченным. Другие распространенные операционные системы также имеют похожие механизмы, нарушающие идеальную модель разграничения прав. Поэтому некоторые ОС семейства Vindows, а также ОС 8о1апз[] имеют класс безопасности С2, что недостаточно для гарантии отсутствия уязвимых механизмов операционной системы. Заметим, что сами по себе данные механизмы операционных систем несут угрозу только при наличии ошибок в программах, позволяющих воспользоваться недостатками данных механизмов. Задачей данной работы является разработка методов поиска таких ошибок, которые могут являться источником уязвимостей всей системы. Актуальность. Все возрастающая зависимость предприятий от компьютерных сетевых коммуникаций увеличивает их уязвимость с точки зрения опасности нарушения информационной защиты.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.213, запросов: 244