Фигурнов В.Э. IBM PC для пользователя. Книга содержит подробное и доступное для начинающих описание возмож
Скачать 5.4 Mb.
|
7^включения компьютера; заражать файлы в архивах (для извлечения файлов из архива и помещения их в архив вызывается программа-архиватор, а вывод на экран при этом блокируется); заражать файлы только при помещении их на дискеты или в архивы (маскируясь тем самым от обнаружения программами-ревизорами); бороться с антивирусными программами, например, уничтожая их файлы или портя таблицы со сведениями о файлах программы-ревизора: долгое время никак не проявлять своего присутствия, активизируясь через не- сколько недель или даже месяцев после заражения компьютера: шифровать системные области дисков или данные на диске, так, что доступ к ним становится возможен только при наличии данного вируса в памяти. Чтобы компьютер заразился вирусом, необходимо, чтобы на нем хотя бы один раз была выполнена программа, содержащая вирус, а именно: запущен зараженный исполнимый файл или установлен зараженный драйвер; произведена начальная загрузка (либо даже попытка начальной загрузки) с зара- женной загрузочным вирусом дискеты; открыт на редактирование зараженный документ Word для Windows или заражен- ная электронная таблица Excel. Отсюда следует, что нет оснований бояться заражения компьютера вирусом, если: на компьютер переписываются файлы, не содержащие программ и не подлежащие преобразованию в программы, например, графические файлы, текстовые файлы (кроме командных файлов и текстов программ), документы редакторов документов типа ЛЕКСИКОНа или Multi-Edit, информационные файлы баз данных и т.д.; на незараженном компьютере производится копирование файлов с одной дискеты на другую или иные действия, не связанные с запуском <чужих> (полученных из- вне) программ, перезагрузкой с <чужих> дискет или редактированием <чужих> до- кументов Word для Windows или электронных таблиц Excel. Кроме того, вирус заражает лишь программы, и не может заразить оборудование (клавиатуру, монитор и т.д.). Вирус не может заразить или изменить данные, находя- щиеся на дискетах или съемных дисках с установленной защитой от записи, а также данные, находящиеся на аппаратно защищенных (скажем, установкой перемычки на диске или с помощью комплекса Sheriff) логических дисках. ГП 1 1.8. Методы маскировки вирусов <Невидимые> вирусы Шифрование своего кода Полиморфные вирусы Чтобы предотвратить свое обнаружение, многие вирусы применяют довольно хитрые приемы маскировки. Мы расскажем о некоторых из них. Многие резидентные вирусы (и файловые, и загрузочные) предотвращают свое обна- ружение тем, что перехватывают обращения операционной системы (и тем самым при- кладных программ) к зараженным файлам и областям диска и выдают их в исходном (незараженном) виде. Такие вирусы называются невидимыми, или stealth (стеле) виру- сами. Разумеется, эффект <невидимости> наблюдается только на зараженном компью- тере - на <чистом> компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить. Замечания. 1. Некоторые антивирусные программы могут обнаруживать <невидимые> вирусы даже на зараженном компьютере. Для этого они выполняют чтение диска, не поль- зуясь услугами DOS. Такими программами являются, в частности, ADinf фирмы <Диалог- Наука>, Norton Antivirus и др. 2. Некоторые антивирусные программы используют для борьбы с вирусами свойство <невидимых> файловых вирусов <вылечивать> зараженные файлы. Они считывают (при работающем вирусе) информацию из зараженных (райлов и записывают ее в файл или фай- лы. Затем, уже после загрузки с <чистой> дискеты, исполнимые файлы восстанавливаются в исходном виде. Вирусы часто содержат внутри себя различные сообщения, что позволяет заподозрить неладное при просмотре содержащих вирус файлов или областей дисков. Чтобы за- труднить свое обнаружение, некоторые вирусы шифруют свое содержимое, так что при просмотре зараженных ими объектов (даже на <чистом> компьютере, то есть когда вирус не активен) никаких подозрительных текстовых строк Вы не увидите. Еще один способ, применяемый вирусами для того, чтобы укрыться от обнаружения, - модификация своего тела. Это затрудняет нахождение таких вирусов программами- детекторами - в теле таких вирусов не имеется ни одной постоянной цепочки байтов, по которой можно было бы идентифицировать вирус. Такие вирусы называются поли- морфными, или самомодифицирующимися. Замечания. 1. Многие полиморфные вирусы используют шифрование своего кода, меняя параметры этой кодировки при создании каждой копии. Кроме того, они тем или иным спо- собом изменяют и свою стартовую часть, которая служит для раскодировки остальных ко- манд вируса. 2. В простейших полиморфных вирусах вариации их кода ограничиваются использованием одних регистров компьютера вместо других, добавлением <незначащих> команд и т.д. И программы-детекторы приспособились обнаруживать команды в стартовой части вируса, несмотря на маскирующие изменения в них. Но имеются и вирусы с чрезвычайно сложны- ми механизмами самомодификации. В них каждая значащая инструкция передается одним из сотен тысяч возможных вариантов, при этом используется более половины всех команд процессора. 3. Тем не менее, имеются антивирусные программы-детекторы, способные обнаруживать даже такие сложные полиморфные вирусы. Как правило, они содержат эмулятор (программный эквивалент) процессора, то есть могут интерпретировать программы без их реального выполнения (на настоящем процессоре). Такие детекторы интерпретируют ана- лизируемые программы, то есть <выполняют> их на программном эквиваленте процессора, и в ходе этого <выполнения> решают, является ли анализируемая программа вирусом или нет. Эта задача очень сложна (точнее, неразрешима), поскольку вирусы не используют ка- ких-то специфических действий, которые не применялись бы другими программами. Однако лучшие детекторы способны отлавливать неизвестные полиморфные вирусы в более чем 80% случаев при очень малом количестве ложных тревог. Примером такой программы яв- ляется Dr. Web из антивирусного комплекта DSAV фирмы <Диалог-Наука> (см. главу 36). Неизменение длины файпов Ранние файловые вирусы при заражении увеличивали длину файлов, что позволяло их легко обнаруживать. Однако затем появились вирусы, не увеличивающие длину фай- лов. Для этого они могут записывать свой код в <пустые> участки внутри файлов, сжимать код заражаемого файла и т.д. Разумеется, <невидимым> вирусам к таким уловкам прибегать нужды нет. [т] 11.9. Особые виды вирусов Вирусы семейства DIP Вирусы семейства ЗАРАЗА В этом параграфе мы опишем два вида вирусов, внедряющихся не в сами файлы, а в файловую систему на дисках. Эти вирусы требуют особого отношения, поскольку стандартные методы лечения для них могут привести к потере информации (для виру- сов семейства DIR) или не излечивают от вируса (для вирусов семейства ЗАРАЗА). В 1991 г. появились вирусы нового типа - вирусы, меняющие файловую систему на диске. Эти вирусы обычно называются DIR. Такие вирусы прячут свое тело в некото- рый участок диска (обычно - в последний кластер диска) и помечают его в таблице размещения файлов (FAT) как конец файла или как дефектный участок. Для всех .СОМ- и .ЕХЕ-файлов указатели на первый кластер (участок) файла, содержащиеся в соответствующих элементах каталога, заменяются ссылкой на участок диска, содер- жащий вирус, а правильный указатель в закодированном виде прячется в неисполь- зуемой части элемента каталога. Поэтому при запуске любой программы в память за- гружается вирус, после чего он остается в памяти резидентно, подключается к про- граммам DOS для обработки файлов на диске и при всех обращениях к элементам ка- талога выдает правильные ссылки. Таким образом, при работающем вирусе файловая система на диске кажется совер- шенно нормальной. При поверхностном просмотре зараженного диска на <чистом> компьютере также ничего странного не наблюдается. Разве лишь при попытке про- честь или скопировать с зараженной дискеты программные файлы из них будут про- чтены или скопированы только 512 или 1024 байта, даже если файл гораздо длиннее. А при запуске любой исполнимой программы с зараженного таким вирусом диска этот диск, как по волшебству, начинает казаться исправным (неудивительно, ведь компью- тер при этом становится зараженным). При анализе на <чистом> компьютере с помощью программ ChkDsk, ScanDisk или NDD файловая система зараженного DIR-вирусом диска кажется совершенно испор- ченной. Так, программа ChkDsk выдает кучу сообщений о пересечениях файлов (<... cross linked on cluster ...>) и о цепочках потерянных кластеров (<... lost clusters found in... chains>). Особая опасность вирусов семейства DIR состоит в том, что повреждения файловой структуры, сделанные этими вирусами, на следует исправлять программами типа ScanDisk или NDD - при этом диск окажется безнадежно испорченным. Для исправ- ления надо применять только антивирусные программы. Замечание. Вирусы семейства DIR формально относят к файловым, хотя они меняют не сами файлы, а способ обращения операционной системы к этим файлам. Еще один необычный тип вирусов - это вирусы, заражающие системный файл IO.SYS. Семейство этих вирусов обычно называется ЗАРАЗА, поскольку первый такой вирус выводил сообщение <В BOOT СЕКТОРЕ - ЗАРАЗА!>. Данные вирусы являются файлово-загрузочными и используют рассогласование между механизмом начальной загрузки DOS и обычным механизмом работы с файлами. При начальной загрузке MS DOS проверяется, что имена двух первых элементов в корне- вом каталоге загрузочного диска - IO.SYS и MSDOS.SYS, но атрибуты этих элемен- тов не проверяются. Если имена совпадают, то программа начальной загрузки считы- вает в память первый кластер элемента с именем IO.SYS и передает ему управление. Пользуясь этим несовершенством программы начальной загрузки, вирус ЗАРАЗА при заражении жестких дисков делает следующее: копирует содержимое файла IO.SYS в конец логического диска: сдвигает элементы корневого каталога, начиная с третьего, на один элемент к кон- цу каталога: копирует первый элемент корневого каталога (соответствующий файлу IO.SYS) в освободившийся третий элемент корневого каталога и устанавливает в нем номер начального кластера, указывающий на место, куда было скопировано содержимое файла IO.SYS, записывает свое тело в место, где находился файл IO.SYS (как правило, в начало области данных логического диска); у первого элемента корневого каталога диска устанавливает признак <метка тома>. Таким образом, начало оглавления корневого каталога после заражения будет выгля- деть примерно так (при просмотре программой DiskEdit): Name .Ext Size Date Time Cluster Arc R/O Sys Hid Dir Vol Sector .,. 10 SYS 40744 31.05.94 6:22 2 R/O Sys Hid Vol MSDOS SYS 38138 14.07.95 23:44 5 R/O Sys Hid 10 SYS 40744 31.05.94 6:22 63616 R/O Sys Hid Здесь в столбце вирус записал свое тело (и где раньше располагался файл IO.SYS), а у третьего эле- мента в этом столбце указан номер того кластера, начиная с которого вирус поместил копию файла IO.SYS. Иначе говоря, в корневом каталоге появляются два элемента с именем IO.SYS, один из которых помечен атрибутом <метка тома>. Однако при начальной загрузке это не вы- зывает сбоев - программа начальной загрузки, проверив, что первые два элемента каталога имеют имена IO.SYS и MSDOS.SYS, загрузит кластер, указанный в первом элементе оглавления (на обычном диске - это начало файла IO.SYS, а на зараженном - код вируса), и передаст ему управление. Вирус загрузит себя в оперативную па- мять, после чего загрузит начало исходного файла IO.SYS и передаст ему управление. Далее начальная загрузка идет, как обычно. А что же при обычной работе в DOS? Неужели в корневом каталоге не будут видны два элемента с именем IO.SYS? Оказывается, нет. DOS и все программы (кроме про- граммы начальной загрузки) будут считать первый элемент каталога, раз он помечен признаком <метка тома>, описанием метки диска С:. А метки игнорируются при обра- ботке файлов и каталогов, поэтому первый элемент с именем IO.SYS не будет виден при просмотре корневого каталога. Разве лишь метка тома для диска С:, выводимая при вводе команды VOL С:, станет <10 SYS> (некоторые программы будут показы- вать ее как IOSYS). Однако мало кто из пользователей обращает внимание на метки дисков! ^ ' '_ Опасность вирусов семейства ЗАРАЗА состоит в следующем: даже если загрузить ^"^ компьютер с <чистой> системной дискеты и ввести команду SYS С:, вирус не будет удален с диска! Команда SYS, как и остальные программы DOS, проигнорирует указы- вающий на вирус первый элемент корневого каталога, посчитав его описанием метки. Перезаписан будет лишь <файл-дублер> IO.SYS, описанный в третьем элементе корне- вого каталога. Причем если программа SYS запишет файл IO.SYS в новое место на диске, то система перестанет загружаться с жесткого диска, т.к., вирус в своем теле хранит адрес начального сектора исходного файла IO.SYS. Поэтому обеззараживать диски, инфицированные вирусами семейства ЗАРАЗА, ко- мандой SYS не следует, это надо делать антивирусными программами. Напомним, то симптомом вируса семейства ЗАРАЗА является метка тома <10 SYS>, то есть в ответ на команду DOS VOL С: выводится: Volume In drive С is 10 SYS Volume Serial Number Is . . . В крайнем случае, можно использовать следующий прием: с помощью программы DiskEdit снять у первых трех элементов (первый и третий - с именами IO.SYS, вто- рой - с именем MSDOS.SYS) корневого каталога диска С: на жестком диске атрибу- ты <скрытый>, <системный>, <только для чтения> и <метка тома>, переименовав при этим один из элементов с именем IO.SYS, например, в 101.SYS: Name .Ext Size Date Time Cluster Arc R/O Sys Hid Dir Vol Sector ,,. 10 SYS 40744 31.05.94 6:22 2 MSDOS SYS 38138 14.07.95 23:44 5 101 SYS 40744 31.05.94 6:22 63616 После этого файлы IO.SYS, 101.SYS и MSDOS.SYS можно удалить командой Del. Те- перь команда SYS С: сможет записать на диск С: чистые системные файлы. Часть 3 Подробности о компьютере и программах В этой части излагаются более подробные сведения о том, что находится внутри системного блока компьютера, о подключаемых к компьютеру уст- ройствах и основных видах программного обеспечения. Например, при рассмотрении устройств для компьютера даются их основные характери- стики, примерные цены, обсуждается проблема выбора между устройства- ми со схожими функциями - скажем, между различными устройствами хранения данных или видами принтеров. Начинающие пользователи могут пропустить данную часть и сразу перейти к следующей. Крышка - системного блока Материнская ^ плата ^-^ ^0 ^ Дисководы .[ для ^ дискет -====^3 Стример- |