Сравнение логико-аналитических и контрольно-испытательных методов анализа безопасности программ
Для сравнения методов предлагаются следующие признаки: представления предметной области, методы решения проблем неразрешимости легитимности и неперечислимости рабочего пространства, а также надежность получаемых результатов [ПБП]. Надежность методов анализа определяется вероятностью ошибок первого и второго рода. Под ошибкой первого рода понимается принятие за РПС безопасной программы, а под ошибкой второго рода - объявление программы безопасной, когда на самом деле она содержит РПС.
С методической точки зрения логико-аналитические методы выглядят более предпочтительными, так как основываются на формальном подходе и приближают перспективное решение проблемы связанное с доказательством разрешимости множества РПС. Кроме того, они позволяют создать легко применяемые средства анализа, независящие от анализируемых программ. Однако на данное время любой из этих методов имеет существенный недостаток - исследование безопасности проводится лишь относительно некоторого подмножества РПС.
С практической точки зрения, - с точки зрения обеспечения безопасности КС контрольно-испытательные методы обладают рядом преимуществ, связанных с их привязкой к конкретной КС и программе‚ а также с их надежностью в отношении ошибок второго рода. Однако затраты, необходимые для организации процесса тестирования, являются преградой для их применения, за исключением критических компьютерных систем.
Из вышесказанного можно сделать вывод, что ни один из методов не имеет решающего преимущества перед другим. Использование методов той и другой группы должно опираться только на их соответствие решаемой задаче, необходимо применять те методы, которые в данной ситуации наиболее эффективны и оправданы.
Разделение методов, их особенности и преимущества показаны в табл.2.1.
Таким образом, проблема анализа безопасности программного обеспечения в условиях распространения РПС является весьма актуальной. Данная проблема находится в тесной связи с проблемами анализа ПО и его верификацией. Без решения данной проблемы невозможно решить задачу создания защищенных КС, гарантированно являющихся безопасными и целостными.
Для полного решения проблемы анализа безопасности программ необходимо осуществить следующие действия [ПБП].
1. Создать теоретические основы анализа безопасности ПО, создать словарь предметной области и осуществить в рамках этого словаря формальную постановку задачи анализа безопасности ПО;
2. Создать методы анализа безопасности ПО, используя выбранные формальные определения, доказать их эффективность и реализуемость;
3. Создать конкретные программные средства, реализующие методы анализа безопасности программ в конкретных аппаратно-программных средах;
4. Создать методики применения этих средств и оценить их эффективность.
Таблица 2.1
Методы | Контрольно-испытательные | Логико-аналитические |
Способ представления предметной области | Пространство отношений программы с объектами КС. | Пространство программ. |
Принцип поиска РПС | Фиксация установления программой нелегитимности отношения доступа к объектам КС. | Доказательство принадлежности программы к множеству РПС. |
Поиск проблемы неразрешимости легитимности отношений | С помощью аппроксимации пространства легитимных отношений для данной программы и КС. | С помощью сведения к проблеме разрешимости множества РПС и анализ безопасности относительно разрешимого подмножества РПС. |
Решение проблемы перечислимости рабочего пространства | Статистические и экстраполяционные методы теории верификации и функционального тестирования. | Не требуется. |
Ошибки первого рода | Весьма вероятны. Чем строже требования, предъявляемые в заданной КС, тем больше вероятность ошибки. | При строгом доказательстве разрешимости подмножества РПС и корректно определенной характеристической функции исключены. |
Ошибки второго рода | Маловероятны. Чем строже требования по безопасности, тем меньше вероятность ошибки. | Неизбежны. Определяются мощностью выбранного разрешимого подмножества РПС. |
Преимущества | Не требует теоретической подготовки. Допускает использование имеющихся стандартных программных средств. Устойчивость к ошибкам второго рода. Метод отражает требования конкретных КС. | Опирается на формальные методы. Не требует значительных затрат на этапе применения. Высокая надежность полученных результатов относительно выбранного подмножества РПС. Инвариантность метода по отношению к различным классам программ. Позволяет создавать автоматические простые и доступные средства проверки безопасности. |
Недостатки | Проведение испытаний требует существенных затрат времени и других ресурсов. Процесс тестирования требует выделения испытательной КС и должен проводится специалистами. | Подтверждены ошибками второго рода – проверяется лишь часть множества РПС. |