Компания ГАЗИНФОРМСЕРВИС IRIDA - контроль и защита потоков управления в исполняемых кодах программ
  windows 7 Review bit-info.com on alexa.com

IRIDA - контроль и защита потоков управления в исполняемых кодах программ



Безопасность современных информационных технологий в значительной мере определяется отсутствием в них скрытых дефектов - недокументированных возможностей (НДВ). Контроль отсутствия НДВ выполняется в процессе сертификационных испытаний программного обеспечения в рамках статического и динамического анализа программного обеспечения.

Повышение достоверности испытаний на отсутствие НДВ связано в первую очередь с методическим и инструментальным обеспечением процесса сертификационных испытаний.

В компании ООО "Газинформсервис" разработаны технология и набор инструментов под общим названием IRIDA - инструментальный комплекс (ИК) для проведения статического и динамического анализа потоков управления в исполняемых кодах программ.

увеличить увеличить

Состав ИК IRIDA

В состав инструментального комплекса входят:

  • Интегрированная среда IRIDA Viewer, предназначена для создания базы данных комплекса, помещения в базу данных дизассемблированного с использованием дизассемблера IDA PRO исполняемого кода программы, статического анализа потоков управления в исследуемой программе, подготовки маршрутов для динамического анализа и создания средств их анализа.
  • Программный комплекс ExeTracerME, предназначен для расстановки контрольных точек для трассировки маршрутов хода выполнения исследуемого exe или dll модуля на платформе Windows и создания программы динамического и статического контроля динамических маршрутов в исследуемой программе.

Возможности инструментального комплекса

С помощью IRIDA Viewer осуществляется интерактивное исследование программного кода. В IRIDA Viewer автоматизированы процессы получения следующих характеристик и представлений программного кода:
  • характеристик структурированности программного кода подпрограмм и их нарушения;
  • общее число путей в программе, минимаксное покрытие вершин (описание и представление минимального числа путей максимального веса, покрывающих все вершины (линейные участки) управляющего графа подпрограммы;
  • описание дерева вызова подпрограмм из заданной подпрограммы;
  • классификация подпрограмм, определение статистики вызовов подпрограмм и списков вызываемых подпрограмм процессными подпрограммами;
  • классификация передач управления на подпрограммы;
  • сопоставление структурных характеристик управляющего графа подпрограммы с операторами управления алгоритмического языка программирования и "поднятие" связей в УГП и др.
В рамках IRIDA Viewer автоматизированы также основные операции по подготовке динамического анализа (ДА) потоков управления в и между подпрограммами и создания средств для автоматического контроля соответствия статических и динамических маршрутов:

  • формирование статических маршрутов вызовов подпрограмм и их фиксация в базе данных путем установки контрольных точек на ближние и дальние вызовы подпрограмм;
  • формирование описания управляющего графа в виде ANTLR или упрощенной грамматики языка номеров контрольных точек дальних и ближних вызовов подпрограмм - создание паспортов потоков управления для подпрограмм (метод "Диаген").
Встраивание в исследуемую программу контрольных точек и подключение к ней паспорта - эталонной модели потоков управления осуществляется с помощью программного комплекса ExeTracerME.

Программный комплекс ExeTracerME на выходе формирует лабораторную сборку исследуемой программы с установленными контрольными точками и с (или без) подключением паспорта потоков управления. После запуска исследуемой программы при вызове подпрограмм с установленными контрольными точками формируется протокол хода выполнения программы. 

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

Результаты динамической трассировки в соответствии с установленными контрольными точками могут быть наложены на статически установленные контрольные точки в среде IRIDA Viewer. Это позволяет проводить дополнительное интерактивное исследование хода выполнения программы, выявить невызываемые подпрограммы, получить статистику вызовов подпрограмм и т.д.

Защита кода от НДВ

Технология IRIDA может использоваться не только при проведении сертификационных испытаний и тестировании программного обеспечения, но и для защиты от проявления и использования скрытых дефектов в программах, а также защиты программного кода от атак. При этом средством защиты выступает паспорт потоков управления в программе.

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

Инструментальный комплекс IRIDA функционирует под управлением операционной системы Windows 2000/ХР, имеетсертификат ФСТЭК России №1305

Программа exe Документы Сертификаты / Свидетельства
IRIDA -- Документация по установке №1305
Руководство пользователя