Upload
risspaspb
View
395
Download
1
Embed Size (px)
Citation preview
З А Б Л У Ж Д Е Н И Я И С Т Е Р Е О Т И П Ы О Т Н О С И Т Е Л Ь Н О
А Н А Л И З А КОД А
Евгений Родыгин
Основные методы обеспечения безопасного применения ПО
• формирование и контроль выполнения требований по безопасному проектированию, реализации и использованию программного обеспечения на всех этапах его жизненного цикла
• анализ среды функционирования ПО, направленный на выявление характеристик, которые считаются опасными или потенциально опасными
• анализ программного обеспечения, направленный на выявление функциональных возможностей и характеристик, которые считаются опасными или потенциально опасными
• использование методов и средств, направленных на обеспечение устойчивости среды функционирования от негативного воздействия ПО
• контроль среды функционирования ПО (динамический контроль поведения, изменения характеристик и т.п.) в процессе функционирования ИС
• контроль программного обеспечения в процессе его функционирования
Типовой SAST
Исходные тексты
ПАРСЕР БД кода
Модули анализа…
ОТЧЕТЫ
БД правил
Основные методы наполнения политик SAST
SASTСтандарты
Языка
Политики качества
Отчеты
Анализ угроз
Политики безопасности
Актуальные угрозы для информационной системы
Стандартыи опыт
Интерпретация угроз
Стандартыи опыт
Проблема неопределенности SAST
Компилятор
???
Разработчик Исходные тексты SAST
Средcтва
разработки
Что происходит ?
Что происходит ?
Проблема неопределенности IDA
Реализация постановщика задачи
Язык реализации Turbo С 16 bit
Объем исходных текстов (байт) 5021
Объем программы (байт) 14510
Количество функций в исходных текстах 8
Количество функций в программе 95
Количество команд ветвления в исходных текстах 10
Количество команд ветвления в программе (jmp, call и т.п.) 468
Реализация конкурсантов (степень избыточности загрузочного кода очень мала)
Разработчик «Altair / ODDS»
Язык реализации tasm
Объем исходных текстов (байт) 2998
Объем программы (байт) 48
Количество функций в исходных текстах 3
Количество функций в программе 3
Количество команд ветвления в исходных текстах 2
Количество команд ветвления в программе (jmp, call и т.п.) 2
Выявленная таким образом избыточность устранена: (в разах)
По объему исходных текстов 1,7
По объему программы 302,3
По количеству функций в исходных текстах 2,7
По количеству функций в программе 31,7
По количеству команд ветвления в исходных текстах 5,0
По количеству команд ветвления в программе 234,0
Уровни абстракции
Уровень замысла (ТЗ)
Уровень архитектуры (алгоритмы)
Уровень реализации архитектуры (алгоритмов)
Уровень среды разработки (VC)
Уровень компилятора
Уровень линковщика
Уровень кода
Физический уровень
Динамические анализаторы Контроль
среды
Контроль кода внешний
Контроль кода внутренний
Типовой DAST
Модули анализа и реакции
ОТЧЕТЫ
БД правил
Механизм прогнозирования состояния ИС
DAST
Текущее состояние
ИС
Окно анализа
Уровни абстракции
Уровень замысла (ТЗ)
Уровень архитектуры (алгоритмы)
Уровень реализации архитектуры (алгоритмов)
Уровень среды разработки (VC)
Уровень компилятора
Уровень линковщика
Уровень кода (с учетом состояния среды)
Физический уровень