КОМПЬЮТЕРНАЯ ВИРУСОЛОГИЯ
«Читатель, вот мои «Досуги»…
Суди беспристрастно!
Издаю пока отрывок.»
Козьма Прутков
По мере развития и усложнения компьютерных систем и программ-
ного обеспечения возрастает объем и повышается уязвимость хранящи-
хся в них данных. Одним из новых факторов, резко повысивших эту
уязвимость, является массовое производство программно-совместимых
мощных персональных ЭВМ, которое явилось одной из причин появления
нового класса программ-вандалов — компьютерных вирусов. Наибольшая
опасность, возникающая в связи в опасностью заражения программного
обеспечения компьютерными вирусами, состоит в возможности искаже-
ния или уничтожения жизненно-важной информации, которое может при-
вести не только к финансовым и временным потерям, но и вызвать че-
ловеческие жертвы.
В последние три года в зарубежной печати наблюдается активное
развитие исследований, посвященных проблеме защиты компьютеров от
вирусов. О размахе работ по рассматриваемой тематике свидетельст-
вует ряд фактов: библиография работ, затрагивающих или целиком по-
священных данной проблеме, исчисляется сотнями наименований, поя-
вился ряд монографий, как американских, так и европейских авторов
(см. приведенный в данной работе список источников, хотя он, есте-
ственно, является неполным и включает только публикации, доступные
в СССР). Состоялось несколько конференций по проблеме защиты от
вирусов, а на большинстве представительных конференций имеются се-
кции, так или иначе связанные с этой тематикой. Появился ряд фирм,
для которых разработка антивирусных средств стала основным направ-
лением их деятельности. Все это ставит вопрос о формировании новой
инженерной дисциплины «компьютерной вирусологии», рассматриваемой
как совокупность методов и приемов изучения компьютерных вирусов и
разработки эффективных средств защиты от них.
Можно выделить три основных направления исследований в компь-
ютерной вирусологии: теоретические исследования, разработка мето-
дов анализа и разработка средств защиты. Теоретические исследова-
ния связаны с выявлениями закономерностей, присущих эпидемиям ком-
пьютерных вирусов, анализом «точек проникновения» и созданием нес-
пецифической методики выявления вирусов в компьютерных программах.
Исследование этих проблем наталкивается на значительные трудности,
частично связанные с их новизной и необычностью, а частично с не-
четкостью самой проблемы. Например, проблема выделения вируса в
компьютерной программе может с теоретической точки зрения рассмат-
риваться как задача распознавания образов, однако такой абстракт-
ный подход непросто увязать с практическими проблемами детектиро-
вания вирусов.
Разработка методов анализа связана с проблемой дизассемблиро-
вания программного обеспечения, не имеющего исходных текстов. К
проблеме дизассемблирования в академических кругах незаслуженно
относились пренебрежительно, а те немногие статьи, которые писа-
лись по данной тематике, часто отвергались редакциями журналов как
«ненаучные» и связанные с «пиратством». На самом же деле проблема
дизассемблирования является частью проблемы реконструкции програм-
много обеспечения. Последнее время это направление усиленно разви-
вается за рубежом и есть надежда, что постепенно оно будет призна-
но и нашей «официальной» наукой.
Наибольшие результаты в настоящее время достигнуты в третьем
направлении — создании конкретных антивирусных программ и методик
их применения. Ряд разработок доведен до уровня программных проду-
ктов и широко используются пользователями. Не случайно этой теме
посвящена значительная часть «антивирусных публикаций».
Конечно, компьютерная вирусология быстро развивается и в пос-
леднее время в разных ее разделах получены новые интересные резу-
льтаты, которые еще не нашли отражения в данной работе.
Данная рукопись представляет собой исправленный и дополненный
текст лекций, прочитанных автором на Киевском семинаре «Системное
программирование», начиная с апреля 1989 г., и является первой ча-
стью запланированной автором работы, посвященной вопросам, связан-
ным с компьютерными вирусами. В ней излагаются общие принципы фун-
кционирования вирусов, предлагаемая автором классификация и кратко
описываются наиболее распространенные (на период подготовки насто-
ящей редакции) компьютерные вирусы. Содержание книги охватывает
достаточно широкий круг вопросов без излишней детализации. Необхо-
димые термины определяются неформально и могут быть восприняты на
интуитивном уровне. Для понимания основного содержания книги дос-
таточно некоторого знакомства с операционной системой MS DOS (нап-
ример, в объеме, приводимом в книге В.Э.Фигурнова [Фигурнов90]) и
не требуется знания языка ассемблера. Хотя изложение ориентировано
на MS DOS, большинство излагаемых приемов анализа и методов защиты
применимы, с соответствующими модификациями, и для других операци-
онных систем.
Предполагается, что вся работа будет состоять их трех частей.
В частности, во второй части работы будут рассмотрены проблемы
трассировки, дизассемблирования и реконструкции загрузочных моду-
лей, а в третьей — вопросы классификации, использования и констру-
ирования средств защиты от компьютерных вирусов, Они будут опубли-
кованы в последующих выпусках бюллетеня СОФТПАНОРАМА.
Относительно компьютерных вирусов существует много мифов, по-
этому очень важно наличие объективной «первичной» информации. Дело
в том, что как в публикациях, так и в «программистском фольклоре»
встречаются неточные или вообще неверные утверждения относительно
эффектов, вызываемых тем или иным вирусом, и оптимального выбора
методов защиты. Следует также отметить, что некоторые авторы бро-
шюр на эту тему, появившихся в массовых изданиях и научно-популяр-
ных журналах, не обладают достаточной квалификацией в области сис-
темного программирования и, стараясь придать материалу сенсацион-
ный характер, скатываются при описании вирусов на уровень «фильмов
ужасов».
Поскольку научные интересы автора в последнее время были сос-
редоточены на вопросах разработки эффективных методов дисассембли-
рования, обратной трансляции и реконструкции программного обеспе-
чения [Безруков88], новый тип программ — вирусы сразу привлек вни-
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128