Заблуждения и стереотипы относительно анализа кода

15
ЗАБЛУЖДЕНИЯ И СТЕРЕОТИПЫ ОТНОСИТЕЛЬНО АНАЛИЗА КОДА Евгений Родыгин

Upload: risspaspb

Post on 11-Jul-2015

390 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Заблуждения и стереотипы относительно анализа кода

З А Б Л У Ж Д Е Н И Я И С Т Е Р Е О Т И П Ы О Т Н О С И Т Е Л Ь Н О

А Н А Л И З А КОД А

Евгений Родыгин

Page 2: Заблуждения и стереотипы относительно анализа кода

Основные методы обеспечения безопасного применения ПО

• формирование и контроль выполнения требований по безопасному проектированию, реализации и использованию программного обеспечения на всех этапах его жизненного цикла

• анализ среды функционирования ПО, направленный на выявление характеристик, которые считаются опасными или потенциально опасными

• анализ программного обеспечения, направленный на выявление функциональных возможностей и характеристик, которые считаются опасными или потенциально опасными

• использование методов и средств, направленных на обеспечение устойчивости среды функционирования от негативного воздействия ПО

• контроль среды функционирования ПО (динамический контроль поведения, изменения характеристик и т.п.) в процессе функционирования ИС

• контроль программного обеспечения в процессе его функционирования

Page 3: Заблуждения и стереотипы относительно анализа кода

Типовой SAST

Исходные тексты

ПАРСЕР БД кода

Модули анализа…

ОТЧЕТЫ

БД правил

Page 4: Заблуждения и стереотипы относительно анализа кода

Основные методы наполнения политик SAST

SASTСтандарты

Языка

Политики качества

Отчеты

Анализ угроз

Политики безопасности

Актуальные угрозы для информационной системы

Стандартыи опыт

Интерпретация угроз

Стандартыи опыт

Page 5: Заблуждения и стереотипы относительно анализа кода

Проблема неопределенности SAST

Компилятор

???

Разработчик Исходные тексты SAST

Средcтва

разработки

Page 6: Заблуждения и стереотипы относительно анализа кода

Что происходит ?

Page 7: Заблуждения и стереотипы относительно анализа кода

Что происходит ?

Page 8: Заблуждения и стереотипы относительно анализа кода

Проблема неопределенности IDA

Page 9: Заблуждения и стереотипы относительно анализа кода

Реализация постановщика задачи

Язык реализации 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

Page 10: Заблуждения и стереотипы относительно анализа кода

Уровни абстракции

Уровень замысла (ТЗ)

Уровень архитектуры (алгоритмы)

Уровень реализации архитектуры (алгоритмов)

Уровень среды разработки (VC)

Уровень компилятора

Уровень линковщика

Уровень кода

Физический уровень

Page 11: Заблуждения и стереотипы относительно анализа кода

Динамические анализаторы Контроль

среды

Контроль кода внешний

Контроль кода внутренний

Page 12: Заблуждения и стереотипы относительно анализа кода

Типовой DAST

Модули анализа и реакции

ОТЧЕТЫ

БД правил

Page 13: Заблуждения и стереотипы относительно анализа кода

Механизм прогнозирования состояния ИС

DAST

Текущее состояние

ИС

Окно анализа

Page 14: Заблуждения и стереотипы относительно анализа кода

Уровни абстракции

Уровень замысла (ТЗ)

Уровень архитектуры (алгоритмы)

Уровень реализации архитектуры (алгоритмов)

Уровень среды разработки (VC)

Уровень компилятора

Уровень линковщика

Уровень кода (с учетом состояния среды)

Физический уровень

Page 15: Заблуждения и стереотипы относительно анализа кода

Родыгин Евгений Валентинович

+ 7 ( 9 8 1 ) 7 0 1 - 4 5 - 0 7

[email protected]

www.mstandard.ru