logo
ИнфСборник по ЗИ и ИБ

Логико-аналитические методы анализа безопасности по.

Логико-аналитические методы решают задачу в пространстве программ. Это означает, что для доказательства того, что программа безопасна необходимо доказать, что она не принадлежит множеству РПС (V).

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

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

Более сложные методы используют формальные модели основанные на совокупности признаков, свойственных тому или иному разрешимому подмножеству РПС.

Формальная постановка задачи анализа безопасности логико-аналитическими методами может быть сформулирована следующим образом:

Выбрана некоторая система моделирования программ, в которой каждая программа может быть представлена своей моделью, обладающей множеством атрибутов А={аi | i=1..N}. В выбранной системе исследуемая программа'? представляется своей моделью Мp, которая характеризуется множеством атрибутов Аp={аpi | i=1..N}. В рамках этой системы моделирования должно быть задано разрешимое подмножество РПСV*V, обладающее определенной на множестве атрибутов А характеристической функциейX.v1, а2…аN). Подмножество РПС V*может быть получено либо путем построения моделей всех известных РПС, либо путем порождения моделей всех РПС, возможных в данной системе моделирования.

Тогда задача анализа безопасности сводится к вычислению значения характеристической функции X.v на множестве атрибутов программы р —еслиX.v1, а2…аN) истинно, то программа р является РПС, принадлежащим подмножеству РПСV*{pV*), если ложно, то программа не является РПС, принадлежащим выделенному разрешимому подмножеству РПСV*(pV*).

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

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

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

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

Сравнение логико-аналитических и контрольно-испытательных методов анализа безопасности.

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

Для сравнения методов предлагаются следующие признаки: способ представления предметной области, методы решения проблем неразрешимости множества нелегитимных отношений и неперечислимости рабочего пространства, а также надежность получаемых результатов. Надежность методов анализа может определяться вероятностью ошибок первого и второго рода. Под ошибкой первого рода понимается принятие за РПС безопасной программы, а под ошибкой второго рода —объявление безопасной программы, на самом деле являющейся РПС.

Разделение методов, их особенности и преимущества показаны в таблице:

Контрольно-тспытательные методы

Логико-аналитические методы

Способ проедставления предметной области.

Пространство отношений программы с объектами ВС.

Пространство программ.

Принцип поиска РПС.

Фиксация установления программой запрещенного отношения с объектами ВС.

Доказательство принадлежности программы к множеству РПС.

Решение проблемы разрешимости легитимности отношений.

С помощью аппроксимации пространства легитимных отношений для данной программы и ВС.

С помощью сведения к проблеме разрешимости множества РПС и анализ безопасности относительно разрешимого подмножества РПС.

Решение проблемы перечислимомти рабочего пространства.

Статистические и экстраполяционные методы теории верификации и функционального тестирования.

Не требуется.

Ошибки первого рода.

Весьма вероятны. Чем строже требования, предъявляемые в заданной ВС, тем больше вероятность ошибки.

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

Ошибки второго рода.

Маловероятны. Чем строже требования по безопасности, тем меньше вероятность ошибки.

Неизбежны. Определяются мощностьб разрешимого подмножества РПС.

Преимущества.

Не требует теоретической проработки.

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

Устойчивость к ошибкам второго рода.

Метод отражает требования конкретных ВС.

Опирается на формальную теоирю.

Не требует значительных затрат на этапе применения.

Высокая надежность полученных результтаов относительно выбранного подмножества РПС.инвариантность метода по отношению к различным классам программ.

Позволяет создавать автоматические, простые и доступные средства проверки безопасности.

Недостатки.

Проведение испытаний требует существенных затрат времени и других ресурсов.

Процесс тестирвания требует выделенной испытательной ВС и должен проводиться специалистами.

Подвержен ошибкам второго рода — проверяется лишь часть множества РПС.

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

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

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