Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Филин С.А. Информационная безопасность, 2006

.pdf
Скачиваний:
144
Добавлен:
11.03.2016
Размер:
12.87 Mб
Скачать

с достаточной уверенностью сказать, что создателем файла является именно тот человек, чье имя стоит в сертификате.

Броузеры не отображают никакой информации об открытом ключе ведомства сертификатов. Поэтому их пользователи не могут проверить достоверность этого ключа.

Цифровые сертификаты выдаются только на определенный срок, после которого владелец сертификата должен обновить его. Если Интернет Explorer (параметры безопасности должны быть установ­ лены на Medium) встретит подписанный компонент с просроченным сертификатом, то на экране появится окно с сообщением о просро­

ченной подписи.

PadoTaAuihenticode построена надвух предположениях. Во-первых, предполагается, что пользователи не могут легко вычислить личный ключ при помощи открытого ключа. Некоторые эксперты считают, что на взлом 1024-битного ключа потребуется 90 млрд MIPS-лет, т. е. 1 млн компьютеров, выполняющих 1 млрд операций в секунду, будут взламывать одну подпись 90 лет. Однако никто в действительности не знает, сколько времени нужно на взлом; за историю шифрования был взломан не один код.

Во-вторых, работа программы Authenticode построена на пред­ положении, что никто не может украсть ваш личный ключ. Однако это не всегда так. Кто-нибудь может похитить его точно так же, как и обычный ключ или кредитную карточку. Чтобы уберечься от воровства кредитных карточек, финансовые структуры хранят список номеров украденных или утерянных карточек. При по­ купке по кредитной карточке (особенно когда стоимость покупки высока) продавец сверяет ее номер с номерами, расположенны­ ми в этом списке. Точно так же программа Authenticode просма­ тривает список аннулированных сертификатов (CRL — Certificate Revocation List).

В настоящее время существует два вида сертификатов: коммер­ ческие и индивидуальные. При выдаче коммерческого сертификата для получения сведений об экономической стабильности организа­ ции VeriSign использует доклад Dunn & Bradstreet. Для выдачи индиви­ дуального сертификата требуется номер социального страхования.

4.3.2. КОМПЬЮТЕРНЫЕ ВИРУСЫ И АНТИВИРУСНЫЕ ПРОГРАММЫ

Проблема компьютерных вирусов (КВ) возникла давно и сра­ зу же получила широкое распространение. В 1988 г. с появлением в сети «вируса Морриса» фактически началось целенаправленное развитие антивирусных средств. Термин «вирус» в применении

283

ккомпьютерам предложен Фредом Когеном из Университета Юж­ ной Каролины. Слово «вирус» латинского происхождения и означает «яд». Исторически вирусом называется любая программа, инфици­ рующая выполняемые или объектные файлы. Программу, воспро­ изводящую себя без санкции пользователя, также можно отнести

квирусам.

Компьютерный вирус [9] — это достаточно сложная и своеобраз­ ная программа, выполняющая несанкционированные пользовате­ лем действия, которая пытается тайно записать себя на компьютер­ ные диски.

Большинство вирусов распространяется одним из двух мето­ дов: записывается на файлы (проникнув систему, КВ записывает­ ся на каждый исполняемый или объектный файл, размешенный на компьютере) или загрузочные сектора жесткого или флоппи-дис­ ка, помещенного в дисковод зараженного компьютера. В последнем случае КВ проникают и в компьютеры, загружающиеся с инфициро­ ванного диска. Каждый раз, когда компьютер загружается с инфи­ цированного диска, происходит скрытое инфицирование. При этом любой КВ записывает свой код в тело программы. Чаще всего КВ помещает свое тело в программном файле так, чтобы он активизиро­ вался при каждом запуске программы. Перенос своего тела на дис­ кеты и жесткие диски является для КВ гарантией того, что он будет запущен при каждом включении системы, т. е. будет выполняться при каждом запуске программы.

Способ функционирования большинства КВ — это такое изменение системных файлов компьютера пользователя, в результате которо­ го КВ начинает свою деятельность либо при каждой загрузке, либо

вмомент, когда происходит некоторое «событие вызова».

Всвязи с созданием все более искусных антивирусных программ разработчики КВ изменили стратегию: прежде чем инфицировать очередной файл, КВ изменяет свое тело. Выбрав объект инфициро­ вания, КВ копирует себя из оперативной памяти компьютера внутрь инфицируемого файла.

Файлы данных не могут быть заражены вирусом. Однако суще­ ствуют так называемые макровирусы, которые распространяются с помощью файлов шаблонов. Кроме того, в Интернете существует значительное количество «мнимых» вирусов.

КВ — это одна из наиболее широко известных опасностей для сетей. В настоящее время имеется около тысячи видов вирусов. Учитывая тот факт, что каждый из них существует в нескольких мо­

284

дификациях, это число следует увеличить в 5—10 раз42. Специалисты утверждают, что только 5% всех КВ могут вызвать серьезные непо­ ладки в аппаратном обеспечении или разрушение операционной системы. Большинство «электронных инфекций» только тем и за­ нимается, что воспроизводит себя. Их главная задача — выжить, а не нанести вред компьютерной системе. Однако это совсем не зна­ чит, что нужно забыть об их существовании — «безобидных» вирусов не существует.

Существует предположение, что КВ — это одна из форм жизни,

более точно — виртуальная форма жизни.

Известно множество определений смысла жизни, источников и форм ее движения, теорий и методологий познания. Так, в соот­ ветствии с [65]: жизнь — одна из форм существования материи, за­ кономерно возникающая при определенных условиях в процессе ее развития. Живые организмы отличаются от неживых объектов обме­ ном веществ, раздражимостью, способностью к размножению, рос­ ту, развитию, активной регуляции своего состава и функций, к раз­ личным формам движения, приспособляемостью к среде и т. п.

Подобно живым микроорганизмам-паразитам, КВ:

1)обмениваются энергией с внешней средой, например, исполь­ зуют ресурсы оперативной памяти копьютера (занимают часть объ­ ема оперативной памяти и используют часть электрической энергии, обеспечивающей функционирование оперативной памяти (участву­ ют в обмене веществ);

2)активизируются (по крайней мере, некоторые из них) под дей­ ствием внешнего сигнала (обладают раздражимостью);

3)обладают способностью к многократному копированию само­ го себя (способностью к размножению);

4)обладают способностью к изменению размера своего тела (спо­ собностью к росту);

5)обладают способностью к модификации (КВ может изме­

нять свое тело), самосовершенствованию, расширению своих

42 В Web расположено несколько сайтов с информацией о КВ. Одним из них является сайт Joe Wells’ WildLists, расположенный по адресу http://www.vinisbtn. com/WiliiLists/, в который включена информация о всех наиболее распростра­ ненные в настоящее время КВ. Ассоциация NCSA (National Computer Security Association) использует эту информацию для оценки качества антивирусных программ: чтобы удовлетворить требованиям NCSA, программа должна обна­ руживать все перечисленные на этом сайте КВ. Этот список обновляется каж­ дый месяц.

285

функциональных возможностей (некоторые КВ могут избирательно добывать информацию из Интернета для целей собственной само­ организации и расширения функциональных возможностей), т. е. обладают способностью к развитию, активной регуляции своего состава и функций;

6) распространяются (с помощью флоппи-диска, компакт-дис­ ка, локальной сети, электронной почтой или через Интернет), «за­ ражая» неинфицированные программы (обладают способностью

кразличным формам движения);

7)способны приспосабливаться к среде (записываются на фай­ лы, загрузочные сектора жесткого или флоппи-диска; существуют также макровирусы, которые распространяются с помощью файловшаблонов).

8)смертны (при выключении компьютера КВ, размещенный

вего оперативной памяти, исчезает; также существуют антивирус­ ные программы, которые «убивают» КВ).

Главной составляющей жизни является энергия: физическая, химическая, биологическая, социальная, духовно-мыслительная. Она проявляется в ритмах, колебаниях, движениях материи, мыс­ ли, духа, информации, виртуальной реальности и т. д. Многообразие форм проявления жизни — это отражение богатства ее содержания (необходимого разнообразия), движений и превращений43.

Борьба за энергию — всеобщий закон жизни. Живые организ­ мы выживают в борьбе с неорганической природой в условиях превышения запасов их энергии над энергией неорганических веществ.

Процесс заражения файла практически одинаков у всех КВ. На­ пример, простейшие КВ заражают файлы следующим образом [66]:

1.Пользователь должен загрузить зараженный файл в оператив­ ную память компьютера. Этот файл может попасть в компьютер

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

2.Разместившись в оперативной памяти, КВ ожидает загрузки следующей программы (это очень напоминает поведение живых

43 В соответствии с С.А. Подолинским (1850-1891), в растениях совершает­ ся работало «подъему» части солнечной энергии с низшей ступени на высшую. Организм животных функционирует за счет энергии, накопленной растения­ ми. Листья растительного мира, используя энергию солнца, осуществляют хи­ мические синтезы, продукты которых — объект борьбы в животном мире.

286

микроорганизмов-паразитов, ожидающих появления нового «хо­ зяина»).

3.После запуска следующей программы КВ помещает свое тело внутрь объекта инфицирования. Кроме того, КВ помещает свое тело

ивнутри копии программы, хранящейся на диске, т. е. КВ воспроиз­ водит самого себя (создает свои копии).

4.Компьютерный вирус продолжает заражать программы до тех пор, пока не заразит их все или пока пользователь не выключит ком­ пьютер. Тогда расположенный в его памяти КВ исчезает. Однако для него это не так уж и страшно — ведь он расположен внутри за­ раженных файлов, хранимых на диске.

5.После включения компьютера и загрузки зараженной програм­ мы вирус снова начинает свою «невидимую» жизнь в оперативной памяти компьютерной системы. И так до бесконечности.

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

операционной системы. Некоторые вирусы умеют прятаться внутри сжатых файлов. Более того, некоторые вирусы умеют заражать сис­ темы с помощью текстового процессора. Однако важно уяснить, что вирус заражает компьютер только в том случае, если вы запускаете инфицированную программу. Даже вирусы, паразитирующие на тек­ стовых процессорах, для своей активизации требуют выполнения специальной программы — макрокоманды.

Наиболее простой метод инфицирования ЕХЕ-файла заключается в следующем. Прежде всего, КВ создает в памяти дополнительную область для своего размещения. После этого он прочитывает заголо­ вок ЕХЕ-файла и переделывает его так, чтобы он содержал инфор­ мацию и о месте в памяти, занимаемом вирусом. С этого момента

иначинается процесс инфицирования программы [66].

1.КВ считывает текущий заголовок файла и сохраняет его для

дальнейшего использования. В этом заголовке хранится ин­ формация о длине файла, значении контрольной суммы и т. д.

2.КВ определяет, какое количество памяти он должен прибавить к текущему размеру файла, чтобы разместить там свое тело.

3.КВ копирует свое тело в файл. Размер КВ и внесенных им из­ менений в заголовок файла составляют сигнатуру КВ.

Вирусная сигнатура — это некоторая уникальная характеристика вирусной программы, которая выдает присутствие КВ в компьютер­ ной системе.

287

4.КВ снова записывает информацию заголовка в программу. Теперь заголовок содержит информацию о месте, занимаемом ви­ русом.

5.КВ сохраняет измененную программу на диске.

Описанный выше тип вирусов называется вирусом-паразитом. КВ-паразит добавляет свое тело к программе и после этого продол­ жает свою жизнь наравне с программой. Если же вы удалите инфи­ цированный файл, то вместе с ним исчезнет и КВ. Кроме КВ-па- разитов существуют так называемые загрузочные КВ, размещающие свое тело в подпрограмме загрузки операционной системы. Этот тип вирусов совершенно отличен от КВ-паразитов. Дело в том, что загру­ зочные КВ паразитируют не на исполняемых программах, а на самой операционной системе.

При разработке современных КВ используется много техниче­ ских новшеств, однако большая часть КВ является имитацией и мо­ дификацией нескольких классических схем.

Вирусы можно классифицировать по типу поведения следующим об­ разом [9]:

1.Вирусы, поражающие загрузочный сектор, пытаются заменить или инфицировать часть дискеты (или жесткого диска), зарезерви­ рованную только для операционной системы и хранения файлов за­ пуска. Они загружаются в память при каждом включении компью­ тера. Тем самым вирусу дается полная возможность контролировать любой выполняемый компьютером процесс. Эти вирусы обладают наибольшей способностью к размножению и могут постоянно рас­ пространяться на новые диски.

2.Вирусы, инфицирующие файлы. Чтобы остаться необнаружен­ ными, множество вирусов пытается инфицировать исполняемые файлы. Обычно вирусы отдают предпочтение ЕХЕ- и СОМ-файлам, однако в связи с растущей популярностью \Vindows некоторые ав­ торы вирусов стараются инфицировать файлы библиотек динамиче­

ской связи ф ЬЬ ).

Файловые вирусы распространяются медленнее, чем вирусы, по­ ражающие загрузочный сектор, вирус активизируется и начинает размножаться, только когда инфицированный файл запущен на вы­ полнение. Единственное условие распространения вируса — это вы­ полнение инфицированного программного файла. При этом он бу­ дет загружаться в память и сможет приступать к работе.

3. Многофункциональные вирусы. Некоторые вирусы используют для инфицирования компьютерной системы как загрузочный сек­ тор, так и метод заражения файлов. Это несколько затрудняет выяв­

288

ление и идентификацию вируса специальными программами и ведет

кбыстрому его распространению.

4.Вирусы-невидимки. Один из способов выявления и иденти­ фикации вируса антивирусными программами — проверка конт­ рольных сумм. Первоначально этот метод использовался в связи. Контрольная сумма — это результат выполнения математического

алгоритма, проверяющего соответствие длины полученного фай­ ла длине его первоначальной копии. Ряд антивирусных программ создает списки контрольных сумм файлов, находящихся на вашем диске. Вирусы-невидимки используют ряд методов для маскировки своего присутствия — они фальсифицируют фактические значения контрольных сумм, что затрудняет их обнаружение.

5. Системные вирусы. Пытаясь остаться незамеченными, систем­ ные вирусы поражают не загрузочный сектор, а операционные сис­ темы. Основные жертвы этих вирусов — это таблица размещения файлов (оглавление диска), таблицы разделов, драйверы устройств и системные файлы.

Существует несколько различных классов (или типов) вирусов. Вирусы каждого из классов используют различные методы воспроиз­ ведения. К наиболее известным классам относятся троянские кони, полиморфные вирусы и неполиморфные шифрующиеся вирусы, стелс-вирусы, медленные вирусы, ретро-вирусы, составные виру­ сы, вооруженные вирусы, вирусы-фаги и макровирусы. Рассмотрим основные из них [66] .

Троянскими конями называются КВ, скрытые в файлах данных (например, сжатых файлах или документах). Чтобы избежать обна­ ружения, некоторые разновидности троянских коней скрыты и в ис­ полняемых файлах. Таким образом, эта программа может распола­ гаться и в программных файлах, и в файлах библиотек, пришедших в сжатом виде. Однако зачастую троянские кони содержат только подпрограммы КВ. Согласно Дэну Эдварду44, троянским конем на­ зывается «небезопасная программа, скрывающаяся под видом без­ обидного приложения типа архиватора, игры или программы обна­ ружения и уничтожения вирусов».

Большинство современных антивирусных программ обнаружи­ вает практически всех троянских коней.

^ Э д в а р д Д э н — разработчик антивирусного программного обеспечения для NSA (National Security Administration).

289

Одной из наиболее известных троянских коней стала программа Сгаскецаск. Как и все другие средства для взлома паролей, доступные в Интернет, эта программа тестировала относительную мощность паролей, расположенных в выбранном файле. После своего запуска она выдавала список взломанных паролей и предлагала пользовате­ лю удалить этот файл. Первая версия программы не только взламы­ вала пароли, но также и передавала их автору троянского коня.

Полиморфные вирусы —*это КВ, которые зашифровывают свое тело и благодаря этому могут избежать обнаружения путем проверки сигнатуры КВ. Прежде чем приступить к работе, такой КВ расшиф­ ровывает себя с помощью специальной процедуры расшифровки. Процедура расшифровки превращает зашифрованную информацию в обычную. Чтобы расшифровать тело КВ, процедура расшифровки захватывает управление компьютером. После расшифровки управ­ ление компьютером передается расшифрованному КВ.

Первые шифрующиеся КВ были неполиморфными, т. е. процеду­ ра расшифровки КВ не изменялась от копии к копии. Поэтому анти­ вирусные программы могли обнаружить КВ по сигнатуре, присущей процедуре расшифровки.

Полиморфные вирусы обнаружить очень трудно, поскольку они генерируют абсолютно новые процедуры расшифровки при каждом новом инфицировании. Благодаря этому сигнатура КВ изменяется от файла к файлу. Для изменения процедуры шифрования использу­ ется достаточно простой генератор машинного кода, называющий­ ся генератором мутаций. Он использует генератор случайных чисел и достаточно простой алгоритм изменения сигнатуры КВ. С его по­ мощью программист может превратить любой КВ в полиморфный. Для этого он должен изменить текст КВ таким образом, чтобы перед каждым созданием своей копии он вызывал генератор мутаций.

Несмотря на то что полиморфные КВ нельзя обнаружить с по­ мощью обычных методов проверки (вроде сравнения строк кода), они все же детектируются специальными антивирусными програм­ мами. Однако этот процесс занимает огромное количество време­ ни, а на создание такой антивирусной программы требуется много усилий. Наиболее свежие обновления антивирусного программного обеспечения производят поиск процедур шифрования, с помощью которой обнаруживают полиморфные КВ.

Стелс-вирусы — это вирусы, которые скрывают изменения, соз­ данные в инфицированном файле. Для этого они отслеживают системные функции чтения файлов или секторов на носителях ин­

290

формации. Если происходит вызов такой функции, то стелс-вирус изменяет полученные ею результаты: вместо настоящей информации стелс-вирус передает функции данные неинфицированного файла. Таким образом, антивирусная программа не может обнаружить ни­ каких изменений в файле. Но чтобы перехватывать системные вызо­ вы, стелс-вирус должен находиться в оперативной памяти компью­ терной системы. Все достаточно хорошие антивирусные программы могут обнаружить подобные КВ во время загрузки инфицированной программы.

Примером стелс-вируса является один из первых задокументиро­ ванных вирусов DOS — Brain. Этот загрузочный вирус просматри­ вал все дисковые системные операции ввода/вывода и перенаправ­ лял вызов всякий раз, когда система пыталась считать зараженный загрузочный сектор. При этом система считывала информацию не с загрузочного сектора, а с того места, где вирус сохранил копию этого сектора. Стеле-вирусами также являются вирусы Number, Beast и Frodo. Говоря языком программистов, они перехватывают преры­ вание 21Н — основное прерывание DOS. Поэтому всякая команда пользователя, способная обнаружить присутствие стелс-вируса, пе­ ренаправляется стелс-вирусом в определенное место в оперативной памяти. Благодаря этому пользователь не может «заметить» стелсвирус.

Как правило, стелс-вирусы либо обладают невидимым разме­ ром, либо они невидимы для чтения. Стелс-вирусы с невидимым размером принадлежат к подвиду КВ, заражающих файлы. Такие стелс-вирусы помешают свое тело внутрь файла, вызывая тем самым увеличение его размера. Однако стелс-вирус изменяет информацию о размере файла таким образом, чтобы пользователь не мог обнару­ жить его присутствия, т. е. система указывает на то, что длина инфицировнного файла равняется длине обычного (неинфицированного) файла. Стелс-вирусы, невидимые для чтения (например, Stoned. Monkey), перехватывают запросы на чтение инфицированной загру­ зочной записи или файла и предоставляют в ответ первоначальную, не измененную стелс-вирусом информацию. При этом пользователь не может обнаружить присутствие стелс-вируса.

Большинство стандартных антивирусных программ обнаружи­ вают стелс-вирусы. Для этого достаточно запустить антивирусную программу до того, как вирус будет размещен в оперативной памяти компьютерной системы. Необходимо запустить компьютер с чистой загрузочной дискеты, а затем выполнить антивирусную програм­ му. Стелс-вирусы могут скрываться, только если они уже размеще­ ны в памяти. Если же это не так, то антивирусная программа легко

291

обнаружит наличие таких КВ на жестком диске. Процесс заражения стелс-вирусом представлен на рис. 4.17.

Медленные вирусы очень трудно обнаружить, так как они ин­ фицируют только те файлы, которые изменяются или копируются операционной системой. Медленный вирус инфицирует любой ис­ полняемый файл, причем делает это в тот момент, когда пользо­ ватель выполняет некоторые операции с этим файлом. Например, медленный вирус может производить заражение загрузочной записи дискеты при выполнении команд системы, изменяющих эту запись (например, FORMAT или SYS). Медленный вирус может заразить копию файла, не заразив при этом файл-источник. Одним из наи­ более известных медленных вирусов является Darth_Vader, который заражает только COM-файлы и только во время их записи.

Обнаружение медленных вирусов — это достатонно сложный процесс. Хранитель целостности (антивирусная программа, на­ блюдающая за содержанием жестких дисков, а также за размером

Рис. 4.17. Стелс-вирус атакует загрузочную запись дискеты

Приложение

(Disk Editor

или антивирус)

Зараженный

диск

 

 

©

 

 

^

(А) Запрос на чтение

Вирус изменяет

I

^головки 0, дорожки 0,

 

запрос

1

сектора!

 

 

 

 

Зараженная Зараженная

(В)

Запрос

 

загрузочная

загрузочная

изменен так,

 

запись

запись

чтобы считывать

 

 

головка О

запись с головки О,

 

 

дорожка О

,

дорожки О,

 

 

сектор 1

 

сектора 7

 

 

 

Служба передачи

 

 

 

информации между

 

 

Вирус

диском и памятью

 

 

компьютера

 

Первоначальная сохранил

 

 

загрузочная

по адресу

 

 

запись

головка О

 

 

 

 

дорожка О

 

 

 

 

сектор 7

 

 

©ip

s 5 ш

5

D.

§ s Es

A)Приложение запрашивает чтение загрузочной записи жесткого диска.

B)Стелс-вирус перехватывает запрос (понимая, что приложение пыта­ ется прочитать зараженную загрузочную запись). Стелс-вирус изменяет за­ прос так, чтобы он вернул первоначальную загрузочную запись, расположенную

вдругом месте.

C)и О). Стелс-вирус предоставляет приложению настоящую первоначаль­

ную загрузочную запись.

292