Диссертация (1091136), страница 5
Текст из файла (страница 5)
Виды потенциально опасных возможностей, реализуемыхвредоносным кодом программного продукта при оценке на качествоУказанные выше способы выявления уязвимостей (ошибок, дефектов)применимы только для программного продукта, который имеет исходный текст.Как показывает статистика, на территории Российской Федерации используетсяболее 70% импортного ПП, который не имеет исходных текстов и не может бытьподвергнуто исследованию, предлагаемому по РД, поэтому автоматизированныйпроцесс исследования для этого программного продуктане применим.Выполненный анализ показывает, что большинство программ хорошо справляются27со статическим анализом, динамический анализ присутствует не у всех, однакосамым важным выявленным аспектом является неприменимость программногопродукта, указанного в Таблице 3, для анализа продуктов, у которых отсутствуютисходные тексты.При наличии исходного текста эксперт выявляет потенциально опасныеконструкции (уязвимости), итогом его работы должно быть утверждение, чтооцениваемый продукт надежен, корректен и безопасен.
С другой стороны,программный продукт, не имеющий исходных текстов, потенциально несет угрозуавтоматизированной системе, в которой он должен функционировать. Дляреализациипотенциальнозаложеннойугрозыпрограммадолжнавзаимодействовать с общим и прикладным программным обеспечением и темсамым воздействовать на систему в целом.Введемтакоепонятие,как«кодспотенциальноопаснымивозможностями».
Данным определением назовем код, реализующий одно илинесколько действий конкретного вида, последствия, выполнения которых могутлибо непосредственно представлять угрозу целостности, достоверности иконфиденциальностиданных,либоприводитьквыполнениюкода,представляющего данную угрозу.Виды опасных возможностей представлены на схеме (рис. 4). Каждый изкоторых представляет собой: передачу управления в область модифицированных данных; самомодификацию или изменение кода других программ в оперативнойпамяти или на внешних носителях; самодублирование, подмену собой других программ или перенос своихфрагментов в область оперативной или внешней памяти, не принадлежащиепрограмме; сохранениеинформациипринадлежащих программе;изобластейоперативнойпамяти,не28 искажение,блокированиеилиподменуинформации,являющейсярезультатом работы других программ; скрытие своего присутствия в программной среде.Передача управления в область модифицированных данных используетсядля активизации выполнения динамически сформированного кода.
Программа,реализующая такую возможность, формирует алгоритм своего функционирования(по крайней мере, его часть) динамически, во время своего выполнения. Такаявозможность позволяет создавать или изменять участки кода, не обнаруживаемыестатическим анализатором, что приводит к неполному восстановлению алгоритмафункционирования исследуемой программы на этапе статического анализа.Самомодификация программы в оперативной или внешней памятиприводит к изменению алгоритма функционирования программы относительно ееисследуемого образца.Отсюда следует невозможность полного восстановления алгоритма (всех еговариантов) путем статического анализа.Модификация кода других программ в оперативной или внешней памятиприводит к изменению их функциональности и может использоваться длявнедрения закладок.Виды потенциально опасных возможностейУправление передается в область модифицированныхданныхСамомодификация илиизменение кодаИзменения производятся в других программахоперативной памяти или внешних носителяхСамодублированиеПодмена собой других программ или перенос своихфрагментов в области оперативной или внешней памяти, непринадлежащие программеСохранениеинформацииСохранение информации из областей оперативной памяти,не принадлежащих программеИскажениеБлокировкаКак результат работы других программПодмена информацииФантомноеприсутствиеСкрытие своего присутствия в программной средеРисунок 4- Основные виды потенциально опасных возможностей29Передача управления30Целью такой модификации может являться получение кодом, содержащимопасные возможности, более высоких привилегий на выполнение.
Сохранениеинформации из областей оперативной памяти, не принадлежащих программе,представляетсобойобращениекобластямоперативнойпамяти,непринадлежащим процессу, с целью их копирования в собственные области памятилибо во внешнюю память.
Такая памятьможет приводить к утечкеконфиденциальных данных, а также данных, критичных для безопасности системыв целом либо отдельных приложений.Искажение, блокирование или подмена информации, которые сталирезультатом работы других программ, представляют собой новые данные,размещаемые в оперативной памяти или на внешних носителях. Такое искажение,блокирование или подмена преследуют цель навязывания входной или выходнойинформации. К примеру, навязывание результата проверки пароля, навязываниедлины файла, подлежащего шифрованию, изменение файла перед установкойЭЦП4, и т.
п.Скрытие присутствия некоторого кода в теле программы имеет своей цельюзатруднение обнаружения и исследования этого кода. Для затрудненияобнаружения и анализа кода могут использоваться следующие способы:самомодификация кода, передача управления внутрь инструкций, эмуляциякоманд переходов и вызовов, шифрование и компрессия кода.В разделе 1.2 было сказано, что процесс в виртуальной операционной средес полным контролем действий программы и отслеживанием алгоритма ееработы осуществляется более эффективно. В следующем разделе выполниманализ средств виртуализации (гипервизоров) используемых при разработке иотладки программного продукта.4ЭЦП – Электронно-цифровая подпись311.5 Обзор и сравнительная характеристика программных средстввиртуализации, используемых при оценке качества и надежностипрограммного продуктаПри оценке качества программного продукта с исходным кодом, экспертруководствуется нормативной базой 1990-х годов и использует внушительныйинструментарий специализированного ПП [43].Стоит отметить, что при оценке программного продукта без исходныхтекстов применяется только дизассемблирование с дальнейшим детальнымразбором получаемых машинных команд и данных.Рассмотрим подход, применяемый в мировой практике при разработке ипроверке функционирования ПП без исходных текстов на наличие потенциальноопасных конструкций.
Потенциально опасные конструкции могут быть заложеныцеленаправленно, или их появление обусловлено наличием ошибок из-занедобросовестной разработки. В свою очередь, опасные конструкции реализуютскрытые угрозы, влияющие на стабильную работу вычислительной системы.С целью предотвращения заражения работоспособной системы вредоноснымипрограммами, а также исключения аварийных ситуаций, связанных с ошибкамиконфигурации,применяютсявиртуальныемашины.Однойизобластейприменения виртуальных машин является изучение вредоносных программ(вирусов, «червей» и «троянов»).
Они позволяют изолировать основную(хостовую) операционную систему от зараженных рабочих приложений [8], [32],[34].В литературе подробно рассмотрены положительные и отрицательныестороны применения виртуализации.Виртуализация системы чаще всего осуществляется с помощью технологиигипервизора. Другое название гипервизора - монитор виртуальных машин [47].Под гипервизором принято понимать программное или микропрограммноеобеспечение,позволяющеевычислительных систем.виртуализироватьсистемныересурсы32Рассмотрим более подробно типы гипервизоров. Их принято разделять на дватипа: гипервизоры первого типа работают непосредственно на оборудованиисистемы, а гипервизоры второго типа работают поверх базовой операционнойсистемы, которая обеспечивает службы виртуализации, такие как поддержкаустройства ввода/вывода и управление памятью.Гипервизоры первого и второго типа представлены на Рисунках 5 и 6соответственно.Частнымслучаемгипервизорапервоготипаявляютсявложенныегипервизоры (представлены на рис.
7) [47].В настоящее время самыми популярными гипервизорами являютсяследующие программные продукты: PowerVM, VMware ESX Server, Xen, KVM,z/VM, Bochs [47], [48].33ОСОСОСВиртуальнаямашинаВиртуальнаямашинаВиртуальнаямашинаГипервизорФизическое оборудованиеРисунок 5 - Гипервизор первого типаОСОСОСВиртуальнаямашинаВиртуальнаямашинаВиртуальнаямашинаГипервизорОперационная системаФизическое оборудованиеРисунок 6 - Гипервизор второго типаВиртуальнаямашинаВиртуальнаямашинаВиртуальнаямашинаВиртуальнаямашинаГостевойгипервизор ХВиртуальнаямашинаГостевойгипервизор YГлавный гипервизорФизическое оборудованиеФизическое оборудованиеРисунок 7 - Вложенные гипервизоры34Гипервизор35Основные представители семейства гипервизоров [36]:1. PowerVM представляет собой гипервизор первого типа, который работаетна базе серверов IBM POWER5, POWER6 и POWER7.Этот гипервизорподдерживается операционными системами IBM i, AIX и Linux [36].
Структурнаясхема PowerVM представлена на Рисунке 8.2. ESX Server представляет собой гипервизор первого типа, который создаетлогические пулы системных ресурсов, позволяя множеству виртуальных машинразделять одни и те же физические ресурсы.ESX Server - это операционная система, которая функционирует какгипервизор и работает непосредственно на оборудовании сервера. Структурнаясхема ESX Server [36] представлена на Рисунке 9.3. Хеn представляет собой гипервизор первого типа, который позволяетмножеству виртуальных машин разделять одни и те же физические ресурсы [36].Он работает непосредственно на оборудовании системы и добавляет уровеньвиртуализации между аппаратной частью системы и виртуальными машинами.Структурная схема Хеn представлена на Рисунке 10.Хеn основан на паравиртуализации и требует внесения в гостевыеоперационные системы изменений, направленных на поддержку операционнойсреды Хеn [36].