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

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

Автор: Пучков, Федор Михайлович

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

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

Год защиты: 2010

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

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

Артикул: 4735412

Автор: Пучков, Федор Михайлович

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

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

Оглавление
Список обозначений
Введение
1 Автоматизированное обнаружение уязвимостей в программах на языке С
1.1 Типы существующих программных дефектов
1.1.1 Некорректные операции с памятью.
1.1.2 Некорректные операции с целыми типами.
1.1.3 Операции чтения неопределенного значения
1.1.4 Некорректное использование функций стандартной библиотеки
1.1.5 Утечки памяти .
1.2 Методы и средства обнаружения программных дефектов
1.2.1 Методы лексического и синтаксического анализа.
1.2.2 Программный комплекс i.
1.2.3 Программный комплекс .
1.2.4 Метод абстрактной интерпретации программ
1.3 Выводы..
2 Метод обнаружения дефектов в программах на языке С
2.1 Введение
2.2 Общий подход к решению задачи обнаружения дефектов в программах на языке С
2.2.1 Лексический и синтаксический анализ Спрограммы.
2.2.2 Преобразование .дерева разбора в промежуточное представление
2.2.3 Верификация программы на языке промежуточного представления
2.3 Описание языка I
2.3.1 Синтаксическая структура Iпрограммы
2.3.2 Типы данных.
2.3.3 Константы.
2.3.4 Инструкции
2.4 Математическая модель языка I.
2.5 Инварианты Iпрограммы
2.6 Базовый алгоритм генерирования инвариантов
2.6.1 Алгоритм обхода управляющею графа
2.6.2 Свойства систем интервальных уравнений .
2.6.3 Определение инвариантов в вершинах.
2.6.4 Теорема о корректности алгоритма генерирования инвариантов.
2.7 Построение и проверка индуктивных гипотез.
2.8 Выводы
3 Программная реализация средства автоматизированного обнаружения дефектов в программах на языке С
3.1 Требования к программному комплексу.
3.2 Основные этапы метода автоматизированною обнаружения уязвимостей
3.2.1 Лексический и синтаксический анализ С программы
3.2.2 Трансляция абстрактною синтаксическою дерева в промежуточное представление .
3.2.3 Верификация Iпрограммы
3.3 Выводы.
4 Исследование эффективности средства автоматизированного обнаружения уязвимостей в программах на языке С
4.1 Модельные примеры.
4.1.1 Модельный пример v
4.1.2 Модельный пример v.
4.2 Анализ программы xv
4.3 Выводы.
Заключение
Список использованных источников


Основные результаты диссертации докладывались на международной научной конференции «Информационная безопасность регионов России (ИБРР-)», на международных конференциях «Математика и безопасность информационных технологий» (-), «Ломоносовские чтения» (-), на механико-математическом факультете МГУ имени М. В. Ломоносова на семинаре «Проблемы современных информационно-вычислительных систем» под руководством д. В.А. Васенина (, ). По теме диссертации опубликовано научных работ, в том числе в зарубежных журналах, из них одна статья [] к журнале из перечня ВАК ведущих рецензируемых журналов, а также — 4 патента на изобретения [-]. Критически важные объекты и кибертерроризм. Часть 2. Аспекты программной реализации средств противодействия» под ред. В.А. Васенина []. Работа состоит из введения, четырех глав, заключения, списка литературы. Общий объем диссертации — 0 страниц. Список литературы включает наименований. Первая глава является вводной и посвящена исследованию и систематизации подходов к классификации уязвимостей (дефектов) программного обеспечения, а также методам и средствам их обнаружения. В заключении главы представлено общее описание разработанного автором метода (основные этапы) автоматизированного обнаружения программных дефектов в программах на языке С. Во второй главе представлен разработанный автором метод гарантированного обнаружения дефектов в программах на языке С, который основан на преобразовании исходной программы в промежуточный формат «IAL» (от Intermediate Analyser Language) с последующей верификацией полученной IAL-программы. В разделе 2. IAL. С целыо обоснования полноты метода, в разделах 2. IAL-программы. В разделе 2. IAL-программ, сформулирована и доказана его корректность. В разделе 2. В третьей главе рассматривается архитектура разработанного автором прототипа программного комплекса автоматизированного обнаружения программных дефектов («Анализатора»). В разделе 3. В разделе 3. IAL-программы. В подразделе 3. IAL-анализатора, а также рассматриваются вопросы соответствия «IAL-аналнзатора» разработанным математическим моделям и алгоритмам. Четвертая глава посвящена исследованию эффективности (тестированию) созданного прототипа программного комплекса. Тестирование проводится на ряде модельных примеров — специально подготовленных программах небольшого размера, а также на примере программы xorg-server (основной части графической подсистемы X. Org, используемой в большинстве UNIX-подобных операционных систем). В заключении перечисляются основные результаты диссертационной работы. В настоящее время нет общепринятого определения понятию «уязвимости вычислительной системы». Как правило, оно ассоциируется с нарушением политики информационной безопасности системы, которое может быть вызвано неправильным заданием набора правил или ошибкой в программной реализации подсистемы, отвечающей за выполнение установленных правил. В данном исследовании будем придерживаться следующих определений. Определение 1. Уязвимость вычислительной системы — такое ее состояние, которое позволяет субъекту (потенциальному злоумышленнику) получить несанкционированный политикой информационной безопасности доступ к ее ресурсам, вызвать отказ в обслуживании, или каким-либо другим образом нарушить штатный режим функционирования. Определение 1. Уязвимость программного обеспечения, (программы) — такое ее свойство, которое позволяет субъекту (потенциальному злоумышленнику) привести систему в уязвимое состояние, воздействуя определенным образом на внешнее окружение, в котором выполняется программа. Определение 1. Под внешним окружением программы будем понимать любые данные, получаемые ею из внешних источников (из файлов, из входного потока, из устройств ввода, из переменных окружения и так далее). Определение 1. Под внутренним окружением программы будем понимать значения переменных и состояние памяти программы в момент ее выполнения. В рамках настоящего исследования будем рассматривать лишь такие программные уязвимости, которые возникают из-за наличия в исходном тексте так называемых «программных дефектов». Определение 1.

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

28.06.2016

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

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

15.02.2015

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

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


Все новости

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