Методы анализа безопасности ПО

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

2.2.1 Классификация методов анализа безопасности

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

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

2.2.2. Контрольно-испытательные методы анализа безопасности ПО.

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

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

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

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

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

- зафиксирована попытка установления запрещенного отношения ОZp - программа р не удовлетворяет требованиям по безопасности, предъявляемым для эксплуатации в ВС S;

- исчерпан лимит тестовых испытаний, отведенный для проведения исследований, - необходимо продолжить испытания, или применить для оценки безопасности программы р вероятностные методы;

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

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

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

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

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

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

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

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

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

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

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

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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: