ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 22.11.2023
Просмотров: 243
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
3. Технические средства разделяются на программные и аппаратные. Под первой группой средств обычно понимают программы, применяемые для предупреждения заражения и выявления факта заражения. К аппаратным средствам относятся различные устройства, позволяющие контролировать обращения к данным жесткого диска, проверять при загрузке операционной системы состояние загрузочного сектора и т. п.
Задача защиты от разрушающих программных воздействий (РПВ) может ставиться в нескольких принципиально различных вариантах. Классический вариант состоит в выявлении и ликвидации вирусов. Ослабленная разновидность данного варианта – только выявление вируса. Понятно, что алгоритмы нахождения и удаления вирусов отличаются некоторой принципиальной ненадежностью (возможен пропуск вируса во время процедуры проверки при условии, что вирус в компьютерной системе присутствует (ошибка первого рода)). Кроме того, выше мы говорили о множестве путей внедрения РПВ и их разнообразном негативном воздействии. Следовательно, для защиты важной компьютерной системы необходимо полностью исключить наличие РПВ (или допустить присутствие РПВ с вероятностью не выше заданной и очень малой).
Формализуем общую задачу борьбы с разрушающими программными воздействиями, рассмотрев следующие начальные условия.
1. Априори неизвестно наличие в каком-либо множестве программ фрагментов РПВ. Ставится задача определения факта их наличия или отсутствия; при этом программы не выполняются (статическая задача).
2. При условиях, рассматриваемых в пункте 1, прикладные программы используются по своему прямому назначению. Также ставится задача выявления закладки, но в данном случае динамическая (по результатам работы).
3. Происходит обмен программным продуктом (либо в пространстве – передача по каналу связи или пересылка на магнитном носителе, либо во времени – хранение), априори свободным от потенциально опасных действий. Программный продукт не исполняется. Задача защиты (статическая) ставится в трех вариантах:
1) не допустить внедрение закладки;
2) выявить внедренный код закладки;
3) удалить внедренный код закладки.
4. При условиях пункта 3 решается динамическая задача – защита от воздействия закладок в ходе работы программ.
5. При условии потенциальной возможности воздействия закладок решается задача борьбы с их итоговым влиянием
, т. е. закладки присутствуют в системе, но либо не активны при выполнении критических действий прикладных программ, либо результат их воздействия не конструктивен.
Далее рассмотренные задачи будем упоминать как задачи 1 – 5.
Методы борьбы с воздействием закладок можно разделить на классы и связать с общей проблемой защиты программного обеспечения от несанкционированного доступа.
1. Общие методы защиты программного обеспечения, решающие задачи борьбы со случайными сбоями оборудования и несанкционированным доступом:
1) контроль целостности системных областей, запускаемых прикладных программ и используемых данных (решение задачи 3);
2) контроль критических для безопасности системы событий (решение задачи 2).
Данные методы действенны лишь тогда, когда контрольные элементы не подвержены воздействию закладок и разрушающее воздействие либо инициирующее его событие входят в контролируемый класс. Так, система контроля за вызовом прерываний не будет отслеживать обращение к устройствам на уровне портов. Но также и контроль событий может быть обойден путем:
• навязывания конечного результата проверок;
• влияния на процесс считывания информации;
• изменения контрольных элементов (хеш-функций), хранящихся в общедоступных файлах или в оперативной памяти.
Важно, что контроль должен быть выполнен до начала влияния закладки либо контроль должен осуществляться полностью аппаратными средствами с программами управления, содержащимися в ПЗУ;
3) создание безопасной и изолированной операционной среды (решение задачи 4);
4) предотвращение результирующего воздействия вируса или закладки (например, запись на диск только в зашифрованном виде на уровне контроллера – тем самым локальное сохранение информации закладкой не имеет смысла – или запрет записи на диск на аппаратном уровне) (решение задачи 5).
2. Специальные методы выявления программ с потенциально опасными последствиями:
1) поиск фрагментов кода по характерным последовательностям (сигнатурам), свойственным закладкам, либо, наоборот, разрешение на выполнение или внедрение в цепочку прерываний только программам с известными сигнатурами (решение задач 1, 2);
2) поиск критических участков кода (с точки зрения безопасности компьютерной системы) методом семантического анализа. При этом анализ фрагментов кода на выполняемые ими функции (например, выполнение НСЗ) часто сопряжен с дизассемблированием или эмуляцией выполнения (решение задач 1, 2).
Рассмотрим процесс создания защищенного фрагмента компьютерной системы применительно к проблеме защиты от РПВ.
Первоначально необходимо убедиться, что в программном обеспечении ПЗУ вычислительных средств системы (например, в BIOS ПЭВМ) не имеется РПВ. Данная задача может решаться в статическом варианте (задача 1) и динамическом варианте (задача 2). С точки зрения экономико-временных параметров целесообразнее решение задачи 1, поскольку в противном случае требуется длительная работа в аппаратной среде в различных режимах. На практике желательно комплексно решать как первую, так и вторую задачу.
Далее следует определить состав программных средств базовой вычислительной среды, т. е. определить конкретную операционную среду, дополнительные сервисные программные средства (например, программные оболочки или средства телекоммуникации) и программные средства поддержки дополнительного оборудования (программы управления принтером и др.).
После этого наступает самый трудоемкий этап, на котором необходимо убедиться в отсутствии РПВ в описанном базовом наборе программных средств. При этом в составе ПО базовой вычислительной среды не должно быть целого класса возможностей (назовем их инструментальными). Прежде всего это возможность вмешательства оператора в содержимое оперативной памяти (запись), возможность инициирования и прекращения выполнения процессов нестандартным образом (помимо механизмов операционной среды).
Обобщенно достаточные условия к базовому набору ПО можно сформулировать следующим утверждением. В составе ПО, которое может быть инициировано в компьютерной системе, не должно быть функций порождения и прекращения выполнения процессов, кроме заранее определенных, и не должно быть возможностей влияния на среду выполнения уже активных процессов и на сами эти процессы.
Затем осуществляются проектирование и разработка программных или программно-аппаратных средств защиты компьютерной системы, а затем их тестирование.
Весь комплекс программного обеспечения, включая и средства защиты, замыкается в изолированную программную среду, при этом предполагается неизменность состава полученного в ходе выполнения шагов 1 — 3 программного продукта. Подробности механизма реализации этой среды приведены ниже.
Очевидно, что при пустом множестве активизирующих событий для закладки потенциальные деструктивные действия с ее стороны невозможны. Положим, что в ПЗУ (BIOS) и операционной системе отсутствуют закладки. Пусть пользователь работает с программой, процесс написания и отладки которой полностью контролируются, т. е. в ней также исключено наличие закладок или каких-либо скрытых возможностей (проверенная программа). Внедрение закладки в такую систему возможно лишь в следующих случаях:
1) проверенные программы будут использованы на другом компьютере с другой BIOS, которая может содержать закладки;
2) проверенные программы будут использованы в аналогичной, но непроверенной операционной среде, в которой могут содержаться закладки;
3) проверенные программы используются на проверенном компьютере и в проверенной операционной среде, но запускаются еще и непроверенные программы, потенциально несущие в себе закладки.
Следовательно, деструктивные действия закладок гарантированно невозможны, если:
1) на компьютере с проверенной BIOS установлена проверенная операционная среда;
2) достоверно установлена неизменность операционной среды и BIOS для данного сеанса работы;
3) кроме проверенных программ, в данной программно-аппаратной среде не запускалось и не запускается никаких иных программ;
4) исключен запуск проверенных программ в какой-либо иной ситуации, т. е. вне проверенной среды.
При выполнении перечисленных условий программная среда называется изолированной.
Итак, мы видим, что основными элементами поддержания изолированности среды являются контроль целостности и контроль активности процессов. При этом для алгоритмов контроля целостности важно выполнение таких условий, как:
1) надежный алгоритм контроля;
2) контроль реальных данных.
Поясним подробнее пункт 2. Контроль целостности всегда сопряжен с чтением данных (по секторам, по файлам и т. д.). Например, закладка в BIOS может навязывать при чтении вместо одного сектора другой или редактировать непосредственно буфер. Однако даже контроль BIOS может происходить под наблюдением какой-либо дополнительной аппаратуры и не показать ее изменение. Аналогичные эффекты могут возникать и при обработке файла.
Рассмотрим модель безопасной загрузки, или ступенчатого контроля. Она заключается в постепенном установлении неизменности компонентов программно-аппаратной среды: сначала проверяется неизменность BIOS, при положительном исходе через проверенную BIOS считываются загрузочный сектор и драйверы операционной среды (по секторам), и их неизменность также проверяется; через проверенные функции операционной среды загружается драйвер контроля вызовов программ.
При рассмотрении проблемы защищенности информации при ее обработке в компьютерной системе необходимо обращать внимание на наличие скрытых возможностей в базовом ПО. Скрытые возможности сами по себе или в сочетании с другими программами из базового ПО могут привести к опосредованному НСД. Для обеспечения безопасности обрабатываемой информации и всего информационного процесса в целом необходимо в базовом ПО предусмотреть:
1) невозможность запуска никаких иных программ, кроме входящих в состав базового ПО;
2) невозможность повлиять на среду функционирования и сами программы, уже выполняемые в компьютерной системе;
3) невозможность изменить любые программы базового ПО.
Наиболее просто было бы выполнить условия 1 – 3 в тех случаях, когда все базовое ПО находится в ПЗУ и ПЗУ не содержит более никаких программ и фрагментов кода. Инициирование программ происходит при включении питания. Однако в таком случае система будет представлять собой нечто похожее на микрокалькулятор.
На практике в компьютерной системе работают несколько пользователей, каждый из которых использует некоторое подмножество программ базового ПО. Кроме того, они, как правило, имеют возможность запускать другие программы. Практически в любом компьютере имеется возможность влиять на среду функционирования программ. При этом выполнить условия 1 – 3 становится практически невозможно.
Рассмотрим функционирование программ в изолированной программной среде (ИПС). Тогда требования к базовому ПО существенно ослабляются. Разумеется, ИПС контролирует активизацию процессов через операционную среду, контролирует целостность исполняемых модулей перед их запуском и разрешает инициирование процесса только при одновременном выполнении двух условий – принадлежности к разрешенным программам и неизменности программ. В таком случае от базового ПО требуется:
1) невозможность запуска программ в обход контролируемых ИПС событий;
2) отсутствие возможностей влиять на среду функционирования уже запущенных программ (фактически это требование невозможности редактирования оперативной памяти).
Все прочие действия, являющиеся нарушением условий 1 – 3 в оставшейся их части, будут выявляться и блокироваться. Таким образом, ИПС существенно снижает трудозатраты на анализ ПО на наличие скрытых возможностей.
При включении питания компьютера происходят тестирование ОП, инициализация таблицы прерываний и поиск расширений BIOS. При наличии расширений управление передается им. После отработки расширений BIOS в память считывается первый сектор дискеты или винчестера, управление передается ему, код загрузчика считывают драйверы. Далее выполняются файлы конфигурации, подгружается командный интерпретатор и выполняется файл автозапуска.