Д. В. Анисимов Научный руководитель В. А. Петров, к т. н., доцент

Вид материалаДокументы
Подобный материал:

УДК 004.056:378(06) Проблемы информационной безопасности в системе высшей школы


Д.В. Анисимов

Научный руководитель – В.А. Петров, к.т.н., доцент

Московский инженерно-физический институт (государственный университет)


ПРОБЛЕМЫ, ПРЕПЯТСТВУЮЩИЕ АНАЛИЗУ ИСХОДНЫХ ТЕКСТОВ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ


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


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

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

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

В результате анализа [1,2] были выделены следующие основные виды маскирующих преобразований для исходных текстов:
  • текстуальные преобразования, которые изменяют только внешний вид программы. К этой группе относятся удаление комментариев, удаление отладочной информации, переформатирование программы, изменение имён идентификаторов.
  • преобразования структур данных, изменяющие структуры данных, с которыми работает программа. К ним относятся, преобразование, изменяющее иерархию наследования классов в программе, преобразование, объединяющее скалярные переменные одного типа в массив.
  • преобразования потока управления программы, которые изменяют структуру её графа потока управления, такие как развёртка циклов, выделение фрагментов кода в процедуры, использование непрозрачных предикатов, внесение недостижимого или избыточного кода и другие.

Для борьбы с маскирующими преобразованиями используются методы анализа исходных текстов программ, которые делятся на два основных вида: статические и динамические [5]. К методам статического анализа относятся: анализ указателей, устранение мертвого кода, минимизация количества переменных. Методами динамического анализа являются: статистическое сравнение трасс, анализ покрытия базовых блоков программы, динамическое выделение мертвого кода и другие.

В настоящее время существует ряд программных средств для автоматизации поиска уязвимостей защиты исходных текстов ПО на языках С и С++, такие как: CodeSurfer, Flawfinder, ITS4, Pscan, UNO, FlexeLint, Splint и другие. Однако эти средства содержат ограниченный набор методов анализа и не задействуют все методы статистического анализа программ, ограничиваясь только контекстным анализом. Согласно [4], применение глубокого статистического анализа программ может позволить существенно снизить количество ложных срабатываний и повысить точность обнаружения уязвимостей защиты.

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


Список литературы

  1. Чернов А.В. Анализ запутывающих преобразований программ. Сб. "Труды Института системного программирования", под. ред. В. П. Иванникова. М.: ИСП РАН, 2002.
  2. How To Write Unmaintainable Code. com/unmaincamouflage.php
  3. Гайсарян С.С., Чернов А.В., Белеванцев А.А., Маликов О.Р., Мельник Д.М., Меньшикова А.В. О некоторых задачах анализа и трансформации программ. Трудыссылка скрыта. s.ru
  4. Чернов А.В. Об одном методе маскировки программ. Труды ссылка скрыта. rum.ru/security/articles/mask/index.shtml
  5. РД Гостехкомиссии “Защита от несанкционированного доступа к информации. Часть 1. Программное обеспечение средств защиты информации. Классификация по уровню контроля отсутствия недекларированных возможностей”.




ISBN 5-7262-0557-Х. XII Всероссийская научно-практическая конференция