|
|
№ 3 май-июнь 2007 г.
Тема номера:
ОБУЧЕНИЕ CISO
|
ЭКСПЕРТИЗА И ЗАЩИТА КОДА ПРОГРАММ
НА ОСНОВЕ АВТОМАТОВ ДИНАМИЧЕСКОГО КОНТРОЛЯ
Р. И. Компаниец, директор департамента разработки и сертификации программного обеспечения,
В. В. Ковалев, к. т. н., доцент, главный специалист,
Е. В. Маньков, инженер-программист
ООО «Газинформсервис» |
|
|
Введение
Безопасность современных информационных технологий в значительной мере определяется отсутствием в них скрытых дефектов – недекларированных возможностей (НДВ). Выявление НДВ, вернее контроль их отсутствия, выполняется в процессе сертификационных испытаний программного обеспечения в рамках статического и динамического анализа программного обеспечения.
Декларированные возможности выявляются на основе структурного анализа и декомпозиции исходных текстов программ (статический анализ). Во время динамического анализа проводится трассировка фактических маршрутов выполнения функциональных объектов с последующим сопоставлением с маршрутами, построенными в процессе проведения статического анализа.
Повышение достоверности испытаний на отсутствие НДВ связано в первую очередь с методическим и инструментальным обеспечением процесса сертификационных испытаний, и, прежде всего, качеством выполнения статического анализа. Создание качественного статического анализатора исходных текстов программ для современных систем программирования по трудоемкости сопоставимо с созданием компилятора.
Однако после компиляции исходная программа в конечном итоге превращается в исполняемый код, который более консервативен с точки зрения синтаксиса, структуры и состава управляющих конструкций. Здесь, конечно, существуют свои трудности. Прежде всего, это проблема качества дизассемблирования исполняемого кода, которой в данной статье мы касаться не будем. Отметим только, что существует мощный дизассемблер IDA PRO, который позволяет решить многие проблемы и, прежде всего, получать дизассемблированный код, дающий достаточно полное представление о потоках управления в испытываемой программе.
Целью данной статьи является освещение теоретических вопросов, положенных в основу построения разработанных в ООО «Газинформсервис» технологии и набора инструментов под общим названием IRIDA. IRIDA – это инструментальный комплекс (ИК) для проведения статического и динамического анализа потоков управления в исполняемых кодах программ. Входными данными для ИК является дизассемблированный с помощью интерактивного дизассемблера IDA PRO исполняемый код программы. На основе дизассемблированного кода в ИК создается модельное представление программы в виде базы данных комплекса.
Суть предлагаемой технологии состоит в следующем. Для заданной программы при подготовке ее для динамического исследования, то есть. выявления реальных маршрутов выполнения программы, формируется множество контрольных точек (КТ), которые встраиваются в исследуемую программу.
КТ формирует сигнал о выполнении запроса к функциональному объекту и возврате управления от вызываемого функционального объекта в вызывающую программу. Исходной моделью программы является управляющий граф программы (УГП или граф хода выполнения программы) в терминах линейных участков программы. Построение УГП осуществляется на этапе статического анализа исполняемого кода программы. Одновременно со встраиванием КТ создается модель возможного поведения последней при ее реальном функционировании. Эта модель создается в виде распознающего автомата – автомата динамического контроля (АДК). АДК функционирует совместно с испытуемой программой, обрабатывает прерывания от КТ и допускает маршрут, если он соответствует модели поведения программы, построенной во время статического анализа, либо отвергает его, если маршрут является недекларированным.
< ... >
|
|
Полную версию статьи смотрите на страницах журнала «Защита информации. Инсайд» |
Обращайтесь!!!
e-mail: magazine@inside-zi.ru
тел.: +7 (921) 958-25-50, +7 (911) 921-68-24
Предыдущая статья СОДЕРЖАНИЕ НОМЕРА Следующая статья
|