Вредоносное ПО как феномен

Очередной раз вернусь к наболевшему вопросу о безопасности информации. Информатизация общества растет, и теперь практически каждая семья покупает компьютер. Около 90% покупают компьютер только потому, что требуют дети или прогресс. Появление компьютера на рабочем месте тоже ведет так или иначе к его приобретению домой. Человек справедливо верит, что появление компьютера дома повлияет на его информационную грамотность, и он сможет работать без проблем. Однако это далеко не так безоблачно. Покупка компьютера — это не покупка телевизора или видеомагнитофона. Это не просто машина, которая действует по строго прописанному алгоритму — это устройство, способное функционировать по множеству алгоритмов. Выполняя совершенно разные задачи. Именно поэтому не стоит забывать, что задачи могут быть как благими, так и наоборот.

Покупая компьютер, большинство думает, что вот теперь они смогут сами набирать текст в ворде, будет выход в интернет и т.д. Это, думают они, просто отлично. А вот обеспечение безопасности заканчивается на установке антивируса, который, считают пользователи, обеспечивает полную безопасность. "Как это я мог подцепить вирус? У меня ведь стоит касперский!" — нередко приходилось слышать… Но, открыв антивирус касперского, я обнаруживал просроченный ключ (причем варезный, а не купленный), базы со времен партии и товарища Сталина, и все… Откуда взяться вирусу, действительно? В общем, безопасности не уделяется внимания, а вот в стороне от пользователей антивирусные компании стараются защитить сеть, предупредить атаки и добиться хотя бы частичной защищенности. Однако для видения всей серьезности проблемы необходимо понимание ее сути (не помню, сколько раз я уже это говорил, но очень много :)). Сегодня давайте остановимся на компьютерных вирусах как на феномене, который появился не так уж давно с точки зрения мировой истории, но успел довольно неплохо развиться за эти годы. Настолько, что атака хакера сейчас имеет меньшую вероятность, чем вирусная.

Несмотря на огромные усилия конкурирующих между собой антивирусных фирм, убытки, приносимые компьютерными вирусами, не падают и достигают астрономических величин в сотни миллионов долларов ежегодно. Эти оценки явно занижены, поскольку известно становится лишь о части подобных инцидентов. При этом следует иметь в виду, что антивирусные программы и "железо" не дают полной гарантии защиты от вирусов. Примерно так же плохо обстоят дела "на другой стороне". Как пользователи, так и профессионалы-программисты часто не имеют даже навыков "самообороны", а их представления о вирусе порой являются настолько поверхностными, что лучше бы их (представлений) и не было. Более того, большинство специалистов по информационной безопасности не в силах организовать безопасность локальной машины, не говоря уже о сетях, тем более о сетях предприятий и организаций. И вина тут не их — вина в их образовании. Необходимо заниматься самообразованием — это очевидно, однако не всегда хочется. Немногим лучше обстоят дела на Западе, где и литературы побольше, и вирусов поменьше (поскольку "левые" китайские компакт-диски особо на рынок не поступают), и антивирусные компании ведут себя активнее (проводя, например, специальные конференции и семинары для специалистов и пользователей). У нас же, к сожалению, все это не совсем так. И одним из наименее проработанных пунктов является литература, посвященная проблемам борьбы с вирусами. На сегодняшний день имеющаяся на прилавках магазинов печатная продукция антивирусной тематики либо давно устарела, либо написана непрофессионалами, что гораздо хуже. Недавно зашел в книжный магазин, искал книги Дейла Карнеги. В поле зрения попала полка книг компьютерной тематики. И что я обнаружил? Книгу 2005 года, в которой описывался в качестве антивируса касперский 4.5. Ну куда годится такого рода литература? На любом форуме, где я обретаюсь, выразились бы следующим образом: "Ф топку!" — и были бы совершенно правы. Довольно неприятным моментом является также опережающая работа компьютерного "андеграунда": информация о написании вирусов, их распространение и производство на заказ носят просто превосходное качество. Отсюда и неравная борьба.

20-е столетие, несомненно, являлось одним из поворотных этапов в жизни человечества. Как сказал один из писателей-фантастов, "человечество понеслось вперед, как подстегнутая лошадь". Что являлось причиной столь широкомасштабного и стремительного развития: военное противостояние политических систем, эволюционное "поумнение" человека или его патологическая лень (изобрести колесо, дабы не таскать мамонта на плечах), — пока неясно. Человечество захвачено техникой и уже вряд ли откажется от удобств, предоставляемых ею (мало кто пожелает поменять современный автомобиль на гужевую тягу). Уже очень многими напрочь забыта обычная почта с ее конвертами и почтальонами — вместо нее пришла электронная почта с ее ошеломляющей скоростью доставки (до нескольких минут вне зависимости от расстояния) и очень высокой надежностью. Не представляю себе существования современного общества без компьютера, способного многократно повысить производительность труда и доставить любую мыслимую информацию (что-то вроде принципа "пойди туда, не знаю куда, найди то, не знаю что"). Уже не удивляемся мобильному телефону на улице — как говорится: "Даже у моей собаки есть мобила!" К основным техническим феноменам 20-го века относятся, на мой взгляд, появление человека в космосе, утилизация атомной энергии вещества, грандиозный прогресс систем связи и передачи информации и, конечно же, ошеломляющее развитие микро- и макрокомпьютеров. И как скоро появляется упоминание о феномене компьютеров, так тут же возникает еще один феномен конца нашего столетия — феномен компьютерных вирусов. Быть может, многим покажется смешным или легкомысленным то, что факт возникновения компьютерных вирусов поставлен в один ряд с исследованиями космоса, атомного ядра и развитием электроники. Возможно, я неправ в своих рассуждениях, однако изложу свою точку зрения.

Во-первых, компьютерные вирусы — это серьезная и довольно заметная проблема, возникновения которой никто не ожидал. Даже всевидящие фантасты- футурологи прошлого не говорили об этом ничего (насколько мне известно). В их многочисленных произведениях с той или иной точностью предсказаны практически все технические достижения настоящего (вспомним, например, Уэллса с его идеей полета из пушки на Луну и марсиан, вооруженных неким подобием лазера). Если же говорить о вычислительных машинах, то тема эта вылизана донельзя — однако нет ни одного пророчества, посвященного компьютерным вирусам. Тема вируса в произведениях писателей появилась уже после того, как первый реальный вирус поразил свой первый компьютер. Во-вторых, компьютерные вирусы — это первая вполне удачная попытка создать жизнь. Попытка удачная, но нельзя сказать, что полезная — современные компьютерные "микроорганизмы" более всего напоминают насекомых-вредителей, приносящих только проблемы и неприятности. Но все таки — жизнь, поскольку компьютерным вирусам присущи все атрибуты живого: способность к размножению, приспособляемости к среде, движению и т.д. (естественно, только в пределах компьютеров так же, как все вышесказанное верно для биологических вирусов в пределах клеток организма). Более того, существуют "двуполые" вирусы, а примером "многоклеточности" могут служить, например, макровирусы, состоящие из нескольких независимых макросов. И, в- третьих, тема вирусов стоит несколько особняком от всех остальных задач, решаемых при помощи компьютера (забудем о таких специфичных задачах, как взлом защиты от копирования и криптография). Практически все проблемы, решаемые при помощи вычислительной техники, являются продолжением целенаправленной борьбы человека с окружающей его природой. Природа ставит человеку длинное нелинейное дифференциальное уравнение в трехмерном пространстве — человек набивает компьютер процессорами, памятью, обвешивает пыльными проводами, много курит и в итоге решает это уравнение (или пребывает в состоянии уверенности, что решил). Природа дает человеку кусок провода с вполне определенными характеристиками — человек придумывает алгоритмы передачи как можно большего объема информации по этому проводу, терзает его модуляциями, сжимает байты в биты и терпеливо ждет сверхпроводимости при комнатной температуре. Природа (в лице фирмы IBM) дает человеку очередное ограничение в виде очередной версии IBM PC — и человек не спит ночами, опять много курит, оптимизируя коды очередной базы данных, дабы уместить ее в предоставленные ему ресурсы оперативной и дисковой памяти. И так далее. А вот борьба с компьютерными вирусами является борьбой человека с человеческим же разумом. Эта борьба является борьбой умов, поскольку задачи, стоящие перед вирусологами, ставят такие же люди. Они придумывают новый вирус — а нам с ним разбираться. Затем они придумывают вирус, в котором разобраться очень тяжело — но мы с ним разбираемся. И сейчас наверняка где-то сидит за компьютером парень, который не глупее меня, страдающий над очередным монстром, в котором мне придется разбираться целую неделю, а потом еще одну неделю отлаживать алгоритм антивируса. Кстати, чем не эволюция живых организмов? Итак, появление компьютерных вирусов — один из наиболее интересных моментов в истории технического прогресса 20-го века, и настал момент закончить с околофилософскими рассуждениями и перейти к конкретным вопросам. И вопрос об определении понятия "компьютерный вирус" будет стоять на первом месте.

Объяснений, что такое компьютерный вирус, можно привести несколько. Самое простое — бытовое объяснение для домохозяйки, которая ни разу в жизни компьютера не видела, но знает, что Он есть, и что в Нем водятся Вирусы. Такое объяснение дается довольно легко, чего нельзя сказать о втором объяснении, рассчитанном на специалиста в области программ. Объяснение будет дано на примере клерка, работающего исключительно с бумагами. Идея такого объяснения принадлежит Д.Н. Лозинскому — одному из известнейших "докторов". Представим себе аккуратного клерка, который приходит на работу к себе в контору и каждый день обнаруживает у себя на столе стопку листов бумаги со списком заданий, которые он должен выполнить за рабочий день. Клерк берет верхний лист, читает указания начальства, пунктуально их выполняет, выбрасывает "отработанный" лист в мусорное ведро и переходит к следующему листу. Предположим, что некий злоумышленник тайком прокрадывается в контору и подкладывает в стопку бумаг лист, на котором написано следующее: "Переписать этот лист два раза и положить копии в стопку заданий соседей". Что сделает клерк? Дважды перепишет лист, положит его соседям на стол, уничтожит оригинал и перейдет к выполнению второго листа из стопки, т.е. продолжит выполнять свою настоящую работу. Что сделают соседи, являясь такими же аккуратными клерками, обнаружив новое задание? То же, что и первый: перепишут его по два раза и раздадут другим клеркам. Итого, в конторе бродят уже четыре копии первоначального документа, которые и дальше будут копироваться и раздаваться на другие столы. Примерно так же работает и компьютерный вирус, только стопками бумаг-указаний являются программы, а клерком — компьютер. Так же, как и клерк, компьютер аккуратно выполняет все команды программы (листы заданий) начиная с первой. Если же первая команда звучит как "скопируй меня в две другие программы", то компьютер так и сделает — и команда-вирус попадает в две другие программы. Когда компьютер перейдет к выполнению других (зараженных) программ, вирус тем же способом будет расходиться все дальше и дальше по всему компьютеру. В приведенном примере про клерка и его контору лист-вирус не проверяет, заражена очередная папка заданий или нет. В этом случае к концу рабочего дня контора будет завалена такими копиями, а клерки только и будут, что переписывать один и тот же текст и раздавать его соседям — ведь первый клерк сделает две копии, очередные жертвы вируса — уже четыре, затем 8, 16, 32, 64 и т.д., т.е. количество копий каждый раз будет увеличиваться в два раза. Если клерк на переписывание одного листа тратит 30 секунд и еще 30 секунд — на раздачу копий, то через час по конторе будет "бродить" более 1.000.000.000.000.000.000 копий вируса! Скорее всего, конечно же, не хватит бумаги, и распространение вируса будет остановлено по столь банальной причине.

Как это ни смешно (хотя участникам этого инцидента было совсем не смешно), именно такой случай произошел в 1988 году в Америке — несколько глобальных сетей передачи информации оказались переполненными копиями сетевого вируса (червь Морриса), который рассылал себя от компьютера к компьютеру. Поэтому "правильные" вирусы делают так: "Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа". Проблема решена: "перенаселения" нет, но каждая стопка содержит по копии вируса, при этом клерки еще успевают справляться и с обычной работой. "А как же уничтожение данных?" — спросит хорошо эрудированная домохозяйка. Все очень просто — достаточно дописать на лист примерно следующее: "1. Переписать этот лист два раза и положить копии в стопку заданий соседей, если у них еще нет этого листа. 2. Посмотреть на календарь — если сегодня пятница, попавшая на 13-е число, выкинуть все документы в мусорную корзину." Примерно это и выполняет хорошо известный вирус "Jerusalem" (другое название — "Time"). Кстати, на примере клерка очень хорошо видно, почему в большинстве случаев нельзя точно определить, откуда в компьютере появился вирус. Все клерки имеют одинаковые (с точностью до почерка) КОПИИ, но оригинал-то с почерком злоумышленника уже давно в корзине! Вот такое простое объяснение работы вируса. Плюс к нему хотелось бы привести две аксиомы, которые, как это ни странно, не для всех являются очевидными. Во-первых, вирусы не возникают сами собой — их создают очень злые и нехорошие программисты-хакеры и рассылают затем по сети или подкидывают на компьютеры знакомых. Вирус не может сам собой появиться на Вашем компьютере: либо его подсунули на дискетах или даже на компакт-диске, либо Вы его случайно скачали из компьютерной сети передачи данных, либо вирус жил у Вас в компьютере с самого начала. Во-вторых: компьютерные вирусы заражают только компьютер, и ничего больше, поэтому не надо бояться — через клавиатуру и мышь они не передаются.

Первые исследования саморазмножающихся искусственных конструкций проводились в середине прошедшего столетия. В работах фон Неймана, Винера и других авторов дано определение и проведен математический анализ конечных автоматов, в том числе и самовоспроизводящихся. Термин "компьютерный вирус" появился позднее — официально считается, что его впервые употребил сотрудник Лехайского университета (США) Ф. Коэн в 1984 г. на 7-й конференции по безопасности информации, проходившей в США. С тех пор прошло немало времени, острота проблемы вирусов многократно возросла, однако строгого определения, что же такое компьютерный вирус, так и не дано, несмотря на то, что попытки дать такое определение предпринимались неоднократно. Основная трудность, возникающая при попытках дать строгое определение вируса, заключается в том, что практически все отличительные черты вируса (внедрение в другие объекты, скрытность, потенциальная опасность и проч.) либо присущи другим программам, которые никоим образом вирусами не являются, либо существуют вирусы, которые не содержат указанных выше отличительных черт (за исключением возможности распространения). Например, если в качестве отличительной характеристики вируса принимается скрытность, то легко привести пример вируса, не скрывающего своего распространения. Такой вирус перед заражением любого файла выводит сообщение, гласящее, что в компьютере находится вирус, и этот вирус готов поразить очередной файл, затем выводит имя этого файла и запрашивает разрешение пользователя на внедрение вируса в файл. Если в качестве отличительной черты вируса приводится возможность уничтожения им программ и данных на дисках, то в качестве контрпримера к данной отличительной черте можно привести десятки совершенно безобидных вирусов, которые, кроме своего распространения, ничем больше не отличаются. Основная же особенность компьютерных вирусов — возможность их самопроизвольного внедрения в различные объекты операционной системы — присуща многим программам, которые не являются вирусами. Например, старая и, пожалуй, самая известная операционная система MS-DOS имеет в себе все необходимое, чтобы самопроизвольно устанавливаться на не-DOS'овские диски. Для этого достаточно на загрузочный флоппи-диск, содержащий DOS, записать файл AUTOEXEC.BAT следующего содержания:

SYS A:
COPY *.* A:\
SYS B:
COPY *.* B:\
SYS C:
COPY *.* C:\
...

Модифицированная таким образом DOS сама станет самым настоящим вирусом с точки зрения практически любого существующего определения компьютерного вируса. Таким образом, первой из причин, не позволяющих дать точное определение вирусу, является невозможность однозначно выделить отличительные признаки, которые соответствовали бы только вирусам. Второй же трудностью, возникающей при формулировке определения компьютерного вируса, является то, что данное определение должно быть привязано к конкретной операционной системе, в которой этот вирус распространяется. Например, теоретически могут существовать операционные системы, в которых наличие вируса просто невозможно. Таким примером может служить система, где запрещено создавать и изменять области выполняемого кода, т.е. запрещено изменять объекты, которые либо уже выполняются, либо могут выполняться системой при каких-либо условиях. Поэтому представляется возможным сформулировать только обязательное условие для того, чтобы некоторая последовательность выполняемого кода являлась вирусом. Обязательным свойством компьютерного вируса является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению. Следует отметить, что это условие не является достаточным (т.е. окончательным), поскольку, следуя вышеприведенному примеру, операционная система MS-DOS удовлетворяет данному свойству, но вирусом, скорее всего, не является. Вот почему точного определения вируса нет до сих пор, и вряд ли оно появится в обозримом будущем. Следовательно, нет точно определенного закона, по которому "хорошие" файлы можно отличить от "вирусов". Более того, иногда даже для конкретного файла довольно сложно определить, является он вирусом или нет.

Продолжение следует

Евгений Кучук, SASecurity gr.


Компьютерная газета. Статья была опубликована в номере 08 за 2008 год в рубрике безопасность

©1997-2024 Компьютерная газета