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

Вопросы 6 и 7. Методы анализа безопасности программного обеспечения.

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

Для того чтобы доказать, что исследуемая программа р безопасна, необходимо и достаточно доказать, что pV, что с учетом предложенного определения РПС означает, что множество отношенийAp* ,которому принадлежат все отношения с объектами ВС, устанавливаемые программой р в процессе выполнения, не содержит нелегитимных отношений.

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

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

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

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

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

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

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

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

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

Методы анализа безопасности программ

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

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

Определение разрешимого подмножества РПС.

Определение характеристической функции.

Вычисление значения характеристической функции для исследуемой программы.

Аппроксимация множества нелегитимных отношений.

Установление критериев безопасности.

Построение программы испытаний.

Контроль за выполнением программы.

Контроль за состоянием ВС.

Применение средств контроля.

Определение значений контролируемых параметров.

Проверка критериев безопасности программы.