Информационно-безопасные системы. Анализ проблемы: Учебное пособие, страница 16

Далее используем определения, введенные в [3]:

Определение 5.1: Вектор входных воздействий (ВВВ) программы - это упорядоченная совокупность входных переменных, поступающих из внешней среды.

Определение 5.2: Входное множество (входная область) программы - это совокупность всех возможных значений ВВВ.

Определение 5.3: Область допустимых значений (ОДЗ) ВВВ - это множество значений ВВВ, которые могут реально задаваться при эксплуатации программы.

Обнаружение закладки осложняется тем фактом, что мощность входного множества может по оценкам специалистов [3] быть порядка 1070 - 10100, а мощность ОДЗ 1015 - 1020 . Поэтому тестирование всей входной области с целью выявления закладки потребует практически бесконечного времени. Вероятностный подход к тестированию дает решение этой проблемы, однако риск оставить закладку незамеченной остается. Другие методы выявления закладок [4] используют знание конкретных особенностей ВС. Так, чтобы осуществить контроль целостности системных областей, контроль цепочек прерываний и семантический анализ фрагментов кода на выполняемые им функции необходимо детально знать систему команд конкретного процессора, важнейшие прерывания, количество и адреса портов, область рабочей памяти BIOS и т.д. Такая работа может быть проведена при условии получения от заказчика подробной информации о составе ВС, всего исследуемого на безопасность ПО и условий его функционирования. Если аппаратная часть ВС изменится (что происходит достаточно часто в наши дни, ввиду бурного прогресса вычислительной техники), то изменится и система команд и прерываний. Ценность проделанной работы при этом снижается. Работа по выявлению закладок должна быть проведена заново с учетом новых, более широких возможностей, появившихся у злоумышленника.

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

5.2. Концепция ООП

Объектно-ориентированное программирование является  новым этапом в эволюционном развитии технологии программирования, появившемся в результате усилий, направленных на преодоление недостатков подхода, носящего название структур­ного программирования. При разработке нового подхода преследовались цели: повы­сить степень повторного использования ПО, увеличить его надежность и приблизить ход рассуждений разработчика ПО к тому способу мышления, тем манипуляциям с аб­страктными типами данных, которые характерны для работ на ранней стадии проек­тирования ПО без учета конкретного языка программирования. Как было показано [З]. понятие безопасности ПО достаточно тесно связано с понятием его надежности, по­этому основные принципы, положенные в основу ООП, повышают безопасность ПО на этапе разработки.

Центральными понятиями в ООП являются инкапсуляция и скрытие данных [5]. Введем следующие определения:

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

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

Определение 5.6: Скрытие данных - это невозможность доступа к внутренней структуре данных, минуя специально созданные для этого процедуры.