Компьютерные вирусы.


  *Данная статья была написана в 2001 году, но принцип работы компьютерных вирусов актуален и по сей день.

  С программно-технической точки зрения под компьютерным вирусом понимается специальная программа, способная самопроизвольно присоединяться к другим программам ("заражать" их) и при запуске последних выполнять различные нежелательные действия: порчу файлов и каталогов (при файловой организации программной среды), искажение и стирание (уничтожение) данных и информации, переполнение машинной памяти и создание помех в работе ЭВМ. Такие программы обычно составляются (исполняются, пишутся) преступниками на языке программирования "ассемблер" и не выдают при своей работе никаких аудиовизуальных отображений в компьютерной системе. Переносятся при копировании информации и ценных данных с одного материального носителя на другой, либо по компьютерной сети с использованием средств телекоммуникации. С уголовно-правовой точки зрения, согласно ст. 273 Уголовного кодекса Российской Федерации, под компьютерным вирусом следует понимать вредоносную программу для ЭВМ, определение которой было приведено нами выше.
    В самом общем виде этот способ совершения компьютерных преступлений является ничем иным, как логической модернизацией способа "троянский конь", выполняющего алгоритм, например типа "сотри все данные этой программы, перейди в следующую и сделай то же самое". Этот способ широко распространен по своему применению. Например, как свидетельствуют материалы одного уголовного дела, сотрудник Игналинской АЭС из корыстных побуждений разработал и использовал в информационно-вычислительных системах первого и второго блоков атомной электростанции несанкционированные программные модули, что привело к искажению информации, поступающей на средства отображения рабочего места управления атомным реактором, повлекшему за собой возникновение аварийной (нештатной) ситуации, последствия которой не нуждаются в пояснении. Рассмотрим данный способ более подробно.
    В настоящее время в мире существует уже более 2000 вирусов, и это только для одной, наиболее популярной и широко используемой на практике операционной системы МS-DOS. Количество вирусов постоянно увеличивается. Однако для понимания способа совершения преступления все вирусы можно подробно классифицировать по определенным основаниям и разбить на несколько обобщенных групп. Нами выделяются:
    1) загрузочные (системные) вирусы (поражающие загрузочные секторы машинной памяти);
    2) файловые вирусы (поражающие исполняемые файлы, в том числе COM, EXE, SYS, ВАТ - файлы и некоторые другие);
    3) комбинированные вирусы.
    Заражение загрузочными вирусами происходит при загрузке компьютера с носителя машинной информации, содержащего вирус. Заражение может произойти как случайно, например, если потерпевший сам, не подозревая о наличии вируса на носителе, запустил с него компьютерную систему, так и преднамеренно, если преступник знал о его существовании и последствиях, которые наступят после запуска системы с вирусоносителя. Причем носитель машинной информации может и не быть системным, т.е. не содержать файлов операционной системы. Заразить носитель достаточно просто.
    На него вирус может попасть, если пользователь просто вставил его в приемное устройство (дисковод) зараженного компьютера и, например, прочитал его оглавление. При этом вирус автоматически внедряется в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий системный загрузчик винчестера (Master Boot Reckord - MBR), т.е. первый сектор логического диска (на флоппи-дисках он совпадает с первым физическим сектором), который содержит программу-загрузчик, отвечающую за запуск операционной системы, необходимой для поддержания дружественного интерфейса пользователя с ЭВМ. Сектором магнитного диска (минимальной единицей его разбиения) называется участок дорожки, образующийся при форматировании диска и являющийся минимальной физически адресуемой единицей памяти.
    Файловые вирусы заражают компьютер, если пользователь запустил на своей ЭВМ программу, уже содержащую вирус. В этом случае возможно заражение других исполняемых файлов. Рассмотрим этот процесс более детально.
    Многие вирусы обладают свойством переходить через коммуникационные сети из одной системы в другую, с одного компьютера на другой, распространяясь как вирусное заболевание (сетевые вирусы). Выявляется вирус не сразу: первое время компьютер "вынашивает инфекцию", поскольку для маскировки этот способ нередко используется преступником в комбинации с приемами "логической" или "временной бомбы", рассмотренных выше.
    "Вирус" как бы наблюдает за всей обрабатываемой в системе потерпевшего информацией и может перемещаться вместе с ней, благодаря ее постоянному движению. Начиная действовать (перехватывая управление средствами компьютерной техники "на себя"), вирус дает команду компьютеру, чтобы тот записал зараженную версию программы. После этого он возвращает программе управление. Потерпевший ничего не заметит, т.к. его компьютерная система находится в состоянии "Здорового носителя вируса". Обнаружить последнее может только специалист, обладающий чрезвычайно развитой программистской интуицией, поскольку никакие нарушения в работе средств компьютерной техники в данный момент активно не проявляют себя. Далее, через некоторое время происходит нарушение нормального режима функционирования СКТ: компьютер отказывается нормально загружаться или не загружается совсем, по неизвестным причинам исчезают из памяти файлы, некоторые программные средства самопроизвольно стираются, на экране дисплея, например, начинают опадать или геометрически перемешиваться буквы и символы (вирус "листопад", "змейка", "червячок", "мозаика"), исчезают системные файлы или файлы с каким-либо определенным расширением (например, .com, .bat, .exe, .dbf, .txt и т.д.), либо резко на 180 градусов переворачивается изображение, периферийные устройства отказывают в работе, неожиданно на экране дисплея появляется реклама чего-либо или светящаяся точка ("итальянский попрыгунчик") и т.д. и т.п.
    Вопросами научного изучения компьютерных вирусов в настоящее время занимается специально созданная новая наука - компьютерная вирусология. С точки зрения этой науки все программы-вирусы подразделяются на две группы, имеющие подгрупповое деление, а именно:
    1). по способу заражения средств компьютерной техники вирусы подразделяются на резидентные и нерезидентные;
    2). по алгоритму их строения и обнаружения на "вульгарный вирус" и "раздробленный вирус".
    Все запускаемые на выполнение программные средства делятся на резидентные - TSR (Terminate and Stay Resident) и нерезидентные - NTSR (Not Terminate and Stay Resident). Резидентной называется программа, которая по окончании работы оставляет свой код или часть кода в оперативной памяти: программно адресуемая память, быстродействие которой соизмеримо с быстродействием центрального процессора и предназначенная для хранения исполняемых в данный момент программ и оперативно необходимых для этого данных. Одновременно с этим операционная система резервирует необходимый для работы этой программы участок памяти. После этого резидентная программа работает параллельно другим программам.
    Доступ к резидентной программе осуществляется либо через подмену прерываний, либо непосредственной адресацией. Нерезидентной называется программа, которая при завершении работы не оставляет своего кода или его части в оперативной памяти. При этом, занимаемая ею память освобождается. Так как вирус представляет собой программное средство, то он обладает этими свойствами.
    Резидентный вирус при "инфицировании" программных средств оставляет в оперативной памяти компьютерной системы потерпевшей стороны свою резидентную часть, которая затем перехватывает обращение операционной системы к объектам заражения и внедряется в них. Резидентный вирус находится в памяти и является активным вплоть до выключения или перезагрузки компьютерной системы. В свою очередь, нерезидентный вирус не заражает оперативную память и является активным ограниченное время, а затем "погибает", в то время как резидентный активизируется после каждого включения компьютерной системы. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не имеют алгоритма распространения вируса. Такие вирусы являются нерезидентными.
    Программа "вульгарного вируса" написана единым блоком и достаточно легко обнаруживается специалистами в самом начале ее активных проявлений с помощью набора стандартных антивирусных программных средств. В случае же проведения программно-технической экспертизы эта операция требует, в частности, очень тщательного анализа всей компьютерной системы на предмет обнаружения в ней посторонних программных продуктов или их компонентов.
    Программа "раздробленного вируса" разделена на части, на первый взгляд не имеющие между собой логической связи. Эти части содержат инструкции, которые указывают компьютеру, как собрать их воедино, в какой последовательности и в каком случае или в какое время воссоздать "вирус" и когда размножать его (принцип "троянского коня"). Таким образом, вирус почти все время находится в "распределенном" состоянии, лишь на короткое время своей работы собираясь в единое целое. Как правило, создатели "вируса" указывают ему число репродукций, после достижения которого он либо вымирает, либо становится агрессивным и совершает заранее заданные незаконные манипуляции.
    Наиболее часто встречаются следующие вирусные модификации.
    Вирусы-"спутники" (companion)
    - это вирусы, не изменяющие программные файлы. Алгоритм работы этих вирусов состоит в том, что они создают для запускающих командных файлов файлы-спутники, имеющие то же самое имя, но расширением более высокого командного порядка. При запуске такого файла ЭВМ первым запускает файл, имеющий самый высокий уровень порядка, т.е. вирус, который затем запустит и командный файл.
     
    Вирусы-"черви" (worm)
    - вирусы, которые распространяются в компьютерной сети и, так же как и вирусы -"спутники", не изменяют "родительские" программы, файлы или секторы на дисках. Они проникают в память компьютера из компьютерной сети и, вычисляя адреса других компьютеров, рассылают по этим адресам свои копии. Такие вирусы иногда создают рабочие файлы на дисках операционной системы, но могут и вообще не обращаться к ресурсам вычислительной системы (за исключением оперативной памяти).
    "Паразитические"
    - все вирусы, которые при распространении своих копий обязательно изменяют содержимое программ, файлов или дисковых секторов. В эту группу относятся все вирусы, которые не являются "червями" или "спутниками".
    "Студенческие"
    - крайне примитивные простые вирусы, содержащие большое число ошибок в алгоритме их строения (безграмотно написанные) и вызывающие локальные "эпидемии". Как правило, такие вирусы не получают широкого распространения, быстро обнаруживаются и уничтожаются однако, успев причинить вред в районе своего размножения.
    "Stealth"
    - вирусы (вирусы-невидимки или маскирующиеся вирусы), представляющие собой весьма совершенные программы, которые при исправлении пораженных программ подставляют вместо себя здоровые программы или их части. Кроме того, эти вирусы при обращении к программам используют достаточно оригинальные алгоритмы, позволяющие "обманывать" антивирусные программы. Эти алгоритмы, скрывающие (маскирующие) присутствие вируса на зараженной машине, нельзя обнаружить, например, просто просматривая файлы на диске. Их создатели применяют весьма разнообразные способы маскировки, начиная от простейшего перехвата более 20 функций DOS (вирус "V-4096") и кончая маскировкой на уровне дискового драйвера, на уровне прерывания Int 13h (вирус -"EXE-222") или даже на уровне контроллера винчестера. Заметим, что первые вирусы не обладали такими возможностями и их легко можно было обнаружить при визуальном просмотре исполняемых файлов в зараженной компьютерной среде, применение даже простейших антивирусных средств немедленно останавливало распространение таких вирусов, и они в последующем перестали использоваться преступниками. Появление антивирусных программ привело к новому витку в развитии технологии написания вирусов, где появление вирусов-невидимок стало естественным шагом в таком развитии. Вирусы, использующие приемы маскировки, нельзя увидеть средствами операционной системы. Например, если просмотреть зараженный файл, нажав клавишу F3 в системе Norton Commander, то на экране будет показан файл, не содержащий вируса. Это происходит потому, что вирус активно работающий вместе с операционной системой, при открытие файла на чтение немедленно удалил свое тело из зараженного файла, а при закрытии файла заразил его опять. Это только один из возможных приемов маскировки, существуют и другие. Таким же способом маскируются и загрузочные вирусы. При попытке прочитать зараженный BOOT сектор они подсовывают оригинальный, незараженный.
    Способность к маскировке оказалась слабым местом Stealcth-вирусов, позволяющим легко обнаружить их наличие в программной среде компьютера. Достаточно сравнить информацию о файлах, выдаваемую DOS, с фактической, содержащейся на диске: несовпадение данных однозначно говорит о наличии вируса, т.е. способность к маскировке демаскирует эти вирусы.
    Вирусы-"призраки" (мутанты)
    - достаточно трудно обнаруживаемые самокодирующиеся вирусы, не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же вируса "призрака" не будут иметь ни одного совпадения. Это достигается не только шифрованием основного тела вируса, но и модификациями кода программы-расшифровщика. Иными словами, вирусы-мутанты содержат в себе алгоритмы шифровки-расшифровки, обеспечивающие то, что два экземпляра одного и того же вируса, заразившие два файла, не имеют ни одной повторяющейся цепочки байт (ни одного совпадения)! Проблема поиска и удаления этого и предыдущего классов вирусов заставляют вирусологов отходить от классических антивирусных программных средств, анализирующих сигнатуры известных вирусов, и искать новые методы борьбы с ними.
    Комбинированные вирусы
    - вирусы, имеющие отдельные признаки вирусов, рассмотренных выше, в определенной алгоритмической совокупности. Например, к той группе относятся вирусы : OneHalf ("половинка") и его разновидности OneHalf.3544 и OneHalf.3577, которые представляют собой категорию очень опасных полиморфных файлово-загрузочных стелсвирусов.
    Специалисты приходят к единому мнению о том, что, по-видимому, в перспективе будут появляться принципиально новые виды "вирусов". Например, такие, как "троянский конь" I электронных цепях вирусного типа. В данном случае будет иметь место уже не вирусное программное средство, а вирусное микроэлектронное изделие, которым является интегральная микросхема ("чип"), которая является неотъемлемой частью любого компьютерного устройства. Конечно, ничто не может непосредственно "заразить" микросхему, но ведь можно "заразить" компьютерную систему, используемую для программирования и серийного производства микросхем.
    Рассмотрим более детально пути распространения компьютерного "вируса". Они основываются на способности "вируса" использовать любой носитель передаваемых данных в качестве "средства передвижения", т. е. с начала заражения имеется опасность, что ЭВМ может создать большое число средств передвижения и в последующие часы вся совокупность файлов и программных средств окажется зараженной. Таким образом, дискета или магнитная лента, перенесенная на другие ЭВМ, способны "заразить" их. И наоборот, "заражение" происходит, когда "здоровая" дискета или магнитная лента вводится в "зараженный" компьютер. Удобными для распространения обширных "эпидемий" оказываются телекоммуникационные сети. Достаточно одного контакта, чтобы персональный компьютер был "заражен" или "заразил" тот, с которым контактировал. Однако самый частый способ "заражения" - это копирование программ, что является обычной практикой у пользователей персональных компьютеров. Скопированными оказываются и "зараженные" программы.
    Как правило, с первой компьютерной "эпидемией" многие авторы научно-популярной литературы связывают имя Роберта Морриса, студента Корнельского университета США, в результате действий которого "зараженными" оказались важнейшие компьютерные сети восточного и западного побережий США. "Эпидемия" охватила более 6 тыс. компьютеров и 70 компьютерных систем. Пострадавшими оказались, в частности, компьютерные центры НАСА, Ливерморской лаборатории ядерных исследований, Гарвардского, Питсбургского, Мэрилендского, Висконсинского, Калифорнийского, Стэндфордского университетов. Однако изобретателем "вируса" является другой человек. В августе 1984 г. сотрудник Лехайского университета (США) Фрэд Коуэн, выступая на VII конференции по безопасности информации, рассказал про свои опыты с тем, что один его друг назвал "компьютерным вирусом". Когда началось практическое применение "вирусов", неизвестно, поскольку банки, страховые компании, предприятия, учреждения, организации, обнаружив, что их компьютеры "заражены вирусом" и опасаясь потери клиентов, не допускали при этом утечки информации и не обращались в правоохранительные органы.
    В заключение отметим, что способ совершения преступлений посредством компьютерного вируса может применяться преступником как самостоятельно, так и в составе комплексных способов, которые будут рассмотрены нами далее по тексту. В последнем случае при сочетании этого способа с другими он всегда будет выполнять роль маскирующего фактора в преступлении с целью его сокрытия (как, например, поджог хранилища материальных ценностей после их частичного или полного похищения).