Технология CORBA (Назначение CORBA. Общие положения по применению системы «CORBA»)
Содержание:
Введение
Ядро CORBA брокер (посредник) объектных запросов (ORB). Это что-то вроде магистрали для объектов. Основная задача ORB оказывать посреднические услуги при обмене запросами между объектами. Хотя ORB "обитает" в среде клиент -сервер, объекты, с которыми он работает, выполняют функции либо клиентов, либо серверов, в зависимости от обстоятельств. Если объект принимает и обрабатывает запрос, то он играет роль сервера. Если он отправляет запрос, то выступает в роли клиента. Основная задача ORB прием и отправка запросов, а также передача результатов, в том числе перехват каждого запроса одного объекта другому; определение местонахождения объекта, который, предположительно, обработает запрос; запуск соответствующего метода принимающего объекта; при необходимости передача параметров и передача результатов объекту, инициировавшему запрос. Поскольку ORB обрабатывает запросы "прозрачно", неважно, от какого объекта локального или удаленного поступил запрос. При обработке этих запросов для ORB не имеет значения ни язык программирования, ни операционная система или платформа. Механизм, обеспечивающий "прозрачность" обработки запросов, называется языком определения интерфейса (Interface Definition Language, IDL). Этот язык применяется для объявления границ и интерфейсов объекта. Во многом подобно независимому арбитру, IDL нейтрален и не зависит от объектов и ORB, тем не менее он связывает поставщиков служб распределенных объектов с их клиентами. Всякому, кто знаком с DCOM, наверное, известно, что в модели DCOM используется IDL. Но IDL DCOM несовместим с CORBA и работает иначе, чем IDL CORBA. В CORBA предусматривается множественное наследование, а ее IDL-средствам наследование необходимо для инкапсуляции объектов. Это существенно облегчает многократное использование блоков программ. В DCOM механизм множественного наследования не реализован. Поэтому вы должны подготовить и объединить все интерфейсы, прежде чем к ним обратится клиент. Язык IDL хорош тем, что позволяет кратко описать API, сохранив при этом свободу определить методы на любом языке программирования, который обеспечивает связывание с CORBA. К таким языкам относятся Ада, Кобол, Си, Си++, Smalltalk и Java. У некоторых поставщиков имеются собственные средства согласования с CORBA для Visual Basic и Фортрана. Как известно любому человеку, имевшему дело с объектно-ориентированным программированием, для составления запроса необходимы сведения об интерфейсе принимающего объекта, а объекты должны быть разработаны так, чтобы они могли получать информацию об интерфейсах тех объектов, с которыми они будут взаимодействовать. Но, пытаясь применить этот подход для распределенной между гетерогенными объектами обработки, вы столкнетесь с множеством проблем. Для подлинной независимости IDL в CORBA используется репозиторий (хранилище) интерфейсов, предназначенный для хранения сигнатур методов, принадлежащих объектам, с тем чтобы эти сигнатуры можно было динамически извлекать и обновлять во время исполнения программы. Благодаря этому все объекты в корпоративной системе могут получить информацию об интерфейсах других объектов, методах, принадлежащих этим интерфейсам, и параметрах, необходимых для обращения к ним.
Целью данной курсовой работы является определение назначения CORBA, изучение технологий CORBA и ее объектно-ориентированных компонентов.
1. Назначение CORBA. Общие положения по применению системы «CORBA»
Технология CORBA создана для поддержки разработки и развёртывания сложных объектно-ориентированных прикладных систем. CORBA является механизмом в программном обеспечении для осуществления интеграции изолированных систем, который даёт возможность программам, написанным на разных языках программирования, работающих в разных узлах сети, взаимодействовать друг с другом так же просто, как если бы они находились в адресном пространстве одного процесса.
Спецификация CORBA предписывает объединение программного кода в объект, который должен содержать информацию о функциональности кода и интерфейсах доступа. Готовые объекты могут вызываться из других программ (или объектов спецификации CORBA), расположенных в сети.
Спецификация CORBA использует язык описания интерфейсов (OMG IDL) для определения интерфейсов взаимодействия объектов с внешним миром, она описывает правила отображения из IDL в язык, используемый разработчиком CORBA-объекта.
Стандартизованы отображения для Ада, Си, C++, Lisp, Smalltalk, Java, Кобол, ObjectPascal, ПЛ/1 и Python.
Также существуют нестандартные отображения на языки Perl, Visual Basic, Ruby и Tcl, реализованные средствами ORB, написанными для этих языков.
1.1 Объекты по значению
Помимо удалённых объектов в CORBA 3.0 определено понятие объект по значению. Код методов таких объектов по умолчанию выполняется локально. Если объект по значению был получен с удалённой стороны, то необходимый код должен либо быть заранее известен обеим сторонам, либо быть динамически загружен. Чтобы это было возможно, запись, определяющая такой объект, содержит поле Code Base — список URL, откуда может быть загружен код. У объекта по значению могут также быть и удалённые методы, поля, которые передаются вместе с самим объектом. Поля, в свою очередь также могут быть такими объектами, формируя таким образом списки, деревья или произвольные графы. Объекты по значению могут иметь иерархию классов, включая абстрактные и множественное наследование.
1.2 Компонентная модель CORBA (CCM)
Компонентная модель CORBA (CCM) — недавнее дополнение к семейству определений CORBA.
CCM была введена начиная с CORBA 3.0 и описывает стандартный каркас приложения для компонент CORBA. CCM построено под сильным влиянием Enterprise Java Beans (EJB) и фактически является его независимым от языка расширением. CCM предоставляет абстракцию сущностей, которые могут предоставлять и получать сервисы через чётко определённые именованные интерфейсы, порты. Модель CCM предоставляет контейнер компонентов, в котором могут поставляться программные компоненты. Контейнер предоставляет набор служб, которые может использовать компонент. Эти службы включают (но не ограничены) службу уведомления, авторизации, персистентности и управления транзакциями. Это наиболее часто используемые распределённым приложением службы. Перенося реализацию этих сервисов от необходимости реализации самим приложением в функциональность контейнера приложения, можно значительно снизить сложность реализации собственно компонентов.
Одной из наиболее распространенных программных систем ЗИ является «Кобра», предназначенная для защиты конфиденциальной информации при обработке и хранении в однопользовательском и многопользовательском режимах эксплуатации ПК. Основными ее потребительскими свойствами являются: качественный уровень ЗИ; высокое быстродействие; технологичность. К основным функциям «Кобры» относятся: идентификация и аутентификация пользователя; парольный вход; накопление, хранение и обработка информации в преобразованном (шифрованном) виде; «прозрачная» ЗИ на уровне логического устройства ПК, логического диска, каталогов и шаблонов файлов; управление доступом; мандатный контроль доступа; регистрация и учет событий; объединение пользователей в группы с общими файлами; защита файлов пользователей на чтение, запись, удаление, переименование, изменение, создание с тем же именем; запрещение запуска программ с дискет; контроль целостности ПО; работа пользователя в привычной среде; индивидуальная и групповая настройка; сигнализация об эталонном изменении целостности ПК; обеспечение полноты функций ЗИ при работе с широким спектром прикладного ПО от пользовательских оболочек до интегральных сред. «Кобра» является многоуровневой системой ЗИ. Защита от загрузки через НГМД в обход «Кобры» путем динамического преобразования информации и специальной технологии взаимодействия модулей защиты. Идентификация и аутентификация путем одностороннего преобразования и хранения только контрольных значений, а не паролей, а также путем использования основных и дополнительных паролей и входе при раздельном вводе независимыми субъектами двух разных паролей. Обеспечение ПРД путем санкционирования доступа, детализацией разграничения доступа к шаблонам файлов и ресурсам ПК, а также блокировкой клавиатуры и экрана. Периодический КЦ системы «Кобра» автоматически (в период загрузки и окончания работы ПК), и вручную (во время процесса работы ПК), а также регистрация действий администраторов и пользователей и самостоятельное восстановление рабочей среды. Специальные преобразования информации в «прозрачную» для легальных пользователей. Кратко рассмотрим подсистемы системы «Кобра». Подсистема обеспечения санкционированного доступа обеспечивает ЗИ на уровне логических дисков. Каждому законному пользователю ЭВМ устанавливаются индивидуальные полномочия по доступу к логическим дискам: запрет доступа, только чтение, полный доступ, суперзащита (гарантия конфиденциальности информации при похищении дискет, жестких дисков, или даже самого ПК). Устанавливаются каждому законному пользователю полномочия доступа к последовательным и параллельным портам ПК по принципу: есть доступ, нет доступа. «Кобра» реализует мандатный принцип контроля полномочий доступа (возможность считать объект, осуществлять запись в объект и осуществлять коррекцию) применительно ко всем объектам при явном и скрытом доступе со стороны любого из пользователей. Для реализации этого принципа сопоставляются классификационные метки каждого пользователя системы и каждого объекта (логических устройств), отражающих их место в соответствующей иерархии. Посредством этих меток пользователям и объектам назначаются классификационные уровни (категории конфиденциальности). При вводе новых данных в систему запрашиваются от санкционированного пользователя классификационные метки этих данных. При санкционированном занесении в список пользователей нового пользователя ему назначаются, в зависимости от уровня доступа, классификационные метки. Подсистема закрытия позволяет закрыть доступ к ресурсам ПК через системную дискету. При этом «Кобра» выдает пользователю специальную системную дискету, с которой, при необходимости, можно загрузиться. Любая другая дискета будет игнорироваться. Подсистема обеспечения целостности рабочей среды ПК осуществляет анализ и фиксацию состояния рабочей среды ПК, которая в дальнейшем принимается как эталонная, контролируется и поддерживается. Подсистема фиксирует: обнаружение несанкционированных изменений в рабочей среде ПК со стороны лиц, получивших доступ к ней; обнаружение несанкционированных изменений, вызванных вредоносными программами; обнаружение искажений в программах и ключевой информации, возникших в результате машинных сбоев или износа магнитного носителя. Подсистема контролирует состояние оперативной памяти ПК, содержание главной корневой записи диска и загрузочного сектора, состояние файлов конфигурирования, автозапуска, файлов с системными и прикладными программами и данными, а также, контролирует действия вирусов (как известных, так и новых). Кроме того, подсистема предоставляет возможность автоматического восстановления основных компонентов рабочей среды ПК, а в случае невозможности автоматического восстановления автоматически сигнализирует об этом пользователю, выдавая данные о поврежденных частях рабочей среды ПК для проведения ручного восстановления. Подсистема регистрации и учета работы предназначена для: регистрации изменений ПРД; регистрация длительности сеанса работа каждого пользователя ПК; регистрация нарушений пользователем инструкций по работе с системой «Кобра»; накопление сведений о работе каждого пользователя на ПК за отчетный период; выдачи по запросу справки о работе за текущий период, в том числе: имя, дата регистрации, общее время нарушений правил работы с «Коброй». Подсистема файлового закрытия информации осуществляет закрытие информации в файлах, в группах файлов, в каталогах, в группах каталогов (с подкаталогами) и логических разделах дисков или дискет. Подсистема представляет собой автоматизированное рабочее место (администратора, оператора компьютерной сети, оператора базы данных или пользователя компьютера, нуждающегося в надежном закрытии своей информации). Подсистема детального разграничения доступа к шаблонам файлов предназначена для разграничения доступа к файлам данных и программ, находящихся на одной ПК. Разграничение производится на уровне каталогов и отдельных файлов, позволяя разграничивать отдельно по чтению записи, удалению, переименованию файлов или каталогов, запуску на выполнение. Подсистема разграничения доступа к ресурсам ПК предназначена для разграничения доступа к функциональным клавишам, файлам, каталогам, командной строке DOS. Подсистема затираний обеспечивает физическое удаление стираемой на магнитных носителях информации. Подсистема регистрации предназначена для контроля действий пользователя с целью выявления некорректных или преднамеренных действий пользователей или вредоносных программ. Подсистема блокировки клавиатуры и монитора предназначена для блокировки работы клавиатуры и монитора при отсутствии ввода информации с клавиатуры. Подсистема создания дополнительных логических дисков предназначена для создания необходимого количество дисков, без предварительного удаления информации с них. Подсистема окончания работы позволяет выполнить проверку целостности рабочей среды с целью обнаружения и исправления действий вирусов, последствий ошибочных действий пользователей и других действий, изменивших рабочую среду при завершении работы ПК. Средства преобразования информации предназначены для преобразования информации в нечитаемый вид с целью возможности ее хранения на внешних магнитных носителях.
1.3 Общий протокол межброкерного взаимодействия (GIOP)
GIOP (GeneralInter-ORB Protocol) — абстрактный протокол в стандарте CORBA, обеспечивающий интероперабельность брокеров. Стандарты, связанные с протоколом выпускает Object Management Group (OMG). Архитектура GIOP включает несколько конкретных протоколов:
Internet Inter ORBP protocol (IIOP) (Межброкерный протокол для Интернет) — протокол для организации взаимодействия между различными брокерами, опубликованный консорциумом OMG. IIOP используется GIOP в среде интернет, и обеспечивает отображение сообщений между GIOP и слоем TCP/IP.
SSL InterORBProtocol (SSLIOP) — IIOP поверх SSL, поддерживаются шифрование и аутентификация.
Hyper Text Inter ORB Protocol (HTIOP) — IIOP поверх HTTP.
Corba Loc (англ. Corba Location) — является строковой ссылкой на объект технологии CORBA, подобной URL. Borland Enterprise Server, Visi Broker Ed. — CORBA 2.6-совместимый коммерческий ORB от Borland, поддерживает Java и C++.
- MICO — свободный (LGPL) ORB с поддержкой C++.
- omni ORB — свободный (LGPL) ORB для C++ и Python.
- ORBit2 — свободный (LGPL) ORB для C, C++ и Python.
- Jac ORB — свободный (LGPL) ORB, написан на Java.
- TAO — The ACE ORB, открытый ORB для C++.
- Orbacus — коммерческий ORB для C++, Java от IONA Technologies.
CORBA (CommonObjectRequestBrokerArchitecture) – Общая Архитектура Брокера Объектных Запросов - это стандарт, набор спецификаций для промежуточного программного обеспечения (ППО, middleware) объектного типа. Задача ППО, как известно, заключается в связывании программных приложений для обмена данными.
CORBA программирование распределенных систем Уильям Р. Станек Подготовка прикладных программ, объекты которых составлены на разных языках и взаимодействуют между собой на самых разных ОС и платформах.
Взрывообразный рост Интернета и Web стал причиной появления технологий, в корне меняющих существующие способы применения компьютеров. Наиболее серьезные изменения происходят в объектно-ориентированной технологии, которой провидцы отводят новую роль в системах распределенной обработки. Вместо традиционных вычислительных сетей архитектуры клиентсервер новая эра распределенной обработки влечет за собой переход к системам масштаба предприятия с объектами, которые распределены между множеством компьютеров, способных обмениваться информацией независимо от операционной системы, платформы или языка программирования. Еще удивительнее то, что эти распределенные объекты могут быть компонентами либо одной программы, либо десятков программ, образующих систему, предназначенную для предприятия.
Назовем технологии, позволяющие осуществлять распределенную обработку в гетерогенных системах: это архитектура брокера общих объектных запросов (CommonObjectRequestBrokerArchitecture, CORBA) и протокол InternetInter-ORB Protocol (IIOP). CORBA полностью определяет архитектуру, необходимую для обмена информацией между распределенными объектами. К числу ее спецификаций относятся IIOP и множество других технологий. IIOP самый важный компонент CORBA, потому что его основная функция организация взаимодействия распределенных объектов в гетерогенной среде. Вместе CORBA и IIOP характеризуют многообразие средств промежуточного уровня, которые станут стимулом для пересмотра подходов к созданию прикладных программ в сетевых средах разработчиками всего мира.
CORBA не исключительный варианты решения, обеспечивающего распределенную обработку. Существует и конкурирующая архитектура, разработанная корпорацией Microsoft, объектная модель распределенной обработки (DistributedComputingObjectModel, DCOM), в основном представленная брокером объектных запросов (ObjectRequestBroker, ORB), который входит в состав Windows NT 4.0 и будет включен в следующую редакцию Windows[10].
CORBA детище консорциума ObjectManagementGroup (OMG), в составе которого более 700 компаний из самых различных отраслей промышленности. Цель этой организации состоит в том, чтобы определять базовые структуры для разработки приложений с использованием объектно-ориентированных методов. OMG выпускает спецификации, позволяющие стандартизировать обработку распределенных объектов, а не прикладные программы, и такая ориентация на разработку идей, а не программ принесла группе большой успех.Самый удачный результат деятельности OMG впервые реализованная в 1991 г. CORBA. CORBA описывает стандартную архитектуру для обмена информацией между распределенными объектами, благодаря которой компоненты прикладных программ могут связываться друг с другом, независимо от их местоположения в вычислительной сети. Более того, поскольку CORBA определяет стандартный интерфейс между объектами, операционная система, в которой работает объект, и язык, на котором он составлен, не имеют значения. Если объект удовлетворяет требованиям CORBA, он способен обмениваться информацией с другими распределенными объектами.Появившийся в декабре 1994 г. как составная часть спецификации CORBA 2.0 протокол IIOP еще одна удача OMG. До того как был подготовлен протокол IIOP, спецификация CORBA определяла способ взаимодействия только для распределенных объектов, созданных одним производителем. При подготовке объектов приходилось рассчитывать лишь на конкретную реализацию архитектуры. Благодаря IIOP вторая спецификация CORBA стала окончательным решением для взаимодействия объектов, которое не привязано ни к какой конкретной платформе или реализации.
С применением CORBA вы создадите системы масштаба предприятия (корпоративные системы), в которых объекты распределены по вычислительной сети. В корпоративных системах основные объекты для обслуживания файлов, необходимые прикладной программе, могут храниться на сервере Windows NT. Эти объекты вы составите, например, на языке Си++. На большом компьютере можно разместить первичные функции ядра системы скажем, используя объекты, запрограммированные на языке Кобол. Любой настольный компьютер, работающий под управлением Windows 95, пригоден для хранения внешних интерфейсов, использующих объекты, созданные средствами VisualBasic. И все эти объекты могут обмениваться информацией, а посредником при передаче запросов служит CORBA[8].
Фирмы Netscape Communications Corp. и SunMicrosystems избрали CORBA и IIOP в качестве основы для следующего поколения своих программ. Sun применяет CORBA и IIOP для реализации гетерогенных вызовов удаленных процедур в языке программирования Java 1.1, причем без этих технологий в копоративных сетях не было бы платформы Java (JavaPlatform). Более того, в API EnterpriseJavaBeans будут применяться CORBA и IIOP, чтобы обеспечить возможность создания масштабируемых прикладных программ для деловой сферы (бизнес-приложения) с многократно используемыми серверными компонентами.Дляогранизации вызовов удаленных процедур в языке Java пригодна и технология DCOM. Необходимые для этого специальные программные процедуры имеются в Visual J++. Но модель DCOM рассчитана только на платформы Windows NT 4.0 и Windows 95 (с помощью расширений InternetExplorer), т. е. DCOM не годится для обмена информацией с другими операционными системами. Microsoft сообщает, что в будущем технология DCOM будет перенесена на другие платформы.По протоколу IIOP осуществляется взаимодействие открытой сетевой среды (OpenNetworkEnvironment, ONE) фирмы Netscape с корпоративными системами. Кроме того, с помощью IIOP программисты могут подключать программы, подготовленные на языках Java, JavaScript и Си или Си++, к системам масштаба предприятия.
В программе NetscapeNavigator протокол IIOP реализуется в рамках механизма LiveConnect и предназначен для обмена информацией между апплетами, внешними модулями и сценариями.
2. Технология CORBA
2.1 Объединение компонентов
Как технология, которая обеспечивает базовые структуры для взаимодействия разнородных объектов, CORBA достигла замечательных успехов, и это при том, что она представляет собой только часть еще более крупной архитектуры управления объектами (ObjectManagementArchitecture, OMA), состоящей из следующих компонентов:
CORBA ORB оперирует запросами между объектами; Службы (сервисы) CORBA определяют служебные функции системного уровня, предназначенные для управления объектами и обеспечения их работы; Средства CORBA определяют функциональные возможности и интерфейсы на уровне прикладной программы; Объекты прикладных программ собственно объекты.Как мы уже упоминали, брокер объектных запросов управляет обменом запросами между объектами. Но как все остальные кусочки этой мозаики складываются воедино? Давайте рассмотрим службы, средства и объекты CORBA.
Помощь в организации управления и обеспечения работоспособности объектов на протяжении их жизненных циклов именно этим заняты службы CORBA. Интерфейсы этих служб пригодятся вам для создания объектов обеспечения их безопасности, определения местоположения объектов и управления объектами на уровне классов. Поскольку это службы системного, а не прикладного уровня, их можно реализовать для всего предприятия, т. е. сэкономить свое время и облегчить согласованность в масштабах предприятия.
Имеется 16 объектных служб, в том числе:
CollectionProperties
Сoncurrency Сontrol
Query Eventnotification
NshipsExternalizationSecurity
LicensingStartup
LifecycleTime
NamingTrader
PersistenceTransactions
Реальные объекты, образующие ядро совместимой с CORBA прикладной программы, называются бизнес-объектами. Бизнес-объект это способ описания понятий, не зависящих от прикладной программы, типа покупатель, заказ или плате ж. Для под готовки пр икладной про граммы вам бу дет необхо дим набор б изнес-объе ктов.В отл ичие от объе ктов систе много уров ня, которые в ыполняют т акие задач и, как под держание усто йчивости, б изнес-объе кты имеют де ло с процесс ами, характер ными для ре ального де лового мир а. Хотя ти пичный биз нес-объект несет от ветственност ь только з а одну зад ачу (напри мер, обработ ку предвар ительных з аказов, работу с по купателями и ли складом), н аборы бизнес-объе ктов можно пр именять дл я управлен ия всем биз нес-процессо м, таким, к ак продажа б илетов и обр аботка пре дварительн ых заказов н а авиарейс ы. Посколь ку бизнес-объе кты постав ляются в гото вом к работе в иде, разработч ик может, объе динив их, сост авить прик ладную про грамму, соот ветствующу ю требован иям заказч ика.Для упр авления сло жной прикл адной прогр аммой с рас пределенны ми бизнес-объе ктами у пос ледних ест ь информац ия только о то м, какие сер висные фун кции выпол няют другие объе кты, но не о то м, как эти фу нкции реал изуются на с амом деле. Б лагодаря б изнес-объе ктам мы изб авлены от с ложностей ре ализации в нутренней обр аботки, пос кольку може м сконцентр ировать вн имание на и нтерфейсах.
Компонент это набор бизнес-объектов, которые осуществляют обработку, и нкапсулиру ют данные и обес печивают необ ходимые интерфе йсы пользо вателя. Дл я взаимоде йствия объе ктов в рам ках компоне нта используетс я ORB. Кро ме того, с по мощью ORB объе кты обмени ваются инфор мацией о себе, в резу льтате объе кты "узнают" о су ществовани и других объе ктов во вре мя исполне ния програ ммы. Таким обр азом, в ко мпоненте и меется все необ ходимое дл я вывода н а экран пре дставления объе кта и взаи модействия с н им. Типичн ый бизнес- компонент мо г бы приме няться, ск ажем, для в ывода на э кран распре деления мест н а 11-часово м рейсе до Лос- Анджелеса, а дру гой для ре гистрации с ведений о бро нировании мест н а этот рейс. Возможност и компоненто в можно рас ширить за счет доб авления слу жебных фун кций систе много уров ня. Функци я Persiste nce пригод ится, чтоб ы поддержи вать состо яние объекто в в рамках ко мпонента.
Поскольку эт и сервисные фу нкции встрое ны в CORBA, и х можно пр именять дл я создания " интеллекту альных" (s mart) компо нентов, пр и этом нет необ ходимости про граммироват ь их с нул я. Хотя и в DCO M имеется реестр ко мпонентов и с правочная с лужба, там нет с пособа под держивать состо яние объекто в DCOM в перер ыве между сое динениями. Из-з а этого не достатка DCO M уступает CO RBA.На уро вне прикла дной прогр аммы, где уст анавливаютс я границы и нфраструктур ы компоненто в, базовые стру ктуры прогр амм опреде ляют способ ы реализац ии совмест ной деятел ьности нез ависимых ко мпонентов. Б лагодаря чет ко определе нным грани цам все ко мпоненты в месте функ ционируют к ак единый ко мплекс, та к что созд ается впеч атление ед инства при кладной про граммы. Име нно такое е динство поз воляет при кладным про граммам, ис пользующим р аспределен ные в гетеро генных сре дах объект ы, "прозрач но" сопряг аться друг с дру гом. "Прозр ачная" инте грация озн ачает, что по льзователи вос принимают пр икладную про грамму как е диное целое, а не к ак сложный н абор разоб щенных моду лей.Инфрастру ктуру компо нента одно й прикладно й программ ы можно рас ширить до и нфраструктур ы компонент а нескольк их программ. В это м случае CO RBA несет от ветственност ь за обмен и нформацией ме жду множест вом различ ных прикла дных прогр амм в рамк ах корпорат ивной систе мы. Для несо вместимых с CO RBA програ мм, например дост авшихся в н аследство пр иложений, мо жно создат ь оболочки (w rappers), котор ые придают и м подобие объе ктов CORBA. Обо лочка выпо лняет роль и нтерфейса, необ ходимого д ля доступа к ко нкретным фу нкциям старо й программ ы.Если вы с по мощью CORB A интегриро вали унасле дованные про граммы с про цессами кл иента и сер вера, у вас ест ь все сост авляющие м ногоуровне вой модели к лиентсервер. О дин уровен ь это визу альные объе кты, напри мер интерфе йсы, разме щаемые на к лиентских П К. Другой уро вень объект ы сервера, пре дусматрива ющие бизнес-фу нкции. Еще о дин уровен ь составля ют унаследо ванные при кладные про граммы, на пример СУБ Д на большо й ЭВМ.
Чтобы показ ать, почему CO RBA ORB та к хороши д ля ППО арх итектуры к лиент сервер, м ы приводим с ледующий « краткий» с писок замеч ательных с войств, пр исущих все м ORB:
Статические и д инамические в ызовы мето дов. CORBA ORB поз воляет стат ически опре делять вызо вы ваших мето дов во вре мя компиля ции или на ходить их д инамически во вре мя выполне ния. Таким обр азом, вам пре доставляетс я выбор: стро гий контро ль типов н а стадии ко мпиляции и ли максима льная гибкост ь при отло женном (на эт апе выполне ния) связы вании.
Связывание с яз ыком высоко го уровня. CORBA ORB поз воляет выз ывать мето ды серверно го объекта с по мощью выбр анного Вам и языка высо кого уровн я. При это м не имеет з начения на к аком языке н аписаны сер верные объе кты. CORBA от деляет интерфе йс от его ре ализации и пре доставляет нез ависимые от яз ыка типы д анных, что д ает возмож ность вызы вать объект ы из любого яз ыка и для л юбой опера ционной систе мы. Наоборот, дру гие типы про межуточного про граммного обес печения об ычно предост авляют низ ко-уров-не вые API-биб лиотеки дл я определе нного язык а . Кроме то го, они не от деляют реа лизацию от с пецификаци и и, как с ледствие, API тесно с вязан с ре ализацией, что де лает интерфе йс очень чу вствительн ым к измене ниям.
2.3 Объект CO RBA и жизне нный цикл сер ванта
POA обеспеч ивает силь ное разделе ние между сро ками служб ы объектов CO RBA и срок ами службы сер ванта. Сле дующие тер мины относ ятся к цик лу жизни объе кта CORBA:
- Активация ( activation) - з апуск сущест вующего объе кта CORBA, чтоб ы позволит ь ему прин имать запрос ы.
- Дезактивация (de activation) - з авершение р аботы акти вного объе кта CORBA.
Следующие тер мины относ ятся к цик лу жизни сер ванта:
- Воплощение ( incarnatio n) - соеди нение серв анта с объе ктом CORBA
- Уничтожение (еt herealizat ion) - разру шение ассо циации меж ду серванто м и объекто м CORBA
Во время с воей жизни объе кт CORBA мо жет быть во площен более че м одним сер вантом. В то же с амое время, от дельный сер вант, с дру гой сторон ы, может во площать бо лее одного объе кта.Техноло гия CORBA нос ит существе нно более об щий и универс альный хар актер, чем CO M, что зало жено в ее фу ндаменте. О пережение р азработки с пецификаци й (по срав нению с ре ализациями) поз воляет доб иться более с вязной, це лостной и г армоничной с истемы. С дру гой сторон ы, при разр аботке реа льного прое кта нужно пре дварительно убе диться, что в ысококачест венная реа лизация то го или ино го сервиса CO RBA уже досту пна (источ никами проб лем могут с лужить, на пример, Pe rsistenceSe rvice и Secu rityService). В настоящи й момент CO RBA не имеет с воей собст венной ком понентной мо дели; работ а над ней н ачалась в 1 998 г. и е ще не завер шена. Это г лавный сер ьезный недост аток. Прав да, он нес колько ком пенсируетс я наличием ос нованной н а CORBA ко мпонентной мо делью Ente rprise
JavaBeans, т ак что про граммисты н а Java нахо дятся в пр ивилегиров анном поло жении. Все ост альное, что пр исутствует в CO M, имеется и в CO RBA, и даже бо лее того - з а исключен ием универс альной тех нологии досту па к БД. О пять-таки, J ava-програ ммисты име ют преимущест во и здесь - з а счет нал ичия общей д ля Java те хнологии досту па к данны м JDBC.Под “станд артом” при менительно к CO RBA понимаетс я то, что оф ициально ут верждено ко нсорциумом O MG. Надо с казать, что это оче нь высокий уро вень “легит имности”, т ак как автор итет OMG в ко мпьютерном м ире чрезвыч айно высок. В н астоящий мо мент станд артизовано отобр ажение язы ка IDL на 6 яз ыков прогр аммировани я - Ada, C, C++, Cobo l, Java и S malltalk. Су ществуют т акже отобр ажения на P ascal (точ нее, Delph i), Perl, Pyt hon и еще дес яток языко в.Наиболее ис пользуемым и языками в н астоящий мо мент являютс я Java (вс ледствие пре красного вз аимодейств ия Java-те хнологий, особе нно JDBC, R MI, JNDI и E JB, с CORB A), и C++ - к ак самый эффе ктивный, мо щный и рас пространен ный язык ко мпьютерной и ндустрии. CORBA обес печивает д аже нескол ько более в ысокий уро вень за счет б азировании те хнологии ис ключительно н а языке оп исания IDL с пос ледующим отобр ажением та ких специф икаций на ко нкретный яз ык програм мирования, а т акже некотор ых возможносте й, например, а втоматичес кого (т.е. прозр ачного для про граммиста) р аспростране ния контекст а транзакц ий.CORBA в н астоящее вре мя не имеет с воей компо нентной мо дели. Пуст ь это не и меет практ ического з начения дл я Java-про граммистов, но в об щем случае эт а та област ь, где OMG ( и фирмам-про изводителя м программ ного обеспече ния) еще пре дстоит сер ьезно поработ ать.CORBA имеет оче нь развиту ю сервисну ю часть; н апример, то лько для по иска сервер ных объекто в по различ ным критер иям можно ис пользовать 4 р азличных сер виса CORBA. Кро ме того, O MG стремитс я к максим альной ста ндартизаци и вспомогате льных возмо жностей CO RBA. CORBA пре доставляет р азработчик ам существе нно большие воз можности, че м COM, в об ласти сервисов и вс помогатель ных средст в. С друго й стороны, CO M-программ исты обычно не ис пытывают к акого-либо д искомфорта из-з а их недост атка. Всле дствие огр аниченност и области пр именения CO M объектив но нет необ ходимости в соз дании таки х же развит ых и универс альных сре дств, как это со вершенно необ ходимо для CO RBA.Понятие “объе кта” в COR BA принцип иально отл ичается от с воего COM- аналога. Объе кт CORBA не я вляется пере менной язы ка програм мирования и в об щем случае вре мя его сущест вования не с вязано со вре менем работ ы серверны х или клие нтских при ложений. СO RBA-объект не з анимает ни каких ресурсо в компьютер а - операт ивной памят и, сетевых ресурсо в и т.п.
Эти ресурс ы занимает то лько так н азываемый “сер вант” (serv ant), котор ый являетс я “инкарна цией” одно го или нес кольких CO RBA-объекто в. Именно сер вант являетс я переменно й языка про граммирова ния. Пока не су ществует сер вант, сопост авленный с ко нкретным объе ктом CORBA, этот объе кт не может обс луживать в ызовы клие нтов, но, те м не менее, о н существует. Резу льтатом соз дания объе кта (при это м совершен но не обяз ательно пр и этом соз дается и со поставляетс я с этим объе ктом соответст вующий сер вант!) явл яется так н азываемая “объе ктная ссыл ка” CORBA. Объе ктная ссыл ка сопоста влена с эт им, и толь ко с этим объе ктом, и это со поставление ост ается корре ктным в тече ние всего сро ка существо вания CORB A-объекта ( может быть, в тече ние нескол ьких лет). Объе ктная ссыл ка CORBA пр авильно интер претируетс я ORB’ами от л юбого произ водителя про граммного обес печения. Пос ле уничтоже ния CORBA-объе кта все объе ктные ссыл ки на него н авсегда тер яют смысл. С по мощью объе ктной ссыл ки клиент в ызывает мето ды объекта, пр и этом инк арнациями это го объекта мо гут быть р азличные сер ванты (не бо лее одного о дновременно), котор ые физичес ки могут н аходиться д аже на раз личных ком пьютерах.CORBA являетс я существе нно более от крытой, ун иверсально й и гибкой с истемой, че м COM. И CO M, и CORBA с пособны тес но и эффект ивно взаимо действоват ь со станд артными сре дствами обес печения безопасности.
Несмотря н а внешнюю по хожесть, что в ызвано общ ностью реш аемых задач, ме жду COM и CO RBA, пожалу й, больше р азличий, че м сходства. В бо льшинстве с лучаев либо не целесообраз но использо вать CORBA ( для неболь ших и прост ых проекто в под Windows просто по пр ичине относ ительно высо ких затрат н а приобрете ние програ ммного обес печения, л ицензий и пр.), л ибо практичес ки невозмо жно использо вать COM ( для сложны х, масштаб ируемых, в ысоконадеж ных проекто в или просто пр и работе в гетеро генных сре дах, а не то лько в Windows). W indows-при ложения, ор иентирован ные на вза имодействие с M icrosoftOf fice, всег да будут ис пользовать CO M; проекты с ис пользование м Java и л юбых Java-те хнологий ( кроме Microso ft J++), к ак говоритс я, “сам бо г велел” стро ить на осно ве CORBA. Во м ногих случ аях выбор те хнологии д иктует выбор то й или иной ч асти проект а: если вы п ланируете р аботать, н апример, с O RACLE 8i, то, безус ловно, гор аздо лучше ор иентироват ься на COR BA. Област ь, где эти те хнологии ре ально конкур ируют, на мо й взгляд, оче нь невелик а.
2.4 Защит а в среде M S-DOS
Защиту от НС Д к ПК при ост авлении без з авершения се анса работ ы в среде M S-DOS можно ре ализовать с по мощью утил иты Diskreet, в ходящей в сост ав пакета No rton Utility 7- й или 8-й верс ий, так: по дключить др айвер Disk reet.sys ( включить в ф айл Config.sys стро ку DEVICE=d:\p ath\ DISKR EET.SYS, г де d и pat h – соответст венно логичес кий привод и пут ь файла Dis kreet.sys); перез агрузить ОС; з апустить ут илиту Disk reet.exe; н ажатием кл авиши F10 во йти в меню, в ыбрать пун кт Options и в вести кома нду Driver; р аскрыть сп исок «Hot key» с по мощью комб инации кла виш и выбр ать комбин ацию клави ш для блок ирования к лавиатуры, м ыши и экра на; устано вить нажат ием клавиш и пробела ф лажок Keybo ard/Screen Loc k и нажать O k; использу я команду M aster Passwo rd из пункт а меню Opt ions, ввест и главный п ароль и вы йти из ути литы. Так мо жно будет б локировать э кран, клав иатуру и м ышь, нажав уст ановленную ко мбинацию к лавиш. Для разблокирования с ледует ввест и главный п ароль и на жать клави шу . Данны й пароль необ ходимо будет в водить и пос ле выдачи ко манды Drive r в меню Opt ions из сре ды утилиты D iskreet. Д ля изменен ия главного п ароля следует з апустить ут илиту Disk reet, ввест и команду M aster Passwo rd из пункт а меню Opt ions и далее о пределить но вый пароль, в ведя предв арительно ст арый. При з абывании г лавного паро ля единстве нным выходо м из данно го положен ия являетс я удаление ф айла Diskreet. ini. Когда д анный файл отсутст вует, счит ается, что г лавный паро ль не уста новлен.
2.5 Защита в сре дах Windows. К лассификац ия компьютер ных вирусо в. Антивирус ы-полифаги
Для устано вки параметро в ЗИ от НС Д к ПК при е го оставле нии без за вершения се анса работ ы в среде W indows 3.X X необходи мо: двойны м щелчком м ыши запуст ить в Windows про грамму «Па нель управ ления» и д алее «Офор мление»; в ыбрать любо й хранител ь экрана в гру ппе элементо в «Храните ль экрана», обес печивающий з ащиту паро лем, напри мер Marquee, F lying Windows и ли Starfie fd Simulat ion; в поле «З адержка» уст ановить вре мя бездейст вия пользо вателя, по истече нии которо го будет а ктивизиров аться хран итель экра на; нажать к нопку «Пар аметры», уст ановить фл ажок «Защит а паролем» и о пределить п ароль; наж ать «Ok» и з акрыть «Па нель управ ления». По истече нии устано вленного вре мени безде йствия пол ьзователя бу дет активиз ирован хра нитель экр ана, котор ый не позво лит вернут ься в систе му без вво да пароля. Из менение паро ля осущест вляется ан алогично. Д ля установ ки параметро в ЗИ от НС Д к ПК при е го оставле нии без за вершения се анса работ ы для ОС W indows 95/ 98/NT необ ходимо: акт ивизироват ь «Панель у правления» и д алее «Экра н»; активиз ировать лист «З аставка» и в ыбрать понр авившийся хр анитель экр ана; устано вить в поле « Интервал» вре мя бездейст вия пользо вателя, по истече нии которо го будет а ктивизиров аться хран итель экра на; устано вить флажо к «Пароль»; о пределить п ароль с по мощью кноп ки «Сменит ь»; нажать «O k» и закрыт ь «Панель у правления». По истече нии устано вленного вре мени безде йствия пользователя бу дет активиз ирован хра нитель экр ана, котор ый не позво лит вернут ься в систе му без вво да пароля. Из менение паро ля осущест вляется ан алогично.
Компьютер ные вирусы к лассифициру ются в соот ветствии со с ледующими пр изнаками:
1) среда об итания: фа йловые вирус ы; загрузоч ные вирусы, з аражающие ко мпоненты с истемной об ласти, испо льзуемые пр и загрузке ОС; ф айлово-загрузоч ные вирусы.
2) способ з аражения сре ды обитани я;
3) способ а ктивизации: рез идентные и нерез идентные в ирусы;
4) способ про явления (дестру ктивные де йствия или в ызываемые эффе кты): влия ние на работу П К; искажен ие програм мных файло в, файлов с д анными; фор матирование д иска или е го части; з амена инфор мации на д иске или е го части; ис кажение BR и ли MBR дис ка; разруше ние связност и файлов путе м искажени я FAT; иск ажение дан ных в CMOS- памяти;
5) способ м аскировки: не маскирующиес я, самошифру ющиеся и сте лс-вирусы.
При повсе дневной работе по льзователь мо жет обнару жить вирус об ычно только по е го симптом ам: увеличе ние числа ф айлов на д иске; появ ление на э кране сооб щения «I F ile(s) cop ied» («Ско пирован од ин файл»), хот я вы не вы давали ком анду COPY; у меньшение объе ма свободно й оператив ной памяти; из менение дат ы и времен и создания ф айла; увел ичение раз мера прогр аммного фа йла; появле ние на дис ке зарегистр ированных дефе ктных кластеро в; ненорма льная работ а программ ы; замедле ние работы про граммы; за горание ла мпочки дис ковода в то вре мя, когда к д иску не до лжны проис ходить обр ащения; за метное возр астание вре мени досту па к жестко му диску; сбо и в работе ОС, в ч астности ее з ависание; не возможност ь загрузки ОС; р азрушение ф айловой стру ктуры (исчез новение фа йлов, иска жение ката логов). Фа йловые вирус ы либо раз личными способ ами внедря ются в выпо лняемые фа йлы (наибо лее распростр аненный ти п вирусов), л ибо создают ф айлы-двойн ики (вирус ы-компаньо ны), либо ис пользуют особе нности орг анизации ф айловой систе мы (link-в ирусы). За грузочные в ирусы запис ывают себя л ибо в загрузоч ный сектор д иска (boot-се ктор), либо в се ктор, содер жащий систе мный загрузч ик винчестер а (Master Boot Reco rd), либо ме няют указате ль на акти вный boot-се ктор. Макро вирусы зар ажают файл ы-документ ы и электро нные табли цы несколь ких популяр ных редакторо в. Сетевые в ирусы испо льзуют для с воего распростр анения прото колы или ко манды комп ьютерных сете й и электро нной почты. Су ществует бо льшое количест во сочетан ий, например ф айлово-загрузоч ные вирусы, з аражающие к ак файлы, т ак и загрузоч ные сектор а дисков. Т акие вирус ы, как пра вило, имеют до вольно сло жный алгор итм работы, ч асто приме няют ориги нальные мето ды проникно вения в систе му, использу ют "стелc-" и по лиморфик-те хнологии. Дру гой пример – сете вой макров ирус, котор ый не толь ко заражает ре дактируемые до кументы, но и р ассылает с вои копии по э лектронной почте. З аражаемая ОС (объе кты которо й подверже ны заражен ию) являетс я вторым уро внем делен ия вирусов н а классы. К аждый файло вый или сете вой вирус з аражает фа йлы какой- либо одной и ли несколь ких ОС – DO S, Windows, W in95/NT, O S/2 и т.д. М акровирусы з аражают фа йлы формато в Word, Exce l, Office 97. З агрузочные в ирусы также ор иентирован ы на конкрет ные формат ы расположе ния систем ных данных в з агрузочных се кторах дис ков. Среди особе нностей ал горитма работ ы вирусов в ыделяют рез идентность; ис пользование «сте лс»-алгорит мов; самош ифрование и по лиморфичност ь; использо вание нест андартных пр иемов. Рез идентный в ирус при и нфицирован ии ПК оста вляет в опер ативной па мяти свою рез идентную ч асть, котор ая затем пере хватывает обр ащения ОС к объе ктам зараже ния и внедр яется в ни х. Резидент ные вирусы н аходятся в п амяти и яв ляются акт ивными вплот ь до выключе ния ПК или перез агрузки ОС. Нерез идентные в ирусы не з аражают па мять ПК и со храняют акт ивность огр аниченное вре мя. Некотор ые вирусы ост авляют в о перативной п амяти небо льшие рези дентные про граммы, котор ые не распространяют в ирус. Такие в ирусы счит аются нерез идентными. Рез идентными мо жно считат ь макровирус ы как присутст вующие в п амяти ПК в тече ние всего вре мени работ ы зараженно го редактор а. Роль ОС берет н а себя ред актор, а по нятие «перез агрузка ОС» тр актуется к ак выход из ре дактора. В м ногозадачн ых ОС врем я «жизни» рез идентного DO S-вируса т акже может б ыть ограниче но моменто м закрытия з араженного DO S-окна, а а ктивность з агрузочных в ирусов в не которых ОС о граничиваетс я моментом и нсталляции д исковых др айверов ОС. Ис пользование "сте лc''-алгор итмов позво ляет вирус ам полност ью или част ично скрыт ь себя в с истеме. На иболее рас пространен ным "стелс"- алгоритмом я вляется пере хват запросо в ОС на чте ние-запись з араженных объе ктов, зате м "стелс"- вирусы либо вре менно лечат и х, либо по дставляют в место себя нез араженные уч астки инфор мации. В с лучае макро вирусов на иболее попу лярный способ – з апрет вызо вов меню прос мотра макросо в. Один из пер вых файлов ых "стелс"- вирусов – в ирус Frodo, пер вый загрузоч ный "стелс"- вирус – Br ain. Самош ифрование и по лиморфичност ь использу ются практ ически все ми типами в ирусов для м аксимально го усложне ния процедур ы обнаруже ния вируса. По лиморфик-в ирусы (poly morphic) тру дно обнару живаются, не и меют сигнатур, т.е. не со держат ни о дного посто янного участ ка кода. Д ва образца о дного и то го же поли морфик-вирус а обычно не и меют ни од ного совпа дения. Это дост игается шифро ванием осно вного тела в ируса и мо дификациям и программ ы-расшифро вщика. Нест андартные пр иемы часто ис пользуются в в ирусах для то го, чтобы г лубже спрят аться в ядре ОС ( вирус «ЗАР АЗА»), защ итить от об наружения с вою резиде нтную копи ю (вирусы T PVO, Trout 2), затруд нить лечен ие от вирус а (например, по мещают сво ю копию в F lash-BIOS) и т. д. По дестру ктивным воз можностям в ирусы можно р азделить н а: безвред ные, никак не в лияющие на р аботу ПК ( кроме умен ьшения свобо дной памят и на диске в резу льтате рас пространен ия); неопас ные, влиян ие которых о граничиваетс я уменьшен ием свобод ной памяти н а диске и гр афическими, з вуковыми и проч ими эффект ами; опасн ые вирусы, котор ые могут пр ивести к серьезны м сбоям в р аботе ПК; оче нь опасные, котор ые могут в ызвать потер ю программ, д анных, инфор мации в систе мных област ях памяти и д аже, как г ласит одна из не проверенны х компьютер ных легенд, с пособствов ать быстро му износу д вижущихся ч астей меха низмов – в водить в резо нанс и разру шать голов ки некотор ых типов в инчестеров. Д аже если в а лгоритме в ируса не н айдено вет вей, нанос ящих ущерб, этот в ирус нельз я с полной у веренность ю назвать без вредным, т ак как он мо жет вызват ь непредск азуемые и поро й катастроф ические пос ледствия. Ве дь вирус, к ак и всяка я программ а, имеет о шибки, в резу льтате котор ых могут б ыть испорче ны как фай лы, так и се кторы диско в (например, в полне безоб идный на пер вый взгляд в ирус DenZu k довольно корре ктно работ ает с 360- килобайтов ыми дискет ами, но мо жет уничто жить инфор мацию на д искетах бо льшего объе ма). До си х пор попа даются вирус ы, определ яющие СОМ и ли ЕХЕ не по в нутреннему фор мату файла, а по р асширению. Пр и несовпаде нии формат а и расшире ния имени ф айл после з аражения о казывается нер аботоспособ ным. Возмо жно также «з аклинивание» рез идентного в ируса и систе мы при испо льзовании но вых версий DO S, при работе в W indows или с дру гими мощны ми програм мными систе мами. И та к далее. Ф айловые вирус ы при свое м размноже нии тем ил и иным способо м использу ют файлову ю систему к акой-либо ( или каких- либо) ОС. О ни могут в недряться пр актически во все ис полняемые ф айлы всех по пулярных ОС. Из вестны вирус ы, поражаю щие все ти пы выполняе мых объекто в стандарт ной DOS: ф айлы с ком понентами DO S, командн ые файлы ( ВАТ), загру жаемые дра йверы (SYS- и B IN-файлы, в то м числе спе циальные ф айлы IO.SY S и MSDOS. SYS) и выпо лняемые дво ичные файл ы (ЕХЕ, СО М). Сущест вуют вирус ы, поражаю щие исполн яемые файл ы других ОС – W indows З.х, W indows 95/ NT, OS/2, M acintosh, U nix, включ ая VxD-дра йверы Windows З. х и Windows 95. Воз можна запис ь вируса и в ф айлы данны х, но это с лучается л ибо в резу льтате ошиб ки в вирусе, л ибо при про явлении его а грессивных с войств. Ма кровирусы т акже запис ывают свой ко д в файлы д анных – документы и ли электро нные табли цы, однако эт и вирусы н астолько с пецифичны, что в ынесены в от дельную гру ппу. По способу з аражения ф айлов вирус ы делятся н а overwrit ing, параз итические (p arasitic), ко мпаньон-вирус ы (companio n), link-в ирусы, вирус ы-черви и в ирусы, зар ажающие объе ктные моду ли (OBJ), б иблиотеки ко мпиляторов ( LIB) и исхо дные текст ы программ ( в расчете н а компиляц ию этих про грамм). Ove rwriting-в ирусы испо льзуют наибо лее просто й метод зар ажения: за писывают с вой код вместо ко да заражае мого файла, у ничтожая е го содержи мое. Файл перест ает работат ь и не восст анавливаетс я. Такие в ирусы очен ь быстро об наруживают себ я, так как ОС и пр иложения до вольно быстро перест ают работат ь. Практичес ки не извест но ни одно го случая об наружения по добного ти па вируса « в живом ви де». Разно видностью я вляются вирус ы, записыв ающиеся вместо DO S-заголовк а NewEXE-ф айлов. Осно вная часть ф айла при это м остается без из менений и про должает нор мально работ ать в соот ветствующе й ОС, одна ко DOS-заго ловок оказ ывается ис порченным. P arasitic-в ирусы при р аспростране нии своих ко пий обязате льно измен яют содерж имое файло в, оставля я сами фай лы при это м полность ю или част ично работос пособными. Ос новными ти пами таких в ирусов явл яются вирус ы, записыв ающиеся в н ачало (prepe nding), ко нец (append ing) и сере дину файло в (inserti ng). Внедре ние в сере дину проис ходит разл ичными мето дами: пере носом част и файла в ко нец или вне дрением в з аведомо не используем ые данные ф айла (cavity- вирусы). В недрение в ируса в нач ало файла воз можно двум я способам и. Первый с пособ (рис. 5.1, а) з аключается в то м, что вирус пере писывает н ачало зара жаемого фа йла в его ко нец, а сам ко пируется н а освободи вшееся место. Пр и втором с пособе (рис. 5.1, б) в ирус создает в о перативной п амяти свою ко пию, допис ывает к не й заражаем ый файл и со храняет по лученную ко нкатенацию н а диск. Не которые вирус ы при этом до писывают в ко нец файла б лок дополн ительной и нформации ( например, в ирус Jerus alem по это му блоку от личает зар аженные фа йлы от нез араженных). Р ис. 5.1. В недрение в ируса в нач ало файла: а- первым; б-вторым способо м Внедрение в н ачало файл а применяетс я обычно пр и заражени и ВАТ- и СО М-файлов DO S. Известно нес колько вирусо в, записыв ающих себя в н ачало ЕХЕ-ф айлов DOS, W indows. Пр и этом вирус ы, чтобы со хранить работос пособность про граммы, либо леч ат заражен ный файл, по вторно запус кают его, ж дут оконча ния его работ ы и снова з аписываютс я в его нач ало (иногд а используетс я временны й файл, в котор ый записыв ается обез вреженный ф айл), либо восст анавливают ко д программ ы в памяти П К и настра ивают необ ходимые адрес а в ее теле (т.е. дуб лируют работу ОС). В недрение в ируса в ко нец файла я вляется на иболее рас пространен ным способо м внедрени я вируса в ф айл (рис. 5. 2). Вирус из меняет нач ало файла т аким образо м, что пер выми выпол няемыми ко мандами яв ляются ком анды вирус а. В DOS СО М-файле это дост игается об ычно измене нием его пер вых трех ( или более) б айтов на ко ды инструк ции JMP Loc_V irus (или в бо лее общем с лучае – на ко ды програм мы, переда ющей управ ление на те ло вируса). DO S ЕХЕ-файл пере водится в фор мат СОМ-фа йла и зате м заражаетс я как СОМ-ф айл либо мо дифицируетс я заголово к файла. В з аголовке DO S ЕХЕ-файл а изменяютс я значения ст артового а дреса (CS: IP) и длин ы выполняе мого модул я (файла), ре же – регистр ы-указател и на стек ( SS:SP), ко нтрольная су мма файла и т. д. В выпол няемых фай лах Windows и O S/2 (NewEX E – NE, РЕ, L E, LX) изме няются пол я в NewEXE-з аголовке. Стру ктура этого з аголовка з начительно с ложнее заго ловка DOS Е ХЕ-файлов, поэто му изменен ию подлежит бо льшее число по лей – значе ние старто вого адрес а, количест во секций в ф айле, хара ктеристики се кций и т.д. До полнительно к это му длины ф айлов пере д заражение м могут уве личиваться до з начения, кр атного пар аграфу (16 б айт) в DOS и ли секции в W indows и O S/2 (размер се кции завис ит от пара метров заго ловка ЕХЕ-ф айла). Рис. 5. 2. Внедрен ие вируса в ко нец файла В ирусы, вне дряющиеся в DO S SYS-файл ы, приписы вают свои ко ды к телу ф айла и мод ифицируют а дреса прогр амм страте гии (Strategy) и прер ывания (Inte rrupt) зар ажаемого др айвера (ил и адрес то лько одной из программ). Пр и инициализ ации зараже нного драй вера (рис. 5. 3) вирус пере хватывает соот ветствующи й запрос ОС, пере дает его др айверу, ждет от вета, корре ктирует его и ост ается в од ном блоке в п амяти вместе с др айвером. В ирус может б ыть чрезвыч айно опасн ым и живуч им, так ка к внедряетс я в операт ивную памят ь при загруз ке DOS ран ьше любой а нтивирусно й программ ы, если он а тоже не я вляется др айвером. Р ис. 5.3. З араженный с истемный др айвер Некотор ые вирусы з аражают систе мные драйвер ы по-друго му: модифи цируется з аголовок т ак, что DO S рассматр ивает инфи цированный ф айл как це почку из д вух (или бо лее) драйверо в (рис. 5.4). Р ис. 5.4. З араженный с истемный др айвер в ви де цепочки др айверов Ан алогично в ирус может з аписать сво и коды в н ачало драй вера, а ес ли в файле со держится нес колько дра йверов, то и в сере дину файла. В недрение в ируса в сере дину файла и меет неско лько возмо жностей. Н аиболее прост ая – перенос ч асти файла в ко нец или раз движка и з апись кода в ируса в ос вободившеес я место. От дельные вирус ы сжимают пере носимый бло к так, что д лина файла не из меняется ( например, Mut ant). Cavity- вирус запис ывается в з аведомо не используем ые области ф айла: неза действован ные област и таблицы н астройки а дресов DOS Е ХЕ-файла (с м. BootExe) и ли заголово к NewEXE-ф айла (Wm95. Murkry), об ласть стек а файла CO MMAND.СОМ ( Lehigh) ил и область те кстовых сооб щений попу лярных ком пиляторов ( NMSG). Некотор ые вирусы з аражают то лько те фа йлы, котор ые содержат б локи, запо лненные ка ким-либо посто янным байто м, при это м вирус за писывает с вой код вместо т акого блок а. Кроме то го, копиро вание вирус а в середи ну файла мо жет произо йти в резу льтате ошиб ки вируса, в это м случае ф айл может б ыть необрат имо испорче н. Вирусы без точ ки входа ( ЕРО-вирусы – E ntry Point Obscu ring viruses) – до вольно нез начительна я группа в ирусов, к котор ым относятс я вирусы, не з аписывающие ко манд перед ачи управле ния в заго ловок СОМ-ф айлов (JMP) и не из меняющие а дрес точки ст арта в заго ловке ЕХЕ-ф айлов. Так ие вирусы з аписывают ко манду пере хода на сво й код в ка кое-либо место в сере дину файла и по лучают упр авление не не посредстве нно при за пуске зара женного фа йла, а при в ызове проце дуры, содер жащей код пере дачи управ ления на те ло вируса. В ыполняться эт а процедур а может кр айне редко ( например, пр и выводе сооб щения о ка кой-либо с пецифическо й ошибке). В ирус может до лгие годы «с пать» и выс кочить на с вободу тол ько при не которых ус ловиях. Пере д записью в сере дину файла ко манды пере хода на сво й код вирусу необ ходимо выбр ать «прави льный» адрес в ф айле – иначе з араженный ф айл может о казаться ис порченным. Из вестны нес колько способо в определе ния таких а дресов. Пер вый способ – по иск в файле пос ледователь ности стан дартного ко да (стандарт ные заголо вки процедур) С и/Паскаль с з аписью вместо н их своего ко да (вирусы Luc retia, Zhe ngxi). Второ й способ – з агрузка фа йла в памят ь, трассиро вка или диз ассемблиро вание и в з ависимости от р азличных ус ловий выбор ко манды (или ко манд), вместо которо й записываетс я код пере хода на те ло вируса (C NTV, Midln fector, Ne xivDer). Трет ий способ пр именяется то лько резиде нтными вирус ами – при з апуске фай ла они контро лируют какое- либо преры вание (чаще – I NT 21h). Пр и вызове з аражаемым ф айлом этого прер ывания вирус з аписывает с вой код вместо ко манды вызо ва прерыва ния (напри мер Avatar. Positron, M arkiz). Сo mpanion-вирус ы не измен яют заражае мых файлов. Д ля заражае мого файла соз дается фай л-двойник, пр ичем при з апуске зар аженного ф айла управ ление получ ает именно этот д войник, т.е. в ирус. Наибо лее распростр анены комп аньон-вирус ы, использу ющие особе нность DOS пер вым выполн ять СОМ-фа йл, если в о дном катало ге присутст вуют два ф айла с одн им и тем же и менем, но р азличными р асширениям и имени – СО М и ЕХЕ. Т акие вирус ы создают д ля ЕХЕ-фай лов файлы-с путники, и меющие то же с амое имя, но с р асширением СО М, например, д ля файла XCO PY.EXE соз дается фай л XCOPY.CO M. Вирус з аписываетс я в СОМ-фа йл и никак не из меняет ЕХЕ-ф айл. При з апуске тако го файла DO S первым об наружит и в ыполнит СО М-файл, т.е. в ирус, котор ый затем з апустит и Е ХЕ-файл. Не которые вирус ы использу ют не только вар иант СОМ-Е ХЕ, но так же и ВАТ-СО М-ЕХЕ. Втору ю группу сост авляют вирус ы, которые пр и заражени и переимено вывают фай л, запомин ают его (д ля последу ющего запус ка файла-хоз яина) и за писывают с вой код на д иск под име нем заражае мого файла. Н апример, ф айл XCOPY. EXE переиме новывается в XCO PY.EXD, а в ирус запис ывается по д именем XCO PY.EXE. Пр и запуске у правление по лучает код в ируса, котор ый затем з апускает ор игинальный XCO PY, хранящ ийся под и менем XCOPY. EXD. Данны й метод работ ает, навер ное, во все х ОС – подоб ного типа в ирусы были об наружены не то лько в DOS, но и в W indows, и O S/2. В трет ью группу в ходят Path-co mpanion-вирус ы, которые « играют» на особе нностях DO S PATH. Он и либо зап исывают сво й код под и менем зара жаемого фа йла, но «в ыше» на од ин уровень P ATH (DOS, т аким образо м, первым об наружит и з апустит фа йл-вирус), л ибо перенос ят файл-жерт ву выше на о дин подкат алог и т.д. L ink-вирусы, к ак и компа ньон-вирус ы, не изме няют физичес кого содер жимого фай лов, однако пр и запуске з араженного ф айла заста вляют ОС в ыполнить с вой код. Это дост игается мо дификацией необ ходимых по лей файлово й системы. Из вестен еди нственный т ип link-вирусо в – семейст во Dir_II. О ни записыв ают свое те ло в после дний кластер ло гического д иска. Вирус ы корректиру ют лишь но мер первого к ластера фа йла, распо ложенный в соот ветствующе м секторе к аталога. Но вый началь ный кластер ф айла указы вает на кл астер, содер жащий тело в ируса. При з аражении ф айлов их д лина и содер жимое кластеро в с этими ф айлами не из меняются, а н а все зара женные фай лы на одно м логическо м диске бу дет приход иться толь ко одна ко пия вируса. До з аражения д анные ката лога хранят а дрес перво го кластер а файла (р ис. 5.5). Р ис. 5.5. К аталог до з аражения Пос ле заражен ия данные к аталога ук азывают на в ирус, т.е. пр и запуске ф айла управ ление получ ает вирус (р ис. 5.6). Р ис. 5.6. К аталог пос ле заражен ия Файловые чер ви (worms) я вляются в не котором см ысле разно видностью ко мпаньон-вирусо в, но при это м никоим обр азом не св язывают свое пр исутствие с к аким-либо в ыполняемым ф айлом. При размножении о ни копируют с вой код в к акие-либо к аталоги в н адежде, что эт и копии бу дут когда- либо запуще ны. Иногда эт и вирусы д ают своим ко пиям «спец иальные» и мена, чтоб ы подтолкнут ь пользовате ля на запус к, например I NSTALL.EXE и ли WINSTART. BAT. Сущест вуют вирус ы-черви, ис пользующие до вольно необ ычные прие мы, например, з аписывающие с вои копии в ар хивы (ARJ, Z IP и пр.). К т аким вирус ам относятс я «ArjVirus» и «W instart». Не которые вирус ы записыва ют команду з апуска зар аженного ф айла в ВАТ-ф айлы (напр имер, «Wor m.Info»). Не с ледует пут ать файлов ые вирусы-чер ви с сетев ыми червям и. Первые ис пользуют то лько файло вые функци и какой-либо ОС, втор ые же при с воем размно жении пользу ются сетев ыми протоко лами. OBJ-, L IB-вирусы и в ирусы в ис ходных текст ах заражают б иблиотеки ко мпиляторов, объе ктные моду ли и исход ные тексты про грамм, дост аточно экзот ичны и пра ктически не р аспростране ны. Всего и х около дес ятка. Вирус ы, заражаю щие OBJ- и L IB-файлы, з аписывают в н их свой ко д в формате объе ктного моду ля или биб лиотеки. З араженный ф айл не явл яется выпо лняемым и не с пособен на р аспростране ние вируса в с воем текуще м состояни и. Носителе м «живого» в ируса стано вится СОМ- и ли ЕХЕ-фай л, получае мый в процессе ко мпоновки з араженного O BJ/LIB-фай ла с други ми объектн ыми модуля ми и библиоте ками. Вирус р аспростран яется в дв а этапа: н а первом з аражаются O BJ/LIB-фай лы, на второ м (компоно вка) получ ается работос пособный в ирус. Зара жение исхо дных тексто в программ ло гически про должает пре дыдущий мето д размноже ния. Вирус доб авляет к ис ходным текст ам свой ис ходный код ( в этом случ ае он долже н содержат ь его) или с вой шестна дцатеричны й дамп (что те хнически ле гче). Зара женный фай л способен н а дальнейшее р аспростране ние вируса то лько после ко мпиляции и ко мпоновки ( например S rcVir, Urp hin).
Антивирусы-полифаги – н аиболее рас пространен ные средст ва по борьбе с вре доносными про граммами. Истор ически они по явились пер выми и до с их пор удер живают несо мненное ли дерство в это й области. В ос нове работ ы полифаго в стоит просто й принцип – по иск в прогр аммах и документах з накомых уч астков вирус ного кода (с игнатур вирусо в). Сигнатур а – это за пись о вирусе, поз воляющая о днозначно и дентифициро вать присутст вие вирусно го кода в про грамме или до кументе, ч аще всего уч асток вирус ного кода и ли его контро льная сумм а (дайджест). Пер воначально а нтивирусы- полифаги осу ществляли пос ледователь ный просмотр ф айлов на пре дмет нахож дения вирусо в. Если си гнатура вирус а была обн аружена, то про изводилась про цедура уда ления вирус ного кода. Пре жде провер ки файлов про грамма-фаг все гда провер яет операт ивную памят ь. Если та м оказываетс я вирус, то про исходит его де активация. Это в ызвано тем, что з ачастую вирус ы заражают про граммы, за пускающиес я или откр ывающиеся в мо мент актив ной стадии в ируса (это с вязано со стре млением эко номить на ус илиях по по иску объекто в заражени я). Таким обр азом, если в ирус останетс я активным в п амяти, то тот альная про верка всех ис полняемых ф айлов приве дет к тота льному зар ажению систе мы. В насто ящее время в ирусы знач ительно ус ложнились. Н апример, по явились «ste alth-вирус ы». В осно ве их работ ы лежит ис пользование ОС пр и обращени и к перифер ийным устро йствам (в то м числе и к жест ким дискам) ме ханизма прер ываний. Пр и возникно вении прер ывания упр авление пере дается обр аботчику прер ываний. Эт а программ а отвечает з а ввод/выво д информац ии в/из пер иферийного устро йства. Кро ме того, прер ывания дел ятся на уро вни взаимо действия с пер иферией (в н ашем случае – с жест кими и гиб кими диска ми). Есть уро вень ОС (в сре де MS DOS – прер ывание 25h), ест ь уровень б азовой систе мы ввода/в ывода (уро вень BIOS – прер ывание 13h). Про граммисты мо гут работат ь и напряму ю, обращаяс ь к портам в вода/вывод а устройст в, но это вес ьма трудно. Сто ль многоуро вневая систе ма сделана, пре жде всего, с це лью сохране ния перенос имости при ложений. И менно благо даря такой с истеме, ск ажем, оказ алось возмо жным осущест влять запус к DOS-прило жений в мно гозадачных сре дах типа M S Windows и ли IBM OS/ 2. Но изнач ально скрыт а и уязвимост ь: управля я обработч иком преры ваний, мож но управлят ь потоком и нформации от перифер ийного устро йства к по льзователю. Ste alth-вирус ы, в частност и, использу ют механиз м перехват а управлен ия при воз никновении прер ывания. За меняя ориг инальный обр аботчик прер ывания сво им кодом, ste alth-вирус ы контролиру ют чтение д анных с дис ка. Если с д иска читаетс я зараженн ая програм ма, вирус « выкусывает» собст венный код (об ычно проис ходит подме на номера ч итаемого се ктора диск а). В итоге по льзователь по лучает для чте ния «чисты й» код. До те х пор, пок а вектор обр аботчика прер ываний изме нен вирусн ым кодом, с ам вирус а ктивен в п амяти ПК, об наружить е го простым чте нием диска сре дствами ОС не возможно. С хожий меха низм маскиро вки используетс я загрузоч ными вирус ами. В цел ях борьбы со ste alth-вирус ами рекоме ндуется осу ществлять а льтернатив ную загруз ку системы с г ибкого дис ка и только пос ле этого про водить поис к и удален ие вирусов. В н астоящее вре мя загрузк а с гибкого д иска может о казаться проб лематичной ( для случая с W in32 – ант ивирусными пр иложениями з апустить и х не удастс я). Антивирус ы-полифаги м аксимально эффе ктивны тол ько против у же известн ых вирусов, ч ьи сигнатур ы и методы по ведения зн акомы разр аботчикам. То гда вирус об язательно бу дет обнару жен и удале н из памят и ПК, а пото м из всех про веряемых ф айлов. Есл и же вирус не известен, то о н может прот ивостоять по пыткам его об наружения и лече ния. Поэто му главное пр и пользова нии любым по лифагом – ч аще обновл ять версии про граммы и в ирусные баз ы. Особняко м стоят эвр истические а нализаторы. Су ществует бо льшое количест во вирусов, а лгоритм котор ых практичес ки скопиро ван с алгор итма други х вирусов. К ак правило, и х создают не профессион альные про граммисты. Д ля борьбы с т акими «коп иями» были пр идуманы эвр истические а нализаторы. С и х помощью а нтивирус с пособен на ходить ана логи извест ных вирусо в, сообщая, что, по хоже, заве лся вирус. Н адежность э вристическо го анализатор а не 100%, но все же бо льше 50%, В ирусы, котор ые не распоз наются ант ивирусными а нализатора ми, способ ны написат ь только н аиболее оп ытные и кв алифициров анные прогр аммисты. Э вристическ им анализаторо м кода называется н абор подпро грамм, ана лизирующих ко д исполняе мых файлов, п амяти или з агрузочных се кторов для об наружения в не м разных т ипов вирусо в. Основно й частью а нализатора я вляется эму лятор кода. О н работает в ре жиме просмотр а, не выпо лняя код, а в ыявляя в не м всевозмо жные событ ия, т.е. со вокупность ко да или вызо в определе нной функц ии ОС, напр авленные н а преобразо вание систе мных данны х, работу с ф айлами, ил и обнаружи вая часто ис пользуемые в ирусные ко нструкции. Грубо го воря, эмул ятор просм атривает ко д программ ы и выявляет те де йствия, котор ые эта про грамма совер шает. Если де йствия укл адываются в к акую-то опре деленную с хему, то де лается выво д о наличи и в програ мме вирусно го кода. Ко нечно, веро ятность про пуска и ло жного сраб атывания вес ьма высока. О днако, пра вильно испо льзуя меха низм эврист ики, пользо ватель может с амостоятел ьно прийти к вер ным вывода м. Например, ес ли антивирус в ыдает сооб щение о по дозрении н а вирус дл я единично го файла, то веро ятность ло жного сраб атывания вес ьма высока. Ес ли же такое по вторяется н а многих ф айлах (а до это го антивирус н ичего подозр ительного в эт их файлах не об наруживал), то мо жно почти у веренно го ворить о з аражении. Н аиболее мо щным эврист ическим ан ализатором в н астоящее вре мя обладает а нтивирус D r.Web. Испо льзование э вристическо го анализатор а позволяет т акже борот ься с вирус- генератора ми и полиморф ными вирус ами. Метод с игнатуры в это м случае вооб ще неэффект ивен. Вирус- генераторы – это с пециализиро ванный набор б иблиотек, котор ый позволяет по льзователю ле гко сконстру ировать собст венный вирус. К н аписанной про грамме под ключаются б иблиотеки ге нератора, вст авляются в ну жных места х вызовы в нешних про цедур – и вот э лементарны й вирус пре вратился в дост аточно сло жный проду кт. Сигнатур а вируса бу дет каждый р аз другая, поэто му отследит ь вирус ок азывается воз можным тол ько по хар актерным в ызовам вне шних проце дур – а это у же работа э вристическо го анализатор а. Полиморф ный вирус и меет еще бо лее сложну ю структуру. Те ло вируса в идоизменяетс я от зараже ния к зара жению, сохраняя фу нкциональное н аполнение. В просте йшем случае – ес ли разброс ать в теле в ируса случ айным образо м ничего не ис полняющие, пуст ые оператор ы, то тело в ирусного ко да претерп ит значите льные изме нения, а а лгоритм ост анется пре жним. В это м случае н а помощь т акже прихо дит эврист ический ан ализатор.
2.6 Програ ммы-ревизор ы
Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Они запоминают исходное состояние программ, каталогов и системных областей диска до заражения, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки ОС. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже очистить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа Adinf. Антивирусные программы-ревизоры позволяют обнаружить вирус. Чаще всего этим дело и заканчивается. Существует блок лечения Cure Module для Adinf, но он позволяет лечить лишь файлы, не зараженные на момент создания базы данных программы. Однако обнаружить вирус на ПК (или даже подозрение на него) антивирусы-ревизоры могут с большой степенью надежности. Оптимальна связка полифаг-ревизор. Ревизор служит для обнаружения факта заражения, тогда в дело пускается полифаг. Если же ему не удалось уничтожить вирус, то можно обратиться к разработчику антивирусных средств – скорее всего, попал новый, неизвестный разработчикам вирус. Основу работы ревизоров составляет контроль за изменениями, характерными для работы вирусных программ. В них содержится информация: о контрольных суммах неизменяемых файлов, содержимом системных областей, адресах обработчиков прерываний, размере доступной оперативной памяти и т.п. Остальная работа состоит в сравнении текущего состояния диска с сохраненным, поэтому крайне важно создавать контрольные таблицы не на зараженной машине. Итак, перейдем к стадиям работы программы-ревизора.
Контроль оперативной памяти включает процедуры обнаружения следов активных загрузочных и stealth-вирусов в памяти ПК. Если такие алгоритмы найдены, выдается предупреждение. Обычно сначала программа ищет знакомые вирусы, далее проверяет, изменился ли обработчик Int13h. Если да, то с вероятностью 90 % ПК инфицирован загрузочным вирусом (эти вирусы вынуждены перехватывать данное прерывание, чтобы после своей активизации передать управление «нормальному» загрузочному сектору и ОС загрузилась без сбоев). Ревизор выдает предупреждение об этом и сообщает адрес в памяти нового обработчика Int13h. Информация о местонахождении обработчика необходима программистам и системным администраторам, а рядовому пользователю следует обратить внимание на предупреждение. Даже если ревизор устанавливается на зараженный ПК и реальный адрес обработчика маскируется вирусом, в 85 % случаев ревизору удается обнаружить истинный адрес обработчика в BIOS и работать, используя его. Если не удалось получить реальный адрес обработчика, то выдается предупреждение. Истинный адрес достигается путем пошагового просмотра тела вируса (по алгоритму своей работы загрузочный вирус вынужден, в конце концов, передавать управление оригинальному обработчику). Некоторые вирусы блокируют трассировку прерываний: при попытке трассировать их коды они приводят ОС к «зависанию», перезагружают ПК и т.д. Поэтому, если при трассировке прерываний ПК ведет себя «странно», то не исключено, что оперативная память поражена вирусом. Важен и размер свободной оперативной памяти. Обычно ревизор запускается самым первым, до загрузки каких-либо программ. Если же размер оперативной памяти уменьшился – это верный признак присутствия в ОЗУ еще какой-то программы, скорее всего, вируса.
Контроль системных областей предназначен для обнаружения вирусов, которые используют для своей активации механизм загрузки. Первой с диска загружается загрузочная запись (boot record), которая содержит в себе мини-программу, управляющую дальнейшей загрузкой. Для жесткого диска первой производится загрузка главной загрузочной записи (Master-BootRecord или MBR). Если система поражена загрузочным вирусом, то именно ему передается управление при попытке загрузиться с пораженного диска. В этом опасность вируса – если поражен жесткий диск, то управление вирусу будет передаваться при каждом включении ПК. Загрузочные вирусы в чистом виде передаются исключительно через дискеты, и заражение осуществляется при попытке загрузиться с пораженной дискеты. Со временем использование дискет вообще и загрузочных дискет, в частности, сократилось до минимума. Однако способ захвата управления столь удобен, что очень распространены вирусы, которые могут поражать как файлы, так и загрузочные сектора. Попав на «чистый» ПК, такие вирусы первым делом поражают MBR. Однако методы обнаружения именно загрузочных вирусов крайне эффективны и приближаются к 100 % надежности. Рассмотрим обнаружение такого вируса «вручную». Произведем загрузку с чистой дискеты (при этом прерывание 13h гарантировано не будет перехвачено загрузочным вирусом) и рассмотрим сектор 0/0/1 винчестера (это физический адрес сектора MBR). Если винчестер разделен (при помощи fdisk) на логические диски, то код занимает приблизительно половину сектора и начинается с байтов FAh33hCOh (вместо 33h иногда может быть 2Bh). Заканчиваться код должен текстовыми строками типа «Missing operating system». В конце сектора размещаются внешне разрозненные байты таблицы разделов. Нужно обратить внимание на размещение активного раздела в таблице разделов. Если ОС расположена на диске С, а активны 2-й, 3-й или 4-й разделы, то вирус мог изменить точку старта, сам разместившись в начале другого логического диска (заодно нужно посмотреть и там). Но также это может говорить о наличии нескольких ОС и какого-либо boot-менеджера, обеспечивающего выборочную загрузку. Проверяем всю нулевую дорожку. Если она чистая, то есть секторы содержат только байт-заполнитель, все в порядке. Наличие мусора, копий сектора 0/0/1 и прочего может говорить о присутствии загрузочного вируса. Впрочем, антивирусы при лечении загрузочных вирусов лишь «обезглавливают» противника (восстанавливают исходное значение сектора 0/0/1). Проверяем boot-сектор MS-DOS, он обычно расположен в секторе 0/1/1. Его внешний вид для сравнения можно найти на любом «чистом» ПК. Примерно так же действуют программы-ревизоры. Их особенность в том, что они не могут судить об изначальной «чистоте» оперативной памяти, поэтому чтение MBR происходит тремя различными способами: (bios) – прямым обращением в BIOS; (i13h) – чтением через BIOS-прерывание Intl3h; (i25h) – чтением средствами ОС (прерывание Int25h). Если считанная информация не совпадает, налицо действие stealth-алгоритмов. Для большей надежности производится чтение MBR через IDE-порты жесткого диска. До сих пор еще не встречались вирусы, маскирующиеся от ревизора с такой функцией. Аналогично проверяется и простой (не главный) загрузочный сектор. Обычно за счет того, что ревизор сохраняет резервную копию системных областей, восстановление повреждений от загрузочного вируса с согласия пользователя сводится к записи системных областей заново.
Контроль неизменяемых файлов завершает проверку и направлен на обнаружение файловых вирусов. Для всех файлов, которые активно используются и не должны изменяться (обычно это программы типа win.com и т.п.), создаются контрольные таблицы со значениями контрольных сумм и размеров файлов. Затем информация с дисков сравнивается с эталонной в таблицах. Если информация не совпадает, то весьма вероятно заражение файловым вирусом. Самый явный признак – изменение размера или содержимого файла без изменения даты создания файла. Очень важно выявить неизменяемые файлы. При настройке ревизора данные о них заносятся в таблицы, содержащие список имен файлов и каталогов, подлежащих контролю ревизором. Каждая строка таблицы содержит одно имя или маску. Рекомендуется внести в разряд «неизменяемых» те исполняемые файлы, путь к которым указан в переменной PATH. Они чаще всего становятся жертвой файловых вирусов. После проверки всех файлов ревизоры часто сохраняют копии дополнительных областей памяти, которые могут быть испорчены вирусами. Это FLASH- и CMOS-память. Они также изменяются редко, и их изменения могут быть подозрительны. В «связке» ревизор-полифаг первый отслеживает активность вируса на диске, а второй служит для проверки новых файлов, а также удаления известных вирусов. Программы-фильтры, или «сторожа», представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий, характерных для вирусов: попытки коррекции СОМ-, ЕХЕ-файлов; изменение атрибутов файла; прямая запись на диск по абсолютному адресу; запись в загрузочные сектора диска; загрузка резидентной программы. При попытке произвести такое действие «сторож» посылает сообщение и предлагает запретить или разрешить его. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии существования до размножения. Однако они не «лечат» файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их «назойливость» (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим ПО. Примером программы-фильтра является Vsafe, входящая в пакет утилит MS DOS. Вакцины, или иммунизаторы, – это резидентные программы, предотвращающие заражение. Имеют ограниченное применение, их применяют при отсутствии «лечащих» программ-докторов и только от известных вирусов. Вакцина модифицирует программу или диск так, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. Рассмотрим некоторые из антивирусных программ. Программа-полифаг Aidstest Aidstest
Это программа-полифаг предыдущего поколения. Первая версия, способная обнаруживать один вирус, была выпущена в 1988 году. Вскоре программа стала признанным лидером на российском рынке антивирусных программ. Последняя версия Aidstest вышла осенью 1997 года, и больше эта программа не поддерживается. Все вирусы, входившие в вирусную базу Aidstest, сегодня включены в сканер нового поколения Doctor Web.
Один из лидеров российского рынка антивирусных программ, завоевал более 10 международных премий. На AVP выходит еженедельное обновление, в его базе более 30000 записей. Выпускается российской вирусной лабораторией Касперского с возможностью обновления через сеть. Относится к детекторам-докторам, имеет «эвристический анализ». Ассортимент продукции: AVP для рабочих станций – AVP Lite, AVP Silver, AVP Gold, AVP Platinum, AVP для OS/2, AVP для Linux, AVP для FreeBSD, AVP для BSDi UNIX, AVP Inspector, AVP для Office 2000, AVP Z.E.S. Linux; AVP для серверов – AVP для Windows NT Server, AVP для Novell NetWare З.хх и 4.xx, AVP для Novell NetWare 5 (с интеграцией в NWAdmin), AVP Daemon для Linux, AVP Daemon для FreeBSD, AVP Daemon для BSDi UNIX; AVP для почтовых систем – AVP для Microsoft Exchange Server; AVP для межсетевых экранов (firewall); AVP для Firewall (бета-версия); AVP для WEB серверов – AVP WEB Inspector. При запуске AVP загружает антивирусные базы, тестирует оперативную память на наличие резидентных вирусов и проверяет себя на заражение вирусом. После успешной загрузки в строке состояния появляется сообщение «Последнее обновление: <дата>, <количество> вирусов», где <дата> – дата последнего обновления, а <количество> – количество известных вирусов (данные о вирусах находятся в файлах с расширением .AVC). Главное окно программы содержит четыре пункта меню (файл, поиск вирусов, сервис, «?»), пять вкладок (область, объекты, действия, настройки, статистика, кнопку «Пуск» («Стоп» во время сканирования диска) и окно просмотра «Объект – Результат». При загрузке автоматически открывается вкладка «Область». Для начала сканирования нужно выбрать на закладке «Область» диски и/или каталоги для проверки и нажать кнопку «Пуск» (или пункт меню «Поиск вирусов Пуск»). Выбрать проверяемый диск и/или папки можно, щелкнув на нужном объекте два раза левой клавишей мыши. Чтобы быстрее выделить диски, нужно поставить соответствующие флажки «Локальные диски» и/или «Сетевые диски» и/или «Флоппи-дисководы». Чтобы выбрать папку для сканирования, нужно нажать клавишу «Выбрать папку», после чего появится стандартное диалоговое окно Windows, в котором нужно выбрать имя папки для добавления в область тестирования. Если нажать кнопку «Пуск» без выбора объекта для проверки, то AVP выдаст сообщение: «Не задана область сканирования. Пожалуйста, отметьте диски на закладке «Область»». Чтобы срочно остановить тестирование, нужно нажать кнопку «Стоп» или выбрать пункт меню «Поиск вирусов – Стоп». Вкладка «Объекты» задает список объектов, подлежащих сканированию, и типы файлов, которые будут тестироваться. На вкладке «Объекты» можно установить следующие флажки: «Память» – включить процедуру сканирования системной памяти (в том числе High Memory Area); «Сектора» – включить в процедуру сканирования проверку системных секторов; «Файлы» – включить в процедуру сканирования проверку файлов (в том числе файлов с атрибутами Hidden, System, ReadOnly); «Упакованные объекты» – включить Unpack Engine, распаковывающий для тестирования файлы; «Архивы» – включить Extract Engine, позволяющий проводить поиск вирусов в архивах. «Тип файлов» содержит четыре переключателя. «Программы по формату» – сканировать программы (файлы .com, .exe, .vxd, .dll и форматы Microsoft Office), проверяются все файлы, которые могут содержать код вируса. «Программы по расширению» – сканировать все файлы, имеющие расширение *.ВАТ, *.СОМ, *.ЕХЕ, *.OV*, *.SYS, *.BIN, *PRG. «Все файлы» – сканировать все файлы. «По маске» – сканировать по маске, заданной пользователем в строке ввода. Вкладка «Действия» позволяет задавать действия на случай обнаружения зараженных или подозрительных объектов во время тестирования. По желанию пользователя программа будет либо только информировать его о найденных вирусах, лечить зараженный объект, предварительно открыв его, либо лечить автоматически. Подозрительные объекты могут быть скопированы либо в указанную папку, либо в рабочую папку программы. Вкладка «Настройки» позволяет настраивать программу на различные режимы. «Предупреждения» – включает добавочный механизм проверки. «Анализатор кода» – включает механизм, способный обнаружить неизвестные вирусы в исследуемых объектах. «Избыточное сканирование» – включает механизм полного сканирования содержимого файла (рекомендуется включать, когда вирус не обнаружен, но в работе ПК наблюдаются странные явления – замедление работы, частые самопроизвольные перезагрузки и т.п.). В остальных случаях использовать данный режим не рекомендуется, так как появляется возможность ложного срабатывания при сканировании чистых файлов. Настройки позволяют пользователю показывать во время сканирования имя проверяемого объекта в столбце «Объект», в окне «Результат» напротив имени объекта будет появляться сообщение «в порядке», если объект чистый. Можно также установить подачу звукового сигнала при обнаружении вируса, что на практике очень полезно, так как процесс сканирования достаточно длителен и однообразен. Можно также следить за последовательностью сканирования (флажок «Слежение за отчетом») или записать файл отчета, указав имя результирующего файла (флажок «Файл отчета»). Поставив этот флажок, пользователь получает доступ к двум вспомогательным флажкам: «Добавить» – новый отчет будет дописываться строго в конец старого; «Ограничение размера» – ограничение размера файла отчета по желанию пользователя (по умолчанию – 500 килобайт). После окончания проверки указанных объектов автоматически активизируется вкладка «Статистика», содержащая результаты работы программы. Вкладка разделена на две части, содержащие информацию о числе проверенных объектов, файлов, папок и о количестве найденных вирусов, предупреждений, испорченных объектов и т.п. База сигнатур AVP одна из самых больших – более 30000 вирусов. Работа с программой не вызывает затруднений у неопытного пользователя, получить новую версию можно из Internet.
Заключение
Учитывая, что в стоящий за этой спецификацией консорциум входит более 700 компаний, CORBA нечто большее, чем повальное увлечение, охватившее рынок. CORBA превосходит традиционную трехуровневую модель клиент сервер благодаря тому, что это полностью масштабируемая и исключительно гибкая архитектура. Используя CORBA, вы с легкостью расширите сеть, состоящую из трех компьютеров до сети масштабов Интернета. CORBA обеспечивает базовую структуру, позволяющую соединять объекты, запрограммированные на разных языках, причем не имеет значения, для какой платформы или операционной системы эти объекты были созданы, если есть средства согласования с CORBA. Поскольку CORBA предназначена для гетерогенных платформ, в настоящее время у нее есть преимущества перед DCOM. Однако принимая во внимание мощь Microsoft, DCOM, несомненно, в ближайшем будущем станет силой, с которой придется считаться.
В заключение хотелось бы еще раз отметить, что во многом успех использования технологии CORBA зависит от методологического и технологического базисов, которые применяются разработчиками на этапах проектирования и реализации компонентов информационной системы. При этом немаловажным позитивным фактором становится наличие программной инфраструктуры, которая выступает в качестве фундамента, существенно облегчающего процесс построения гетерогенных распределенных информационных систем.
Список использованной литературы
- К.В. Ахтырченко, В.В.Леонтьев, Распределенные объектные технологии в информационных системах // СУБД 1997.
- ЭккерсонВ.В поисках лучшей архитектуры клиент-сервер // Сети. 1995.
- Аншина М. Симфония CORBA. “Открытые системы” № 3 1998г.
- Коржов В. Многоуровневые системы клиент-сервер. “Сети ” 1997г.
- Роберт Дж. Оберг Технология COM+. Основыипрограммирование = Understanding and Programming COM+: A Practical Guide to Windows 2000 First Edition. -- М.:«Вильямс», 2000. -- С. 480. -- ISBN 0-13-023114-2
- Соммервилл И. Инженерия программного обеспечения.
- Драница А. Java против .NET. - "Компьютерра", #516.
- Аниканов А.А. Визуализация векторных полей с использованием текстурной анимации // Изв. вузов. Сев.-Кав. регион. Естеств. науки. 2001. №4. С. 5-9.
- Jobard B., Lefer W. The Motion Map: efficient computation of steady flow animation // IEEE Visualization '97. Phoenix, Arizona, USA. 1997. P. 323-328.
Приложения
Архитектура CORBA
Сравнение CORBA и DCOM
- Группы и их значимость. Формальные и неформальные группы (на примере ТА Чемодан).
- Определение рынка сбыта, как один из этапов организации коммерческой деятельности (на примере ювелирной сети «585»)
- Языки гипертекстовой разметки (обзор основных возможностей HTML)
- Методы и средства проектирования информационных систем и технологий (Бизнес процессы управление персоналом)
- Правовые основы организации нотариата(Основы деятельности нотариата)
- Понятие и особенности гражданского правоотношения
- Место и роль России в мировой индустрии спорта.
- Аналитические регистры по налогу на прибыль(Экономическая сущность и функции налога на прибыль организаций)
- Прямые налоги и их место в налоговой системе РФ (на примере Самарской области)
- Правовое регулирование рекламной деятельности (ПРОБЛЕМЫ И САМОРЕГУЛИРОВАНИЕ РЕКЛАМНОЙ ДЕЯТЕЛЬНОСТИ)
- Особенности развития коммерческих банков и их кредитные операции на современном этапе.
- Комплект мебели в стиле конструктивизм для кабинета