Далее используем определения, введенные в [3]:
Определение 5.1: Вектор входных воздействий (ВВВ) программы - это упорядоченная совокупность входных переменных, поступающих из внешней среды.
Определение 5.2: Входное множество (входная область) программы - это совокупность всех возможных значений ВВВ.
Определение 5.3: Область допустимых значений (ОДЗ) ВВВ - это множество значений ВВВ, которые могут реально задаваться при эксплуатации программы.
Обнаружение закладки осложняется тем фактом, что мощность входного множества может по оценкам специалистов [3] быть порядка 1070 - 10100, а мощность ОДЗ 1015 - 1020 . Поэтому тестирование всей входной области с целью выявления закладки потребует практически бесконечного времени. Вероятностный подход к тестированию дает решение этой проблемы, однако риск оставить закладку незамеченной остается. Другие методы выявления закладок [4] используют знание конкретных особенностей ВС. Так, чтобы осуществить контроль целостности системных областей, контроль цепочек прерываний и семантический анализ фрагментов кода на выполняемые им функции необходимо детально знать систему команд конкретного процессора, важнейшие прерывания, количество и адреса портов, область рабочей памяти BIOS и т.д. Такая работа может быть проведена при условии получения от заказчика подробной информации о составе ВС, всего исследуемого на безопасность ПО и условий его функционирования. Если аппаратная часть ВС изменится (что происходит достаточно часто в наши дни, ввиду бурного прогресса вычислительной техники), то изменится и система команд и прерываний. Ценность проделанной работы при этом снижается. Работа по выявлению закладок должна быть проведена заново с учетом новых, более широких возможностей, появившихся у злоумышленника.
Таким образом ПО, созданное с использованием технологии низкого уровня, является очень сложным объектом для исследования на безопасность. Процесс разработки ПО, использующий указанную технологию трудно канонизировать и стандартизировать. Ниже рассматривается концепция объектно-ориентированною программирования (ООП) с точки зрения возможностей повышения безопасности ПО на этапе его разработки.
Объектно-ориентированное программирование является новым этапом в эволюционном развитии технологии программирования, появившемся в результате усилий, направленных на преодоление недостатков подхода, носящего название структурного программирования. При разработке нового подхода преследовались цели: повысить степень повторного использования ПО, увеличить его надежность и приблизить ход рассуждений разработчика ПО к тому способу мышления, тем манипуляциям с абстрактными типами данных, которые характерны для работ на ранней стадии проектирования ПО без учета конкретного языка программирования. Как было показано [З]. понятие безопасности ПО достаточно тесно связано с понятием его надежности, поэтому основные принципы, положенные в основу ООП, повышают безопасность ПО на этапе разработки.
Центральными понятиями в ООП являются инкапсуляция и скрытие данных [5]. Введем следующие определения:
Определение 5.4: Под абстрактным типом данных понимают такую программную модель, которая определяет набор допустимых значений рассматриваемого типа и набор допустимых операций, производимых с этим типом данных.
Определение 5.5: Инкапсуляция - это связывание определенного типа данных с набором процедур и функций, используемых для манипуляции этими данными.
Определение 5.6: Скрытие данных - это невозможность доступа к внутренней структуре данных, минуя специально созданные для этого процедуры.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.