- [Duke's Virus Labs #8] - [Page 42] - Популярно о вирусах. -== Deviator [HAZARD] ==- Компьютерные вирусы. Оглавление 1. Что такое вирус ? 2. Типы вирусов и их описание A. MsDos вирусы B. Не-PC вирусы C. Windows вирусы D. Макро-вирусы E. Методы заражения F. Stealth и Ghost вирусы G. Полиморфные и мутирующие 3. Мифы о вирусах 4. Компьютерные "черви" и "Троянские программы" 5. Антивирусы 6. Почему пишутся вирусы ? 7. Литература Писал я это этак пол-года назад... На точности информации не настаиваю ;) -== 1 ==- Что такое вирус ? Вирус...Даже домохозяйки , которые один раз,случайно,увидели компьютер слышали о компьютерном вирусе. Для большинства пользователей компьютеров вирус это головная боль и страх за свои данные... Так вот что же такое все-таки вирус на самом деле. Первые исследования саморазмножающихся искусственных конструкций проводились еще в середине нынешнего столетия. В работах фон Неймана, Винера и др. дано опредиление и проведен математический анализ конечных автоматов, в том числе и самовоспроизводящихся. Термин "компьютерный вирус" появился позднее - официально считается, что его впервые употребил сотрудник Лехайского университета (США) Ф. Коэн в 1984 г. на 7-й конференции по безопасности информации, проходившей в США. С тех пор прошло немало времени, острота проблемы вирусов никак не снизилась, однако строгого опредиления, что же такое компьютерный вирус, так и не дано, несмотря на то, что попытки дать такое опредиление предпринемались неоднократно. "Компьтерный вирус - это совокупность кода , который сопобен к саморазмножению. Все остальные характеристики вируса не обязательны" (LovinGOD/SGWW). В настоящее время существует более >15000 вирусов и ежедневно появляется один/два. Однако "диких" вирусов всего около 1000. Все остальные вирусы - лабораторные, которые не покидают компьютера создателя или содателей. Большинство вирусов простые и алгоритмически схожие между собой. Однако наиболее "продвинутые" вирусописатели усложняют конструкции вирусов и добавлют что-либо новое - например алгоритмы невидимости (Stealth,самоизменения своего тела(мутирующие, пермутирующие),самошифрования (полиморфные,олигоморфные) и другие сложно-реализуемые навороты. Данные методы усложняют обнаружение и обезвреживание данных вирусов. -== 2 ==- Типы вирусов и их описание Вирусов можно классифицировать на две категории - файловые и загрузочные. Файловые вирусы поражают запускаемые файлы различных операционных систем. Например в операционной системе MsDos - Com/Exe/Sys/Bat/Etc файлы. Вирусы данного типа наиболее распространены , так как легки в освоении начинающими вирописателями. Вообще все вирусы подразделяют на две категории - сохраняющие работу программы-носителя и разрушающие ее. В процентном отношении больше всего вирусов первого типа , которые сохраняют работоспособность инфицированной программы. Вирусы второго типа пишутся только самыми начинающими вирусописателями в связи с недостатком знаний. Вирусы данного типа никогда не "выходили" за пределы своего создателя , так как после нескольких часов работы на зараженном компьютере операционная система становится неработоспособной. Данные вирусы в основном пишутся для неписанного конкурса - "Самый маленький в мире вирус". По некоторым данным , размер самого маленького вируса,который не сохраняет работоспособность программ = 22 байта (Rem22,Reminder/DVC,однако недавно увидел Rem.21), а сохраняющего работоспособность = 58 байт (Viking.Genius.58,Viking/BYTEFALL). Файловые вирусы разделяются на резидентные и не резидентные. Резидентные вирусы получают управление , выделяют (некоторые неграммотные нет) себе кусочек памяти, копируют себя туда, запускают программу-носитель и ждут подходящего случая для активации (Запуск программы, открытие запускаемого файла и т.д). В этот момент они проверяют имя/структуру файла , и если файл подходит,его заражают. Нерезидентные вирусы при запуске сканируют текущую директорию на запускаемые файлы и при нахождении данных файлов заражают их. Наибольшее распространение получил первый тип вирусов , однако с появлением Windows-операционных систем , этот тип постепенно "вымирал" , если авторы вирусов не прилагали дополнительных усилий (при выходе из DOS-сессии Windows, резидентный DOS вирус выкидывается из памяти...Что-ж поделаешь, защищенный режим...). 2.A MsDos вирусы Насколько мне известно первый не резидентный вирус - Vienna и появился он в 1986 году. Первым вирусом, который проник на территорию бывшего СССР, минуя все пограничные контроли и таможни, был вирус DOS 62. Произошло это в 1988 году, после чего началось знакомство наших программистов и пользователей (которых в те времена было ну очень мало) с миром компьютерных микроорганизмов. Загрузочные вирусы существуют на более "низком" уровне чем файловые. По соглашению IBM и еще нескольких поставщиков компьютеров, на всех дисках самый первый сектор первой дорожки является так называемым BOOT сектором. Данный сектор , при загрузке операционной системы , загружается BIOS в память (Basic Input Output System) и запускается на выполнение. Загруженный код выводит сообщение о невозможности загрузки системы или наоборот загружает операционную систему. Вирусописатели сообразили , как использовать данную особенность - пишем вирус в Boot сектор , а настоящий Boot сектор прячем еще где-нибудь... Самый известный вирус данного типа в бывшем СССР - AntiExe , а в западных странах - Michelangelo, причем последний вызвал настоящий бум в западной прессе... Данный вирус опасен - он уничтожает данные в день рождения "своего" кумира - Микеланджело (6 Марта). AntiExe сам по себе практически безвреден. Такие вирусы работают ,в принципе, на любой операционной системе под управлением intel-совместимых процессоров,однако некоторые системы нестандартно работают с аппаратным обеспечением (Linux,OS/2,и д.р.) и вирус в этом случае становится неработоспособным... Конкретнее не используется 13h прерывание. 2.B Не MsDos вирусы До MsDos было много операционных систем , например CP/M,MacOS,Atari,AmigaOs и др. Для них тоже были вирусы. Подьем вирусописания под эти OS подскочил во второй половине 80-х годов и стал спадать по мере вытеснения данных операционных систем MsDos. 2.C Windows вирусы Операционная система Windows появилась относительно недавно. Точную дату назвать я несмогу , однако в сотрудничестве с IBM и MiCROSOFT была создана Windows v.1.0. Больщинство особенностей было позаимствованно из операционных систем MacOS, Atari и AmigaOS. Данные операционные системы ориентированы на интенсивную графическую обработку и использование манипулятора "мышь". Все эти операционные системы имели собственный обощенный графический интерфейс (GUI - Graphical User Inferface ). Главной задачой данного интерфейса было рисование графических примитивов. Наибольшее распространение (до 1995 года) получила Windows v.3.xx. Она была наиболее удачной с точки зрения удобности в работе , позволяла запускать одновременно несколько приложений и обмениватся между ними данными. Все версии Windows 1-3.xx были оболчками MsDos , хотя и имели собственные набор функций. Для "родных" Windows программ изменился формат запускаемых файлов. И вот в 1995 году Microsoft выпускает Windows 95 - вторую в мире операционную систему ориентированную на графический интерфейс ( первой было OS/2 ) для PC. Данная операционная система уже не была оболочкой, а была полнофункциональной OS. На текущее время она вытеснила MsDos с рабочего места рядового пользователя, так как в Windows 95 вполне достаточно осуществляется поддержка старых MsDos программ,также в ней хорошо работают программы для Windows 1.xx-3.xx,как и собственные программы (Windows 95). Наблюдается парадокс , когда Dos вирус запускается в Dos-Окне из под Windows (версий от 3.xx и выше.Если он резидентный , при закрытии данного окна вирус просто стирается из памяти (так устроенна архитектура Windows). Нерезидентные-же вирусы отлично размножаются на MsDos программах из-под Windows. Виросописатели быстро сообразили что их творения несмогут долго cосуществовать с Windows и некоторые решили для пробы написать Windows_3.11-ориентированный вирус. Самым первым вирусом под Windows был WinVirus - нерезидентный Windows вирус. Однако он не сохранял работу инфицированной программы - он при запуске заражал запускаемые файлы Windows в текущей директории,обеззараживал своего носителя и прекращал работу. У пользователя появлялось ощущение , что не попал по иконке файла и запускал еще раз данную программу. Так как программа была уже обеззаражена , то она отлично работала. Следующие попытки были более совершенными и появляется не резидентный Windows вирус (WinSurf/VLAD) , а потом и резидентный. Причем появлялись много-платформные вирусы , которые заражали программы MsDos (Com/Exe) и программы Windows (Ph33r/VLAD). Немного позже выходит Windows 95 с еще раз изменившимся форматом запускаемых файлов(по сравнению с 3.11). Но так как вирусописатели были "научены" школой вирусописания под Windows 3.xx , то мгновенно появляются аналоги вирусов для Windows 95 (Boza/VLAD,WinCIH/Tatung,и множество других). Существуют и вирусы для OS/2. Их немного , в чилу малой расспространенности данной операционной системы. Большинство из них нерезидентные. 2.D Макро-вирусы С распространением Windows , очень широкое распространение получил текствый редактор Microsoft Word который входит в набор Microsoft Office, включающий в себя базу данных (MS Access), текстовый редактор (MS Word) , табличный процессор (MS Excel) и др. программы. Microsoft хотела расширить сферу и удобность применения своих программ, поэтому включила в данные программы модификацию языка программирования Basic. Программки , написаные в Word,Excel,Access назывались Макросами. Большинство Макросов были созданы для удобнства работы с программой (сокращение рутинных операций и т.д). Однако Microsoft допустила ошибку (кому как ;), включив в язых специальные Макросы , которые выполняются при определенных условиях (запись документа и т.д). Например если в документе есть определенный макрос (с именем AutoOpen) , то при открытии данного документа , Макрос AutoOpen автоматически выполняется без ведома пользователя (В версии 6.0). В Word существует общая база Макросов , которая загружается при старте Word (содержится в файле Normal.Dot). Все Макро-вирусы копируют себя в эту базу, перехватывают несколько макросов ( FileSave , FileOpen и др ) и ждут каких-нибуть действий с документом (запись документа на диск,и.т.д). В этот момент они копируют несколько макросов,составляющие тело вируса, в записываемый документ. Вот и все - документ при открытии заражает еще один компьютер и т.д... 2.E Методы заражения Существует несколько методов заражения файлов - имплант , спутник и некоторые другие нестандартные методы. Имплант(паразит) - вирус присоединяется к файлу и изменяет некоторые байты заражаемого файла для получения управления при запуске. Почти 80% всех файловых вирусов данного типа. Примеры имплантантов (для .Com файлов): [Вирус][П-р-о-г-р-а-м-м-а] Вирус просто сдвигает файл на нужное количество байт и в освободившееся место копирует себя. [Вирус]г-р-а-м-м-а][П-р-о- Вирус записывает нужное количество байт в конец файла , а себя записывает в начало. [Jmp Vir]-р-о-г-р-а-м-м-а][Вирус][П Вирус сохраняет несколько байт из начала файла в своем теле/конце вируса, в начало ставит комманду прыжка на свое тело и записывает себя в конец файла. Данный тип вирус наиболее распространен. Спутник - переименовывает файл-жертву в какой-нибуть другой файл, а себя записывает вместо переименнованого файла. При запуске файла , вирус производит аналогичные действия и запускает на выполнение переименнованый файл (жертву). Нестандартные методы слишком сложны и не нашли широкого применения. Например вирус Dir. В MsDos весь диск разбит на логические области - кластеры. За распределение кластеров отвчает FAT - File Allocation Table. Все файлы имеют в своем описании ссылку на свой первый кластер. MsDos по FAT отслеживает первый кластер файла , а в этом описании кластера возможно есть указатель на следующий кластер файла и т.д. , то есть двигаясь по цепочке FAT , MsDos фактически читает файл. Вирус Dir находит в FAT свободный кластер , помечает его как использованный и копирует себя туда. Потом ищет файл-жертву,и если находит , то первый кластер найденного файла устанавливает на свой выделенный кластер, а второй - на натоящий первый кластер файла. Вот график: Fat [ 1 ][ 2 ][ 5 ][ X ][ ][ 3 ][ ][ ][ ][ ] 0 1 2 3 4 5 6 7 8 9 ^ Старт Файла По графику видно что 0-описание указывает на продолжение - 1-описание.. 1-описание указывает на 2... 2 на 5... Ну а 5 - на 3, которое последнее. Предположим что 0-описание - начало запускаемого файла. Вирус Dir модифицирует FAT так: Тут Вирус v Fat [ 1 ][ 2 ][ 5 ][ X ][ ][ 3 ][ ][ ][ 0 ][ ] 0 1 2 3 4 5 6 7 8 9 ^ Старт Файла Вирус модифицирует первый кластер файла так , что он указывает на 8 , а не на 0. А вот 8-й указывает на 0.. MsDos двигаясь по цепочке FAT считает вирус , как будто он был частью файла. Причем длина файла не увеличится (однако не будет совпадать по длине в Fat и фактическим значением , записаным в директории). Данный метод неплох , однако у него много недостатков - при копировании зараженного файла , полученный файл получается неработоспособным , так как MsDos копирует фактическую длину файла , а не всю цепочку FAT. При удалении зараженного файла и записи чего-либо на занимаемое им место кничтожает все зараженные файлы на диске... Данный метод заражения неработоспособен в версиях Dos больше 4.00 (Довольно примитивно,но думаю вы поняли идею...) 2.F Stealth и Ghost вирусы После появления первых вирусов , появились довольно эффективные методы их уничтожения, поэтому вирусописателям нужно было придумывать что-либо новое. Такими новшевствами стали Stealth/Ghost и мутирующие компоненты. Надо заметить что Stealth и Ghost применимо только для резидентных вирусов. (Кто-то обьясните мне, что такое Ghost ???) Stealth вирусы появились значительно позже чем первые вирусы - написать такой вирус намного сложнее. Особенностью данных вирусов - самоизлечение при просмотре зараженного файла и заражение при окончании просмотра. Недостатки данного Stealth алгоритма - невозможность работы на защищенных от записи дисках. Другой метод Stealth - просто не показывать вирус при чтении (выкусывать). Данный метод еще сложнее чем предидущий , но универсальнее. 2.G Мутации и полиморфизм. Другой метод предотвращения обнаружения мутация,шифровка и полиморфизм. Так как большинство первых вирусов легко обезвреживались , некоторые авторы вирусов шифровали оригинальные байты жертвы и для обезвреживания данных вирусов нужно было знать ключ. Позже вирусы стали шифроватся различным ключом и постоянным оставался только расшифровщик... Довольно известный Болгарский вирусописатель Dark Avenger написал первый в мире полиморфный генератор. Фактически генератор создавал расшифровщик с добавлением в него "пустышек" - комманд которые ничего не делали. Каждый расшифровщик сгенерированный данной программой был уникальным и не содержал в себе постоянных комманд. Вот так был "одурачен" известный антивирус Aidstest - он работал по определенным сигнатурам и обнаружить полиморфные вирусы не смог. ( Вырезка из DVC ) Существуют определенные уровни вирусного полиморфизма. Они были определены Alan Solomon, Mechanism of Stealth, Proceedings Fifth International Computer Virus and Security Conference, New York, March 1992, pp. 232-238. Коротко об уровнях. Уровень 1. Вирусы используют постоянные значения для разных своих расшифровщиков. Такие вирусы можно определить по некоторым постоянным участкам кода в расшифровщике. Такие вирусы, иногда, называют "не очень полиморфными" или олигоморфными (oligomorphic). Уровень 2. Расшифровщик имеет постоянной одну или несколько инструкций. Hапример, использует различные регистры, некоторые альтернативные инструкции в расшифровщике. Такие вирусы также можно определить по маске - сочетаниям определенных байт в декрипторе. Уровень 3. Вирусы, использующие в расшифровщике команды, не участвующие в расшифровании вирусного кода, или "команды-мусор". Это такие команды, как NOP, MOV AX,AX, STI, CLD, CLI,... Данные вирусы также можно детектировать с помощью маски, если произвести "отсеивание" всех "мусорных" команд. Уровень 4. Использование в расшифровщике взамозаменяемых инструкций и "перемешивание" инструкций между собой без изменения алгоритма расшифрования. Hапример, команда MOV AX,BX имеет взаимозаменяемые инструкции: PUSH BX - POP AX; XCHG AX,BX; MOV CX,BX - MOV AX,CX; .... В принципе, возможно детектирование данных вирусов с помощью некоторой перебираемой маски. Уровень 5. Включает в себя использование всех перечисленных выше уровней, а также расшифровщик может использовать различные алгоритмы расшифрования вирусного кода. Также возможно использование, для расшифрования основного вирусного кода, расшифровки части самого же декриптора или нескольких расшифровщиков, поочередно расшифровывающих друг друга, либо, непосредственно, вирусный код. Как правило, детектирование вирусов данного уровня полиморфизма с помощью сигнатуры невозможно. Процесс детектирования и, особенно, лечения такого вируса - очень сложная задача и, может быть, довольно продолжительна по времени (difficult and time-consuming task). Если для детектирования такого вируса возможен серьезный анализ кода только самого расшифровщика, то для лечения необходимо произвести частичную или полную расшифровку тела вируса, для извлечения оригинальной информации о зараженном файле. Из известных мне антивирусов лечение вирусов последнего уровня полиморфизма производят -V и Dr. Web. ( Конец вырезки ) Мутирующих вирусов всего несколько - для написания вируса данного типа нужно иметь очень высокую квалификацию и терпеливость. Большинство вирусов данного типа - пермутирующие. Данные вирусы не являются, ни шифрованными,ни полиморфными вирусами. Но алгоритм создания своих вирусных копий очень близок к полиморфным алгоритмам. Каждая ассемблерная команда вируса занимает не более 3 байт, эти 3 байта в свою очередь составляют некую вирусную компоненту. Если ассемблерная инструкция занимает менее 3 байт в компоненте , то вирус "разбавляет" ее NOP-командами (No Operation). Причем в случайный момент времени эти NOP'ы могут изменять свое местоположение ("плавать") в компоненте. Такие вирусы состоят из 3 блоков: основной блок, блок данных и блок тождественных вызовов. Также в случайный момент времени вирусы могут переносить данные трехбайтовые компоненты из основного блока в блок тождественных вызовов и заменять их на JUMP или CALL в основном блоке. И наоборот из блока тождественных вызовов в основной блок в первоначальном виде. Таким образом, одинаковые инфицированные файлы могут не совпадать ни в одном байте основного вирусного блока. -== 4 ==- Мифы о компьютерных вирусах: - "Вирус размножается когда компьютер выключен ! Когда компьютер включен , его невозможно найти ! Что-же делать ?!" (Услышал от одного кадра) - "Вирусы не пишутся - они мутируют из программного обеспечения" (Например макро-вирусы из MS Word) ! (Услышал от другого кадра) - Есть вирусы которые "убивают" человека,т.е. действуют на психику, на нервную систему и т.д. и т.п. (Прочитал в Fido в эхе Ru.Virus) - При вставлении дискетты зараженной BOOT вирусом и просмотре ее каталога система заражается оным (был как-то в Fido спор...) - Все вирусописатели - извращенцы,сатанисты,и т.д и т.п. ! ;)) (прочитал как-то в интернетовких News'ах) - Вирусы записываются на защищенную от записи дискетту ! - Windows 95 не заражаемая операционная система (вроде бы так было до эпидемии WinCIH,хотя Win95 вирусы существовали еще раньше..) -== 5 ==- Компьютерные "черви" и "троянские программы" Понятие "компьютерный червь" впервые стало употребляться после обнаружения в некоторых компьютерных сетях "инородных" участков кода, которые размножались по всей компьютерной сети, иногда даже переходя в другую сеть, и приносили едва ощутимый вред, который заключался в уменьшении пропускной способности сети, замедлении работы некоторых и без того перегруженых северов и т.д. Данные "участки кода", которые размножались но не заражали файлы, были названы "компьютерными червями". Посути безобидные по своим действиям "черви" иногда приносили ощутимый вред компьютерным сетям. Для их локализации и обезвреживания иногда даже приходилось "останавливать" на некоторое время некоторые участки сети, что влекло за собой ощутимые убытки. Первые "компьютерные черви" писались на языке управления заданиями той или иной операционной системы что не давало им распространятся за пределы данной компьютерной сети, хотя в последние время в связи с прогрессом в области технологий данная проблема для "черве-писателей" была решена. В настоящее время данный тип "программ" не является столь же распространенным как резидентные и файловые вирусы. Впервые, термин "троянская программа" был употреблен примерно в 1985 году, когда Том Нельф ( Tom Nelf ) приступил к распространению списка прграмм-вандалов ( "троянских програм" ) под названием "Грязная дюжина" ( "The Dirty Dosen" ). В данном списке были перечислены извесные на момент составления вредоносные программы. Замаскированые, как правило, под коммерческие продукты программы-вандалы при запуске выполняли какое-либо вредоносное действие паралельно с выводом на экран тематических сообщений, характерных для данной программы. Например, одна из приведенных в списке программ поритила FAT, выводя на экран красивые картинки, другая производила форматирование винчестера сразу же после запуска. "Троянские программы" не имеют механизма самовоспроизведения, их размножение производит ничего не подозревающий пользователь, копируя программу друзьям, коллегам и т.д. Срок жизни каждой копии - "до первого" запуска. Выполнив свое "черное дело" она она посути "самоуничтожается". Программы данного типа также не получили широкого распространения. Вот вырезка (из Infected Voice) про нашумевший червь Моррисона: Название данного вируса связано с тем, что 2 ноября 1988 года Роберт Моррис младший (Robert Morris), аспирант факультета информатики Корнельского Университета (США) инфицировал ею большое количество компьютеров, подключенных к сети Internet. Эта сеть объединяет машины университетских центров, частных фирм и правительственных агенств,включая Национальное управление по аэронавтике и исследования космического пространства, а также некоторые военные НИИ и лаборатории. Его программа содержала ошибку, вызвавшую превышение скорости размножения и распространения по сравнению с задуманной. В результате в течение нескольких часов вирус проник в значительное количество компьютеров. Вирус Морриса поражал только компьютеры типа SUN 3 и VAX, которые использовали варианты ОС UNIX версии 4BSD. В процессе работы вирус оставлял необычные файлы в каталоге /usr/tmp на некоторых машинах и странные сообщения в log-файлах некоторых утилит, в частности, управляющей почтой утилиты SendMail. Для своего распространения вирус использовал некоторые дефекты стандартного программного обеспечения, установленного на многих эксплуатирующих UNIX системах. Он также использовал механизм, предназначенный для облегчения доступа к удаленным компьютерам в локальных сетях. Соответствующие исправления были внесены буквально на следующий день после атаки вируса. Вирус состоял из двух частей: главной программы и программы, обеспечивающей его распространение. Главная программа после запуска на очередной машине собирала информацию относительно других машин в сети, с которыми данная ЭВМ имеет связь. Она выполняла эту работу с помощью анализа конфигурационных файлов и путем прогона системной утилиты, которая дает информацию о текущем состоянии соединений в сети. Затем она использует определенные недостатки программного обеспечения для пересылки себя на другие машины. Пересылка выполнялась специальной частью вируса, называемой модулем распространения. Этот модуль представляет собой исходный текст программы, состоящей из 99 строк на языке Си, которые должны быть откомпилированы и выполнены на удаленной машине. Для этого исходный текст должен быть сначала передан очередной жертве (используя способ, кратко описываемый ниже), а затем откомпилирован и выполнен с тремя аргументами: сетевой адрес инфицирующей машины (т.е. ЭВМ, с которой происходит заражение), количество сетевых портов, которые нужно соединить с этой машиной для передачи основных файлов вируса и "магическое число", которое использовалось как однократная проверка паспорта. Если инфицирующая машина не получала в ответ от посланного ею модуля распространения этого магического числа, она немедленно отсоединялась от этой машины. Это, по-видимому, было сделано в расчете на предотвращение попыток получения файлов вируса путем имитации действий модуля распространения. В самом модуле распространения были предприняты определенные усилия по маскировке. Для этой цели он обнулял свою командную строку, и немедленно создавал собственную копию. Если в процессе пересылки файлов с инфицирующей машины происходил сбой, то модуль распространения сначала удалял все пересланные файлы, а лишь затем возвращал управление. Как уже указывалось, после запуска на очередной жертве модуль распространения обеспечивал пересылку всех файлов вируса для машин этого типа (SUN или VAX). Каждый файл представлял собой версию вируса для определенной архитектуры ЭВМ. Кроме того, модуль распространения обеспечивал получение еще одной своей копии для рассылки по очередным сетевым адресам. Хотя в модуле распространения предусматривалась пересылка до 20 файлов, только три на самом деле пересылались данной версией вируса. Это породило гипотезы о том, что Моррис планировал разработки более совершенной версии и что эта версия могла пересылать другие командные файлы, паспорта пользователей или, возможно, вирусы для конкретного типа ЭВМ. После пересылки загрузочных модулей, модуль распространения обеспечивал их сборку с местной версией системной библиотеки. Затем эти программы вызывались одна за другой и их действие заключалось в попытке раскрыть пароли пользователей, работающих на данной машине. Если это не удавалось, то вирус рассылал модуль распространения по всем адресам, найденным в списке соответствующего "взломанного" абонента. Если ни один из методов дешифровки паролей не срабатывал, то машина, породившая модуль распространения, обеспечивала удаление с диска всех улик (т.е, файлов, созданных в процессе работы вируса). Исторические замечания Как уже указывалось, вирус разработал Роберт Моррис младший, аспирант Корнельского университета. Вирус был запущен в сеть приблизительно между 12 и 13 часами 2 ноября 1988 года. Из-за ошибки, вызвавшей превышение скорости размножения и распространения по сравнению с задуманной, в течении нескольких часов (к концу дня) вирус заразил порядка 6000 компьютеров (данная оценка основана на экстраполяции и не претендует на особенную точность). Всего к сети Internet было подключено более 60 000 компьютеров. Пораженные компьютеры были расположены на значительной территории (Массачусетский технологический институт, Калифорнийский университет в Беркли, университет в Пэдью, Стенфордский университет и др.). Наиболее заметным эффектом при распространении вируса, помимо некоторых необычных сообщений операционной системы, была все же непрерывно возраставшая нагрузка пораженных вирусом машин. По истечении некоторого времени некоторые машины оказались настолько загруженными распространением копий вируса, что не были способны выполнять никакой полезной работы; некоторые машины исчерпали память или таблицу текущих процессов и их приходилось перегружать. Это существенно затруднило обмен сообщениями и координацию работы по уничтожению вируса, поскольку, судя по репортажам, большинство американских программистов привыкло пользоваться электронной почтой. Задержки привели к потере очень ценных сообщений, посланных пользователем, который по-видимому знал детали работы вируса или они были сообщены ему Моррисом, испугавшимся последствий своего "эксперимента". Тем не менее, сеть оставалась работоспособной и между программистами шел интенсивный обмен сообщениями. Утром 3 ноября персонал Калифорнийского университета в Беркли и Массачусетского технологического института (МТИ) получили копии вируса и начали его анализ. Общим опасением было, что к моменту, когда будет изготовлено противоядие, системные файлы будут изменены или разрушена некоторая информация. К пяти часам вечера 3 ноября группа исследователей в Университете в Беркли разработала серию мер для прекращения его дальнейшего распространения. Соответствующее сообщение было передано по сети, однако его распространение было задержано нагрузкой, созданной распространением вируса и отключением некоторых частей сети "на карантин". К 9 часам вечера другой простой и эффективный метод борьбы с распространением вируса был найден в Университете Пэдью и быстро распространен всем заинтересованным пользователям. К концу суток с вирусом было покончено. Дисассемблирование и обратная трансляция вируса представляла собой достаточно сложную задачу, поскольку Моррисом были предприняты специальные меры по шифровке текстовых строк. Основная часть работы была выполнена Марком Эйчиным (Маrk Eichin), специалистом по дисассемблированию и ассемблированию ROM, который одновременно являлся и координатором работы других программистов. Основная работа по реконструкции вируса была завершена в субботу. Тогда же исследователями, после жарких дискуссий с остальными группами, занимавшимися дисассемблированием и реконструкцией вируса, проходивших по сети, было принято решение не распространять восстановленный исходный текст вируса и, в то же время, свободно распространять информацию об алгоритмах, используемых данным вирусом. Это, конечно, несет определенную опасность, что они могут быть использованы для написания новых вирусов, однако уровень знаний, требуемых для этой цели, неизмеримо выше, чем умение перекомпилировать программу с двумя или тремя измененными строчками. На следующее утро, в пятницу 4 ноября состоялась пресс-конференция в Массачусетском технологическом институте, в ходе которой получена основная часть информации, приведенной в прессе. Во вторник 8 ноября в Балтиморе состоялась конференция по вирусу Морриса, на которой подробно обсуждалась хронология событий, предпринятые действия и детальный анализ функционирования вируса. Кроме того, были обсуждены вопросы, касающиеся уроков инцидента и подготовки к отражению новых атак. А Моррису так и не повезло - его заставили обеззараживать его-же творение... Вот так вот... В связи с распространением Internet и его доступностью появился новый вид троянских программ , например BackOrrifice. Особенность этих программ , в том что они состоят из двух частей - клиентской и серверной. Серверная часть запускается на компьютере-жертве , а клиентская остается у "вредителя". "Вредитель" используя интернет , используя свой "клиент" соединяется с сервером и фактически может управлять удаленным компьютером. Возможности управления обширны - от копирования файла на компьютер "вредителя" и обратно , до блокирования клавиатуры удаленного компьютера (жертвы). В большинстве своем это троянские программы под Windows ориентированные системы. -== 5 ==- В текущий момент существует много антивирусных программ. Их можно разделить на три категории - Универсальные , Фаги (Полифаги и т.д) и Сторожи. К универсальным относится несколько антивирусов, среди них ADinf. Данный антивирус содержит небольшую базу данных на диске, содержащую размеры, контрольные суммы (CRC) файлов на диске. При запуске ADinf он минуя операционную систему обращается к диску и ищет изменения файлов. Если обнаружены изменения в контролируемых файлах, то ADinf об этом сообщает и придлагает (если это возможно) восстановить оригинал (ADinf сохраняет "уязвимые" места файла). Этот метод работает почти с 90% вирусов. Достоинство ADinf в том , что он легко обнаруживает Stealth вирусы. Он читает диск на прямую , а потом читает с помощью функций MsDos. Если есть различие в выдаваемых данных - то в системе существует Stealth вирус. Правда есть и недостаток - при уничтожении базы данных , ADinf становится безполезным (что и делают в первую очередь некоторые вирусы). Большинство антивирусов - Фаги и ПолиФаги. Фаг - программа , которая обнаруживает и может обезвредить один вирус. Программа, которая может обезвредить несколько вирусов - ПолиФаг. Наиболее распространены ПолиФаги, например Dr.Web,Aidstest,F-Prot и д.р. Например последняя версия Dr.Web может обнаружить и обезвредить около 10000 вирусов, а F-Prot около 12000. Причем сюда входят и очень сложные полиморфные вирусы. Большинство полифагов имеют некоторые алгоритмы для обнаружения неизвестных ранее вирусов. У Dr.Web этот алгоритм называется Эвристичиской Анализатор. Причем срабатывает он примерно на 90% неизвестных вирусов, давая краткую характеристику вируса. Особенность в том, что анализатор эмулирует процессор. Возьмем дешифровщик вируса. Если вирус само-расшифровывается , какой-бы сложный алгоритм расшифровки не был, Dr.Web его расшифрует. Ну а потом дело техники. Вот так Dr.Web расшифровывает все полиморфные вирусы. Опять-же находятся вирусописатели которые это обходят (обойти элементарно ;). Дело в том , что эмулятор не совершенный , и содержит много недоработок. Вот и получается гонка - выходит новый вирус, которого Dr.Web не знает и не может определить Эвристическим Анализатором,как к следующей версии этого антивируса появляется дополнение , устраняющее этот недостаток. Сторожи - устаревший вид антивирусов , которые сейчас почти не используются. Это программы , которые работая резидентно перехватывают попытки остаться вирусу резидентным, поиск жертв для заражения и т.д. , выдавая при этом окошко с предупреждением. С появлением многозадачной Windows 95 сторожи видоизменились. Возьмем например Norton Safe Guard. При копировании файлов данный антивирус,в фоновом режиме, проверяет переписываемый файл на наличие известного вируса и при обнаружении такового, блокирует к ниму доступ. -== 6 ==- Почему пишутся вирусы ? (Кусочек из Infected Voice) Действительно, что заставляет человека писать, не побоюсь преувеличений, очень сложную программу. На ее написание уходит огромное количество времени и сил, в то время как на написание антивируса, по мнению Е.Касперского, уходит от 15 минут до 2-3 часов. Вот и получается, что человек, способный написать еще один Volcov Commander или Windows 95 в машинных кодах, тратит свои силы и умение на написание вирусов. И при этом испытывает неописуемый восторг от того, что его "произведение" кому-то причинило массу неприятностей. И хотя создателей вирусов ругают все, от этого вирусов не становится меньше. Больше того, появляются новые модификации компьютерных микроорганизмов, которых их авторы научили более изворотливо прятаться в глубинах компьютера и избегать "охотников за приведениями". Вирусы играют роль так называемых санитаров компьютерного мира. Не хотите иметь проблемы - соблюдайте элементарные меры безопасности, и компьютерному вирусу нечего будет делать на вашем компьютере. А вот если вирусы гуляют по вашим дискам, как ветер в чистом поле, тут стоит задуматься: кто в этом виноват. Автор вируса, который его написал, или вы, пустившие его на информационные просторы своего компьютера ? Я могу назвать несколько причин, которые, по моему мнению, способствуют разгулу вирусов на просторах СНГ. Это пренебрежение элементарным входным контролем новых программ и отсутствие резервных копий информации, использование чужих дискет и любимое занятие каждого пользователя - пиратское копирование программных продуктов. Вот и получаем в ответ на отсутствие цивилизованного рынка программного обеспечения широкий выбор другого, очень приятного многим (если не всем) "программного обеспечения", которое не требует его зарегистрировать или оплатить гонорар автору. Это положение сохранится до тех пор, пока в нашей стране не будет нормального рынка программных продуктов, действительно работающего законодательства об авторских правах, ответственности за написание/распространение компьютерных вирусов, да, наконец, элементарной культуры пользователей. -== 7 ==- Литература и ссылки 1. Касперский Е., "Компьютерные вирусы в MS DOS. M.", "ЭДЕЛЬ" - "Ренессанс", 1992. 2. Карасик И., "Математические аспекты компьютерных вирусов." Компьютер Пресс 1992. 3. Веселов В., "Долгое детство компьютерной вирусологии." Компьютер Пресс 1992. 4. Безруков Н.Н., "Компьютерная вирусология". 5. Баткин Л., "Знание - сила" 1990. 6. Эфроимсон 1972, "Новый мир". 7. Баткин Л.,"Генотип и поведение, Знание - сила" 1990. 8. Абрамов С.М., "Компьютерный вирус" Микропроцессорные средства и системы. 1989. 9. Воронов С.И., "Вирус-психология." "Компьютеры +Программы" 1994. 10. Голубев В.В , Дубов П.А , Павлов Г.А. "Компьютерные преступления и защита информации в вычислительных системах" 1990 , Знание. 11. Клаф Р. "Зачем покупать программное обеспечение ?" Компьтер Пресс 1991. (А зачем его покупать ? :) Прим.ред.) -=====- Пока все...Дополнения или замечания шлите на BioDrone2@Hotmail.com Deviator [HAZARD].