IRIDA
Инструментальный комплекс для проведения статического и динамического анализа потоков управления в исполняемых кодах программ. Предоставляет возможность интерактивного исследования программного кода.
Безопасность современных информационных технологий в значительной мере определяется отсутствием в них скрытых дефектов — недокументированных возможностей (НДВ). Контроль отсутствия НДВ выполняется в процессе сертификационных испытаний программного обеспечения в рамках статического и динамического анализа программного обеспечения.
Повышение достоверности испытаний на отсутствие НДВ связано в первую очередь с методическим и инструментальным обеспечением процесса сертификационных испытаний.
В компании ООО «Газинформсервис» разработаны технология и набор инструментов под общим названием IRIDA — инструментальный комплекс (ИК) для проведения статического и динамического анализа потоков управления в исполняемых кодах программ.
Рис. 1
Рис. 2
Состав ИК 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.