
                   АНТИВИРУСНЫЙ  БАРЬЕР

   Ивинских Валерий                      6 августа 1992 г.,
     Рудольфович                             г. Тверь


   В этой небольшой заметке мне бы хотелось еще раз обратиться к
ставшей уже классической теме борьбы с вирусами, а точнее, борь-
бы создателей антивирусных  программ  с разработчиками вирусов и
наоборот.  В настоящее время имеется великое множество программ,
призванных защитить рядового пользователя от коварных вирусов, и
автор каждой такой программы хочет верить,  что дарит миру пана-
цею если не от всех, то от многих бед.  Собственно говоря, начи-
ная писать эту заметку,  я тоже втайне надеюсь, что мои идеи по-
трясут  всех и обратят  в крайнее уныние многих техно-крыс;  так
это или нет - читайте дальше и решайте сами.
   Мой небольшой багаж знаний,  приобретенный во время прочтения
работ  известных специалистов по компьютерным вирусам,  позволил
сделать следующий вывод.  Все  антивирусные программы,  несмотря
на их  обилие и многообразие,  делятся на два  основных типа,  а
именно :

 1. Резидентные сторожа, постоянно отслеживающие факты обращения
    к  диску и  в случае  каких-либо  подозрительных действий со
    стороны работающих программ извещающие об этом пользователя.
    Смысл такого  извещения  сводится к запросу  типа "Разрешать
    запись на такую-то область диска али как ?"  После двух-трех
    сотен таких запросов доведенный  до белого каления пользова-
    тель  отстраняет  сторожа  от должности,  тем самым облегчая
    жизнь себе ( и вирусам ). Другие сторожа отслеживают измене-
    ние векторов прерываний  и вновь бросаются со своими пробле-
    мами к пользователю,  который должен либо успокоить их, либо
    насторожиться сам. Да к тому же сторожа, являясь резидентны-
    ми программами,  зачастую конфликтуют с другими резидентами.
    Так что давайте рассмотрим второй тип антивирусных программ.

 2. Программы-детекторы  и доктора ( фаги ),  которые  позволяют
    обнаружить  зараженные файлы и, по возможности, вылечить их,
    то есть, фактически, борются с последствиями вирусной атаки.
    И спасибо,  что есть такие программы - не будь их,  пришлось
    бы каждый раз  при подозрении на наличие заразы  производить
    переформатирование диска ( ладно бы дискеты,  а если заражен
    винчестер ? )  Самая популярная у нас антивирусная программа
    -  AIDSTEST  - как раз относится  к типу докторов.  Но и тут
    есть один очень неприятный момент -  доктор может обнаружить
    только те вирусы, о которых он знает, а любой новый вирус до
    того,  как попасть на операционный стол к г-ну  Д.Лозинскому
    ( позор тому, кто не знает, что это разработчик AIDSTEST'а),
    успеет натворить кучу бед, и спешащая по следам новая версия
    AIDSTEST сможет лишь предотвратить новые катастрофы.  Вспом-
    ните,  именно так получилось с вирусом  DIR-1024,  который в
    свое время у многих попил кровушки ( в том числе,  кстати, и
    у меня тоже ).

   Как видим, описанные средства лишь частично могут уберечь нас
с вами от вирусов, и всегда найдется вирус,  для которого на мо-
мент его распространения еще не будет противоядия.  Поэтому  нам
придется смириться с мыслью о том,  что попавший к нам новый ви-

                             - 2 -

рус все-таки причинит  определенный вред.  Другой вопрос  в том,
насколько он опасен, этот причиняемый вред, и как бы его миними-
зировать. Что ж, давайте рассуждать диалектически.
   В древние времена, в эпоху i8086 и первых IBM PC,  вирусы за-
нимались тем, что размножались по дискетам пользователей и  вре-
мя от времени творили мелкие пакости вроде осыпания букв с экра-
на и периодической  перезагрузки машины.  Неприятно, но не смер-
тельно. Более "злые" вирусы стирали FAT или директории - это уже
были достаточно чувствительные удары, ведь обычно в таких случа-
ях приходилось  форматировать  дискету заново и, соответственно,
терять нужную информацию.
   С появлением жестких дисков -  "винчестеров"  - роль дисковых
накопителей  изменилась и сильно возросла - теперь они  стали не
просто  хранилищами информации,  а частью системы. Если в первое
время  винчестеры обеспечивали  лишь более быстрый доступ к дан-
ным,  то теперь  появилось  множество задач, которые без исполь-
зования жестких дисков просто невозможно решать.  Да и организа-
ция хранения информации  на таких дисках намного сложнее, чем на
обычных дискетах.  И сразу появляются новые вирусы,  которые уже
не  ограничиваются  порчей FAT,  а производят такие  разрушения,
после которых впору стреляться.  Именно на борьбу с возможностью
таких разрушений я и направил свои усилия.
   Первым  делом просмотрел я литературу по данном вопросу.  Вот
статья, в которой рекомендуют иметь образцовую распечатку  Boot-
сектора  загрузочного раздела жесткого диска и периодически сли-
чать с ней  текущее содержимое оного.  А вот  такую же  нехитрую
процедурку рекомендуют проводить и с главной загрузочной записью
( MBR ).  Логично, подумалось мне, но что будет толку,  если ви-
рус залетит в Boot-сектор и компьютер  перестанет  загружаться с
винчестера ? Тогда-то уж и сверять испорченный сектор с образцом
будет незачем, и так понятно, что надо спасать уцелевшее.  А вот
если бы просто-напросто не допустить записи вируса в бутовую об-
ласть... постойте, а  почему  именно вируса - туда вообще  никто
никогда ничего не должен записывать !  Вы подумайте - никто, ни-
когда, ничего, - тут и резидентному сторожу ни о чем переспраши-
вать пользователя не нужно, не пущать - и все тут !  Так, допус-
тим, сможем мы MBR и Boot-сектор защитить от любой записи, а что
это даст ?  А то, что теперь  после вирусной атаки винчестер  не
потеряет  парциальную таблицу и компьютер  сохранит  способность
загружаться с винчестера.  Ой, не совсем так,  ведь  вирус может
покромсать  IO.SYS,  MSDOS.SYS или  COMMAND.COM - как с  ними-то
быть ?  Немного пошевелив мозгами, я пришел к мысли,  что и в ту
область, где находятся эти файлы, тоже в обычных условиях ничего
записывать  не приходится.  И тут уж  совсем близко до той гени-
альной идеи, к которой я в результате пришел - собрать все файлы
DOS, самые необходимые дисковые утилиты и антивирусы-фаги на за-
грузочном разделе  винчестера ( обычно это диск C: ) и полностью
закрыть его по записи ! В этом случае при вирусной атаке мы, са-
мое худшее, потеряем программы и данные  на дискетах  или других
разделах  жесткого диска,  но зато сможем без проблем перезагру-
жаться, не прибегая к помощи заклеенной дискетки с системой, как
это обычно бывает в подобных случаях.  Опять же, можно было бы и
с дискеты перезагрузиться, но если вирус отформатирует 0 дорожку
винчестера, то... Врагу не пожелаю, сам такое однажды испытал. А
предложенный подход  позволит уберечься от этого - перезагружай-
ся  и  запускай AIDSTEST, который либо вылечит зараженные файлы,
либо ничего не обнаружит,  если это был какой-нибудь  суперновый

                             - 3 -

вирус типа  ZZZ-12345  ( не ищите его в  каталогах, это я так, к
примеру ). Думаю, в целом вам эта концепция ясна.
   Распираемый гордостью за себя, сел я полистать свежий номерок
Софтпанорамы  и  обнаружил,  что программ,  подобных  задуманной
мною,  предлагается предостаточно.  Фактически, это и есть рези-
дентные сторожа, о которых уже шла речь. Попробовав в деле неко-
торые из них,  я убедился, что,  во-первых, они действительно не
позволяют ничего записывать на защищаемые разделы  жесткого дис-
ка командами  DOS и Norton Commander, и, во-вторых, тот же вирус
DIR преспокойно заражает COMMAND.COM, обходя все защиты. Немного
поразбиравшись, я выяснил,  что большинство таких сторожей вклю-
чаются в цепочку обработчиков прерывания INT 13H, причем ДО про-
цедур DOS, в то время как DIR-1024 "бьет пониже", и не только он
один.  Тут уж мне пришлось немного полистать книжки по Ассембле-
ру и DOS.  В результате умственных усилий меня и моего  товарища
Александра Томело,  который в совершенстве овладел техникой соз-
дания драйверов, и появилась программа, названная нами " Антиви-
русным Барьером " - BARRIER.SYS.

      К основным достоинствам этой программы можно отнести :

 -- под защиту от записи берется 0 дорожка винчестера, где нахо-
    дится парциальная таблица и,  возможно,  расширенные таблицы
    DM или ADM, если они есть,  а также загрузочный раздел, гра-
    ницы которого с точностью до сектора  определяются из парци-
    альной таблицы;
 -- все  операции  записи и форматирования,  относящиеся  к этим
    областям,  завершаются  с признаком  Write Protect Error  и,
    кроме того, выдачей звукового сигнала;
 -- защищающий модуль включается,  естественно,  в цепочку обра-
    ботчиков прерывания INT 13H, но не перед DOS, а после, вкли-
    ниваясь непосредственно между DOS и ROM-BIOS;
 -- программа оформлена в виде псевдо-драйвера и запускается при
    выполнении строки DEVICE=BARRIER.SYS файла CONFIG.SYS. Жела-
    тельно, чтобы эта строчка стояла самой первой, в этом случае
    все последующие  загружаемые программы  выдадут себя с голо-
    вой жутким писком, если они заражены;
 -- BARRIER гневно пресекает  все попытки вирусов определить ад-
    рес обработчика  INT 13H в ROM-BIOS -  эта схватка может за-
    кончиться даже зависанием системы, но враг не пройдет !
 -- и при всем при этом BARRIER занимает всего  160 байт памяти,
    увеличивая продолжительность обработки  INT 13H на несколько
    десятков тактов процессора;
 -- естественно,  BARRIER не может быть обнаружен  при просмотре
    цепочки блоков памяти  и  не трогает вектор INT 13H;

   Самое главное, пожалуй, то, что с момента установки на машину
BARRIER  уже неоднократно  оповещал о вирусной атаке,  завершав-
шейся плачевно для вируса и хозяина дискеты, который приносил ее
на мой компьютер.

   Есть, однако, и одна особенность, которую я затрудняюсь одно-
значно отнести к достоинствам или к недостаткам. Дело в том, что
после установки BARRIER'а Вы уже не сможете ничего менять на за-
грузочном  разделе своего жесткого диска,  и при  необходимости,
например, подкорректировать  Autoexec.Bat  Вам нужно будет пере-
загружаться с дискеты, которая, естественно, должна быть заранее

                             - 4 -

подготовлена - не забудьте об этом !  Для тех же, кто на все 100
уверен в себе,  у меня есть маленькая  нерезидентная  программа,
которая при первом запуске нейтрализует BARRIER, а при повторном
вновь активизирует его. Если Вы посчитаете, что она Вам нужна, -
обращайтесь ко мне, и за чисто символическую плату Вы ее получи-
те.

   Кстати, если же все-таки каким-то образом у  Вас случится ка-
тастрофа на винчестере - потеря парциальной таблицы,  переформа-
тирование 0 дорожки или другие неприятные штуки, -  то Вам может
быть очень полезной программа  восстановления винчестера  " HARD
DRIVE DOCTOR ",  которая сейчас готовится к выпуску с конвейера.
Чудес на свете не бывает, но, если что-то окажется возможным еще
сделать с Вашим погибшим винчестером, она сделает.



     170005, г.Тверь-005, ул. Зинаиды Коноплянниковой,
                 д. 5, к. 203,  Ивинских В.Р.

________________________________________________________________


