В.П. Мельников и др. - Информационная безопасность и защита информации (1022816), страница 34
Текст из файла (страница 34)
Современные технологии программирования предполагают высокую степень автоматизации процессов создания, отладки и тестирования программ. Применение стандартных модулей позволяет упростить процесс создания программ, поиска ошибок и закладок. Для разработки программных средств, свободных от ошибок и закладок, необходимо выполнение следующих условий; ° использование объектно-ориентированного программирования; ° наличие автоматизированной системы разработки программных средств; ° применение комплексного контрольно-испытательного стенда; ° наличие аппаратных средств для обнаружения закладок; ° организация защиты КС. Одним из перспективных направлений создания программного обеспечения повышенной безопасности является использование обьектпо-ориентировапного программирования, идушего на смену структурному программированию.
Применение объектно-ориентированного программирования (ООП) позволяет разделить фазы описания и фазы реализации абстрактных типов данных. Два выделенных модуля допускают раздельную компиляцию. В модуле описания задаются имена и типы внутренних защищенных и внешних данных, а также перечень процедур (методов) с описанием типов и количества параметров для них. В модуле реализации находятся собственно процедуры, обрабатывающие данные. Такое разделение повышает надежность программирования, так как доступ к внутренним данным возможен только с помощью процедур, перечисленных в модуле описания. Это позволяет определять большую часть ошибок в обработке абстрактного типа данных на этапе компиляции, а не на этапе выполнения.
Анализ программных средств на наличие закладок облегчается, так как допустимые действия с абстрактными данными задаются в модуле описания, а не в теле процедур. Одним из центральных понятий ООП является понятие «класс», С помощью этого понятия осушествляется связывание определен- 152 ного типа данных с набором процедур и функций, которые могут манипулировать с этим типом данных. Преимушество ООП заключается также в предоставлении возможности модификации функционирования, добавления новых свойств или уничтожении ненужных элементов, не изменяя того, что уже написано и отлажено.
Пользователю достаточно определить объекты, принадлежащие к уже созданным классам, и посылать им сообщения. При этом контроль безопасности программного продукта сводится к анализу модулей описания классов. Если класс из библиотеки классов не удовлетворяет разработчика, то он может создать класс, производный от базового, произвести в нем необходимые изменения и работать с объектами полученного производного класса. Если данные и методы базового класса не должны быть доступны в производных классах, то их следует описать как внутренние. Автоматизированные системы разработки программных средств— одно из эффективных средств защиты процессов переработки информации не только на этапе разработки, но и при эксплуатации программных продуктов. Особенного эффекта можно добиться в процессах нейтрализации угроз как от закладок, так и от непреднамеренных ошибок персонала. Автоматизированная система (АС) создается на базе локальной вычислительной сети (ЛВС).
В состав ЛВС входят рабочие станции программистов и сервер администратора. Программисты имеют полный доступ только к информации своей ЭВМ и доступ к ЭВМ других программистов в режиме чтения. С рабочего места администратора возможен доступ в режиме чтения к любой ЭВМ разработчиков.
База данных алгоритмов разрабатываемого программного средства находится на сервере администратора и включает в себя архив утвержденных организацией-разработчиком и контролирующей организацией алгоритмов программного средства в виде блок-схем, описания на псевдокоде для их контроля администратором. На сервере администратора располагается база данных листингов программ разрабатываемого программного средства, включающая в себя архив утвержденных организацией-разработчиком и контролирующей организацией программ для их контроля администратором с применением программ сравнения листингов и поиска измененных и добавленных участков программ.
На сервере администратора находится также база данных эталонных выполняемых модулей программ разрабатываемого программного средства для их контроля с применением программ поиска изменений в этих модулях. Программы контроля версий листингов программ и сравнения выполняемых модулей'должны быть разработаны организацией, не связанной ни с организацией-разработчиком, ни с контроли- 153 руюшей организацией и должны контролировать программы любого назначения. Контроль за безопасностью разработки может осуществляться следующим образом. Алминистратор в соответствии со своим графиком без уведомления разработчиков считывает в базы данных листинги программ и выполняемые модули.
С помощью программ сравнения администратор выявляет и анализирует изменения, которые внесены разработчиком, по сравнению с последним контролем. По мере разработки выполняемых модулей в базе администратора накапливаются готовые к сдаче заказчику эталонные образцы выполняемых модулей, сохранность которых контролируется администратором. Применение такой организации работ позволяет администратору выявлять закладки и непреднамеренные ошибки на всех стадиях разработки программного средства. Администратор не может сам внедрить закладку, так как у него нет права на модификацию программ, разрабатываемых программистами.
Одним из наиболее эффективных путей обнаружения закладок и ошибок в разрабатываемых программных средствах является применение комплексного контрольно-испытательного стенда разрабатываемой системы. Он позволяет анализировать программные средства путем подачи многократных входных воздействий на фоне изменяющихся внешних факторов, с помощью которых имитируется воздействие возможных закладок.
Таким образом, контрольно-испытательный стенд может рассматриваться как детальная имитационная модель разрабатываемой системы, позволяющая обеспечивать всесторонний анализ функционирования разрабатываемого программного средства в условиях воздействия закладок. Контрольно-испытательный стенд должен отвечать следующим требованиям: ° должен быть построен как открытая система, допускающая модернизацию и наращивание возможностей; ° должен обеспечивать адекватность структуры и информационных потоков структуре и информационным потокам реальной системы; ° должен удовлетворять взаимозаменяемость программных модулей модели и реальной системы; ° должен позволять проводить как автономные испытания модулей, так и всего программного средства в целом. Контрольно-испытательный стенд может содержать следующие блоки: ° модуль системы, который состоит из программных блоков и программных молулей реальной системы; ° модуль конфигурации модели системы, осуществляющий регистрацию и динамическое включение программных модулей 154 реальной системы и блоков программных модулей из соответствующих баз данных; ° база данных моделей угроз — для накопления и модификации моделей угроз„представленных в формализованном виде; ° модуль формирования входных воздействий, учитываюший возможные угрозы, ограничения на входную информацию и результаты тестирования на предыдушем шаге; ° модель внешних воздействий, предназначенная для учета воздействий, внешних по отношению к моделируемой системе; ° модуль анализа результатов тестирования.
Выполняемые модули программных средств проверяются в процессе сертификации на специальных аппаратно-программных стендах, способных имитировать функционирование испытываемого программного средства на допустимом множестве входных и внешних воздействий. При контроле выполняется операция, обратная транслированию — дизассемблирование. Для упрошения анализа выполняемых модулей применяются также отладчики, программы-трассировшики, которые позволяют проконтролировать последовательность событий, порядок выполнения команд.
Наличие аппаравных ередпив для обнаружения закладок на этапе разработки, производства и эксплуатации является эффективными приемами устранения и нейтрализации угроз. Аппаратные закладки могут внедряться не только в процессе разработки и модернизации, но и в процессе серийного производства„транспортирования и хранения аппаратных средств. Для зашиты от внедрения аппаратных закладок кроме следования общим принципам зашиты необходимо обеспечить всестороннюю проверку комплектуюших изделий, поступающих к разработчику (производителю) извне.