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

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

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

Д.В. Гуцко

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


ИСПОЛЬЗОВАНИЕ МЕТОДА ДИНАМИЧЕСКОГО АНАЛИЗА В СИСТЕМАХ АВТОМАТИЗАЦИИ ОБНАРУЖЕНИЯ НЕДЕКЛАРИРОВАННЫХ ВОЗМОЖНОСТЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ


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

Анализ программного обеспечения может производиться двумя группами методов: методами статического и динамического анализа.

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

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

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

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

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

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

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

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

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


ISBN 5-7262-0711-4. XIV Всероссийская научная конференция