Все материалы взяты с службы рассылок www.citycat.ru

 

Друзья!

Очень многие из вас просят меня рассказать об одном из самых распространенных видов сетевых атак -- "отказ в обслуживании" (DoS -- Denial of Service). В сегодняшнем выпуске -- статья Михаила Ганева об основных типах DoS-атак и методах борьбы с ними.

Атаки типа "отказ в обслуживании"

Михаил Ганев

Введение

Из чисто информационной сети, предназначенной для обмена информацией по электронной почте и обеспечения доступа к удаленным файловым архивам, Интернет стремительно превращается в серьезный рынок услуг, в который инвестируются немалые суммы денег. Так, например, на март 2000 г. 15 основных Интернет-компаний в Европе охватывали рынок, оцениваемый примерно в $30 млрд. В Интернете развивается рекламный бизнес, онлайновые аукционы, игорный бизнес, электронная коммерция. Посещаемость крупнейших серверов достигает 1 млн в день (онлайновый аукцион eBay (EBAY), данные на март 2000 г.).

Коммерциализация заставляет уделять внимание вопросам обеспечения безопасности сетевых ресурсов. Если сбой или недоступность информационного сервера небольшой компании практически никак не отразится на ее финансовом состоянии, то успешная атака через Интернет ( как это было в феврале 2000 г. с серверами Yahoo, CNN, eBAY, которые стали недоступными для пользователей Интернета на период от 0,5 до 3 часов, об этом инциденте -- в #6 и #7 моей рассылки -- А.Б.), может повлечь за собой серьезные финансовые потери. По оценкам Института компьютерной безопасности США, деятельность хакеров нанесла США в 1999 г. ущерб в размере 10 млрд долл., а 59% всех компаний сообщили, что подвергались атакам из сети Интернета.

Атаки типа "отказ в обслуживании" ( Denial of Service -- DoS) являются одними из наиболее распространенных в Интернете. Официальной информации по частоте их проведения в Интернете нет, но есть все основания утверждать, что такие атаки на более менее крупные информационные ресурсы проводятся как минимум ежедневно. Цель атакующих -- сделать недоступным из Интернета тот или иной ресурс. Чаще всего это просто блокирование доступа, иногда вывод этого ресурса из строя ( наиболее известное последствие для последнего -- синий экран на компьютерах под управлением Microsoft систем). Иногда DoS-атака может являться частью другой, более широкомасштабной и сложной акции, направленной на взлом ресурса.

Основные типы DoS-атак

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

Относительно недавно появились программы для проведения распределенных DoS-атак (TRINOO, TFN и др.)), которые позволяют осуществлять единовременную атаку на какой-либо ресурс из разных мест с централизованным управлением из одной точки. Для этого специальные агенты внедряются на компьютеры в различных местах и по команде по сети из центра начинают бомбить пакетами заданный хост.

Атаки, использующие ошибки в реализации стека протоколов TCP/IP в операционной системе. Основой таких атак является генерация последовательности сетевых пакетов, при обработке которой проявляется искомая ошибка реализации. Как результат, можно получить стремящуюся к бесконечности загрузку процессора, захват ядром или приложением всей доступной памяти. В качестве примера можно привести Teardrop и Land. Как правило, для проведения такой атаки требуется послать один пакет. Однако по мере устранения ошибок в реализации сетевого стека такие атаки реализуются все реже и реже.

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

Механизмы защиты от Dos-атак

Рецепта эффективной защиты от таких атак, к сожалению, не существует. Но можно предпринять ряд мер, направленых на снижение вероятности таких атак.

Проблема блокирования каналов связи и маршрутизаторов наиболее эффективно может быть решена только на уровне провайдеров. В первую очередь, с помощью механизма "контроля качества сервиса" (Quality of Service). Имеющиеся на сегодняшний день технические средства позволяют выделить гарантированную ширину канала под каждый конкретный сервис. Однако применение таких ограничений может повлиять на использование жизненно важных протоколов, например DNS в случае установления максимальной ширины канала для UDP пакетов. Кроме того, ограничение ширины канала для UDP сильно испортит или даже блокирует работу по многочисленным мультимедийным протоколам, а также для телефонии. Тем не менее из двух зол выбирают меньшее. Другой способ борьбы -- установление фильтров по IP адресам источников в случае обнаружения атак с этих хостов. При этом не стоит забывать, что установка подробных фильтров не всегда может помочь, поскольку эта информация в заголовках пакетов может быть легко подделана.

Механизм контроля полосы пропускания поддерживается маршрутизаторами Cisco. Существуют неплохие реализации такого матобеспечения для FreeBSD и Linux. Следует отметить, что для протокола TCP средств роутеров CISCO явно недостаточно, поскольку для эффективной защиты роутер должен отслеживать состояние каждого проходящего через него соединения, что недопустимо для магистрального маршрутизатора. Один из способов борьбы -- фильтрация внутреннего трафика (из внутренних сетей в Интернет), в котором используются подмененные IP адреса ( адреса, не относящиеся к внутренним сетям ). Такой прием применяется довольно часто, поскольку в большинстве случаев для атаки используется только первоначальный SYN пакет, обратный трафик ( который не дойдет до хоста отправителя ) роли не играет. Более подробно этот вопрос освещен в RFC 2267.

Еще одним механизмом повышения "живучести" провайдеров является использование последними различных магистральных каналов ( multihome), что позволяет автоматически в случае вывода из строя одного канала переключиться на другой. Эффективной борьба с таким типом DoS-атак может быть только при тщательном контроле за использованием всех основных сетевых ресурсов. После печально известных взломов серверов Yahoo и CNN, Федеральное Бюро Расследований США взяло под свое наблюдение большое количество сетей в США ( особенно в edu домене).

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

Защита от атак, использующих ошибки в стеке TCP/IP, как правило, заключается в своевременном получении информации о таких уязвимых местах (недостатка в списках рассылки или серверах, где можно найти такую информацию, нет) и в установке патчей (или коррекции конфигурации). Помочь может также установка межсетевого экрана, который в состоянии запретить доступ в сеть большинству таких опасных пакетов.

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

Для того чтобы бороться с DoS-атаками, необходимо уметь их обнаруживать. Это далеко не тривиальная задача -- многие сервисы протоколируют только установленные соединения. Например, при использовании популярного Web-сервера APACHE можно ничего и не обнаружить простым взглядом на системный журнал, поскольку там отображаются только полученные запросы. То есть, до тех пор, пока сервер не получит от клиента что-то вроде GET /, в логах не видно ничего, в то время, как соединение будет жить довольно долго, занимая свою строку в ограниченных по объему системных таблицах.

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

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

Друзья!

Еще раз обращаю ваше внимание, что статью о том как осуществляются DoS-атаки на практике и к чему это может привести, вы можете прочитать в #6 и #7 моей рассылки.
Тем, кто хотел бы получить более подробную информацию по этой теме, я рекомендую скачать архив книги "Атака через Internet" здесь.

Искренне ваш, Андрей Бочаров

Ваши отклики - andboc@mail.ru

 

 

14.11.00

I-Worm.Hybris - новый опасный интернет-червь! Интернет-червь, распространяющийся при помощи зараженных электронных писем. Работоспособен под Win32. Содержит в себе подпрограммы-компоненты (плагины) и выполняет их по мере необходимости. Эти плагины могут быть "обновлены" червем с Интернет-страницы автора вируса. Старшие версии червя зашифрованы полу-полиморфным кодом. Червь содержит текст: HYBRIS (c) Vecna Антивирусная Лаборатория Дизет, предупреждает пользователей об обнаружении Интернет червя Hybris в "диком виде". Особая активность его распространения отмечена в странах Латинской Америки, Испании и Португалии. Также засвидетельствованы случаи заражения в России и на Украине. Подробности: http://dizet.com.ua/news/

10.11.00

SHORE.D: вредитель из отряда макро-вирусов W97M_SHORE.D - деструктивный макро-вирус, заражает документы/шаблоны MS Word 97. Удаляет все макросы пользователя, содержащиеся в документе. При открытии редактора Visual Basic отображается окно для ввода пароля. Если пользователь инфицированного компьютера наберет неверный пароль и затем нажмет кнопку "OK", отображается сообщение об ошибке. При корректном вводе пароля пользователем открывается окно редактора Visual Basic. Вирус заражает активные документы/шаблоны Word, прерывая при этом следующие события: AutoOpen, FileOpen, AutoExit, AutoClose, FileSave, AutoExec и FileNew. Макросы, имеющие отношение к File|Templates, Tools|Macro и редактору Visual Basic, модифицируются вирусом и уже не исполняют свои обычные функции. Вместо загрузки окна редактора Visual Basic отображается окно для ввода пароля. Вирусный код содержит определенные команды, позволяющие просматривать его после ввода правильного пароля. При вводе пользователем инфицированного компьютера неверного пароля, отображается сообщение об ошибке: Unable to get the access. Request aborted... Правильный пароль для доступа к редактору Visual Basic - "cool13". При открытии зараженного документа SHORE.D отключает встроенную защиту от макро- вирусов в MS Word 97. Вирус не инфицирует повторно уже зараженные файлы, сверяясь с измененными им пользовательскими установками: NAME: Серийный номер TYPE: Число VALUE: 2017 Источник: "Лаборатория Касперского".

Друзья!

Приятно было опять получить от вас большое количество отзывов и пожеланий. Из этого можно сделать вывод, что тема, затронутая в статье "О политике и экономике антивирусной защиты", оказалась весьма актуальной.

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

"Уважаемые господа!

Хотелось бы обратить ваше внимание на интересный способ защиты электронной почты пользователей против несанкционированного перехвата с помощью системы freedom, распространяемой Канадской фирмой Zero Knowledge System. Я нашел страничку в Интернете, где имеется краткое описание этой системы на русском языке: http://www.gloffs.com/zero.htm

Я думаю, что вашим читателям было бы очень полезно узнать об этой системе защиты против СОРМа и прочих гадов, регулярно просматривающих нашу почту.

С уважением, Владимир Момитько"

А.Б. Попробуйте, кому интересно. Хотя я так и не нашел, где же можно скачать это бесплатно...

"Несомненно многие аспекты существующей проблемы (вирусов - А.Б.) были освещены в выпуске от 05.11.2000. Решение проблемы с технической стороны поможет избежать многих тяжёлых последствий, но нельзя также забывать о пресловутом человеческом факторе. Читая как-то на досуге статью- описание современных методов хакинга, натолкнулся на интересный факт: целая глава в ней была уделена методам "социальной инженерии". Попросту говоря "использование человеческих ошибок для достижения поставленной задачи". Весьма надо сказать интересная глава. Хотелось бы добавить к теме упомянутой в рассылке: не стоит забывать о "человеческом факторе". Грамотное обучение персонала информационной безопасности поможет решить много проблем (и сэкономить много $). Хотелось бы увидеть эту тему затронутой в рассылке более подробно, нежели чем в выпуске от 05.11.00.

мирон"

А.Б. Абсолютно согласен, что вопрос подготовки кадров весьма актуален. Могу порекомендовать почитать выпуск №3 моей рассылки, в котором как раз рассматривается вопрос, поднятый уважаемым читателем.

Также советую посетить сайт Академии Информационных Систем, которая предлагает курсы по данной тематике.

Компьютерные вирусы: вчера, сегодня, завтра

О термине "компьютерный вирус"

Считается, что термин "компьютерный вирус" впервые употребил сотрудник Лехайского университета (США) Ф. Коэн на конференции по безопасности информации в 1984 г. Однако еще в работах Винера и фон Неймана исследовались различные виды конечных автоматов, в том числе и самовоспроизводящихся. В любом случае, в настоящий момент эти вопросы представляют чисто исторический интерес и имеют мало отношения к реальности. Итак, что сегодня, летом 1997 года, представляют собой компьютерные вирусы?

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

Компьютерные вирусы это программы, обладающие способностью к самовоспроизведению. Указанное свойство присуще всем типам компьютерных вирусов, но не только им. Кроме того, способность к самовоспроизведению надо понимать весьма широко. Различные экземпляры одного вируса не только не обязаны полностью совпадать, но могут даже не иметь ни одного общего байта (речь идет о так называемых сложнополиморфных вирусах). Сами механизмы воспроизведения тоже могут быть весьма разнообразны. Не так давно к специалистам ДиалогНауки попал многоплатформенный вирус (Anarchy.6093), заражающий файлы исполняемые файлы DOS, Windows, а также DOC-файлы -- документы Word for Windows. При этом DOC-файлы являются лишь средством доставки вирусного кода.

Основные типы компьютерных вирусов

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

Среди всего разнообразия вирусов можно выделить следующие основные группы:

Загрузочные (бутовые) вирусы

Так называют вирусы, заражающие загрузочные секторы дискет и винчестеров. Имеются бутовые вирусы, заражающие только загрузочные сектора дискет, другие заражают еще и загрузочные сектора винчестеров, некоторые заражают главный загрузочный сектор винчестера. Часто вирусы "всеядны" и заражают и то, и другое.

Файловые вирусы

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

Загрузочно-файловые вирусы

Такие вирусы обладают способностью заражать как код загрузочных секторов, так и код файлов. Вирусов этого типа не очень много, но среди них встречаются чрезвычайно злобные экземпляры (например, известный вирус OneHalf).

Основные свойства компьютерных вирусов

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

Стелс-вирусы. Так называют маскирующиеся вирусы. Видов маскировки великое множество, но все они основаны на перехвате вирусами прерываний BIOS и операционной системы. Перехватив прерывания, вирусы контролируют доступ к зараженным объектам. Например, при просмотре зараженного объекта, они могут "подсунуть" вместо него здоровый. Кроме того, вирусы искажают информацию DOS (например, возвращают неверное значения длины файла, скрывая свое присутствие в нем). Для большинства антивирусных программ вирусы, использующие стелс-технологию, являются серьезной проблемой. Исключением является ревизор дисков ADinf -- уникальная российская программа, одним из замечательных свойств которой является способность обнаруживать маскирующиеся вирусы.

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

"Я помню чудное мгновенье...". Узнали? Разумеется, узнали. Слишком характерная строчка, со школьных лет мы безошибочно узнаем известное стихотворение великого поэта. Если взглянуть на вопрос с точки зрения вирусолога, то приведенная строчка является так называемой сигнатурой -- характерной, в идеале -- уникальной, последовательностью символов, характеризующей стихотворение. Открыв томик стихов и увидев эту строчку, мы совершенно точно знаем, на какое стихотворение мы попали. Анализ вирусов также заключается в выделении в них сигнатур и последующем их поиске в потенциальных объектах вирусной атаки. Таким образом, еще несколько лет назад достаточно было поймать вирус, изучить его код, (для профессионалов это, как правило, было делом нескольких минут) и выделить сигнатуру. Но вирусные технологии не стояли на месте.

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

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

Кто-то проспорил пиво или победное шествие macro-вирусов

Ходит весьма правдоподобный слух, что между авторами антивирусных программ было заключено пари на изрядное количество пива. Предметом пари являлся вопрос "дойдет ли к 1 июля этого года число macro-вирусов до 1000". Шутки шутками, но macro-вирусы действительно стали настоящим бедствием и их количество продолжает катастрофически увеличиваться. Что же это за вирусы, почему они посыпались как из ведра?

Формально, macro-вирусы являются файловыми вирусами, заражающими файлы некоторых систем документооборота. Насколько известно автору, в настоящее время имеются вирусы для Word for Windows (в огромном количестве!), MS-Word, Excel for Windows и AmiPro. Все указанные системы имеют встроенные макро-языки (Word Basic, Visual Basic). Эти языки обладают достаточными возможностями, чтобы производить практически все операции, необходимые вирусу. Достаточно сказать, что имеются даже шифрованные и полиморфные macro-вирусы. Кроме того, все чаще стали встречать вирусы, поражающие как документы, так и исполняемые файлы (иногда обычные EXE-файлы, иногда NewEXE, иногда и те, и другие). Инфицирующая способность таких вирусов крайне велика.

В настоящий момент более 90% macro-вирусов -- вирусы для Word for Windows. Это без сомнения объясняется тем, что файлы этого текстового процессора фактически стали стандартом на текстовые документы. Самый первый macro-вирус (Word.Concept) также заражал DOC-файлы. Любопытно, что достоверно известно о двух "проколах" самой фирмы Microsoft. На ее собственном сервере дважды оказывались документы, зараженные macro-вирусами.

Когда два года назад появились первые macro-вирусы для WinWord, были выпущены специальные антивирусные программы, написанные на том же самом Word Basic, что и сами вирусы и, фактически, представляющие собой документы, устроенные специальным образом. Таким образом можно было легко получить доступ к макросам документа. Хотя это и было самым простым решением, время показало его бесперспективность. Тем не менее, те первые антивирусы еще продолжают использоваться, что, безусловно, является ошибкой. Сегодня все "приличные" сканеры умеют самостоятельно разбирать структуру DOC-файлов. Одним из первых это "научился" делать Doctor Web, а недавно у него был существенно усилен эвристический анализатор macro-вирусов, с помощью которого можно обнаруживать новые macro-вирусы, еще не известные антивирусу "в лицо".

В следующем выпуске читайте продолжение статьи "Компьютерные вирусы: вчера, сегодня, завтра"

 

 

Продолжение вчерашней статьи

В нулевом кольце защиты

Много лет уже прошло с момента появления процессора i386, (не будем даже вспоминать, что до него был i286), а вирусы до настоящего момента не могли покорить его самый мощный защищенный режим. Загрузочный вирус PMBS, первым пытавшийся освоить защищенный режим (1994 г.), не мог ужиться ни с одной программой или драйвером (EMM386, Windows, OS/2,...). Вирусы Evolution.2761 и Evolution.2770 (тоже 1994 г.) использовали только часть мощного защищенного режима и то только тогда, когда процессор находился в реальном режиме работы.

Но вот все-таки свершилось! В России, в "диком" виде обнаружен файловый вирус PM.Wanderer, использующий защищенный режим. Этот вирус исследовал ведущий вирусолог ДиалогНауки И. А. Данилов. Вот, что он выяснил. Вирус более-менее корректно взаимодействует с другими программами и драйверами, также использующими защищенный режим. PM.Wanderer является резидентным полиморфным вирусом, использующим защищенный (виртуальный) режим процессоров i386-Pentium. Для установки своей резидентной копии в память и переключения в защищенный режим процессора (Protected Mode) используется документированный интерфейс VCPI (Virtual Control Program Interface) драйвера расширенной памяти EMS (EMM386).

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

Вирусы в Internet. Сказки и реальность

Как мы уже говорили, с компьютерными вирусами вообще связано много разнообразных легенд. Впрочем, иногда легенды эти, после творческой переработки вирусописаками, превращаются в серьезную опасность. История с вирусами, заражающими документы, - тому подтверждение. Так представляет ли сегодня Internet реальную опасность?

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

Вместе с этим, в различных электронных конференциях периодически появляются "ужастики" о вирусах, заражающих сообщения электронной почты или "прыгающих" на компьютер, при просмотре WWW-страниц. На сегодняшний день можно уверенно утверждать, что таких вирусов нет. Есть вирус (кстати, macro-вирус), который запускает программу Microsoft Mail и отправляет текстовые сообщения с пометкой "Срочно!" по нескольким случайным адресам из адресной книги. Обратим внимание, что это - именно внешнее проявление вируса, а не средство его размножения. Разумеется, ничто не мешает вирусу вместо текстовых сообщений рассылать свою копию, но данный конкретный этого не делает. А если бы и делал, то получателю сообщения все равно требуется запустить полученную копию вируса. Впрочем, учитывая возможность распространения вирусов в документах и беспечность некоторых пользователей, это не представляется столь уж невероятным. Всегда ли вы проверяете приаттаченные DOC-файлы перед тем, как посмотреть, что в них?

Отдельная тема - вирусы, якобы написанные на Java. На сегодняшний день нет ни одного вируса на Java и считается, что текущая версия языка принципиально не позволяет вирусам размножатся. Другое дело, что известны многочисленные примеры апплетов, которые можно назвать деструктивными, но их разрушительные возможности невелики и вирусами они не являются. По всей видимости сейчас, когда с появлением macro-вирусов разработчики систем стали несколько внимательнее относится к вопросам безопасности, можно быть более или менее спокойным, используя Java. Чего не скажешь, об объектах ActivX, но практически во всех программах просмотра имеются возможность запретить работу этих объектов.

Антивирусные средства

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

Детекторы (scanner). Назначение детектора - обнаружить вирус. Бороться с ним предстоит либо другой антивирусной программе, либо системному программисту. Несколько лет назад детекторы практически уступили позиции полифагам (см. ниже), но любопытно, что они вновь возвращаются на компьютерный рынок по мере его развития. Если вы используете лицензионное программное обеспечение, то для вас может быть даже проще восстановить зараженную программу с дистрибутива (вот он, на полке, руку протянул и все), чем тратить время на лечение файлов. У нас другие традиции, и чистые детекторы (сканеры) еще не скоро будут в состоянии конкурировать с фагами (см. ниже).

Фаги (полифаги) (scanner/cleaner, scaner/remover). Фаг - программа, способная уничтожить вирус (полифаг способен уничтожить много вирусов). Aidstest, к примеру, сегодня обнаруживает и обезвреживает около 2000 вирусов. Основной принцип работы традиционного фага описан выше. Он совсем прост и секретом не является. Кратко повторим основные моменты. Для каждого вируса путем анализа его кода, способов заражения файлов и т.д. выделяется некоторая характерная только для него последовательность байт. Эта последовательность называется сигнатурой данного вируса. Поиск вирусов в простейшем случае сводится к поиску их сигнатур. Современные фаги используют другие методы поиска вирусов. После обнаружения вируса в теле программы (или загрузочного сектора, который тоже, впрочем, содержит программу начальной загрузки) фаг обезвреживает его. Для этого разработчики антивирусных средств тщательно изучают работу каждого конкретного вируса: что он портит, как он портит, где он прячет то, что испортит (если прячет, конечно). В большинстве случаев фаг способен благополучно удалить вирус и восстановить работоспособность испорченных программ. Но необходимо хорошо понимать, что это возможно далеко не всегда (о причинах еще будет сказано ниже).

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

Сторожа. Сторож - небольшая резидентная программа, постоянно находящаяся в памяти компьютера и контролирующая операции, которые она считает подозрительными. В качестве примера сторожа можно привести VSAFE, входивший в поставку некоторых версий MS-DOS. На наш взгляд, для обычного пользователя программные сторожа довольно бесполезны. Одни и те же операции выполняют и вирусы, и обычные программы. Невозможно даже выделить класс исключительно "вирусных" операций. Вследствие этого сторож либо вынужден ничего не контролировать и пассивно наблюдать за происходящим, либо "звенеть" при каждой подозрительной операции. При этом он так вам надоест, что вы просто отключите его, чтобы не мешал работать. Если уж использовать сторож, то на самом минимальном уровне контроля (например, отслеживая изменение загрузочных секторов). Кстати, такие сторожевые функции имеют некоторые современные BIOS, хотя и с этим все не так просто. Эта функция BIOS может конфликтовать с некоторыми операционными системами, а в некоторых случаях может вообще не работать.

Не так давно был популярен еще один класс антивирусных средств - специальные вакцины, которые использовались для обработки файлов и загрузочных секторов. Вакцины бывают пассивными (пример такой вакцины описан ниже) и активными. Активная вакцина, "заражая" файл, подобно вирусу, предохраняет его от любого изменения и в ряде случаев способна не только обнаружить сам факт заражения, но и вылечить файл. Пассивные вакцины использовались (теперь это уже большая редкость) для предотвращения заражения файлов некоторыми вирусами, использующими простые признаки их зараженности - "странные" время или дата создания, определенные символьные строки и пр. В настоящее время вакцинирование широко не применяется. Бездумное вакцинирование всего и вся способно вызвать целые эпидемии несуществующих вирусных болезней. Так, в течение нескольких лет на территории бывшего СССР свирепствовала страшная эпидемия ужасного вируса TIME. Жертвой этого вируса стали сотни абсолютно здоровых программ, "зарезанных на операционном столе" хирургом ANTI-KOTом. История эта вкратце такова. Имеется довольно много вирусов, предотвращающих повторное заражение файлов некоторой "черной меткой", которую они "навешивают" на программу. Имеются, к примеру, вирусы, выставляющие в поле секунд времени создания файла значение 62. Уже довольно давно появился вирус, который ко всем зараженным файлам дописывал в конец пять байт - "MsDos". Нормальных файлов, содержащих в конце такую символьную строку, не бывает, поэтому вирус и использовал этот признак как индикатор заражения файла. Вакцинирование файлов против этого вируса совсем не сложно. Достаточно дописать в конец вышеупомянутую символьную строку - и вирус вам не страшен. Страшно другое - имеются (точнее, имелись) антивирусные программы (к примеру, ANTI-KOT), которые обманываются так же легко, как и сам вирус. Видя в конце файла злополучную строчку, они немедленно лечат его и умывают руки. Шансов на то, что такой инвалид будет нормально работать, практически никаких. С этим же вирусом (и с этим же антивирусом) связана еще одна история. До сих пор не вышел из употребления другой "мощный" антивирус - ANTITIME. В отличие от ANTI-KOTа, он не калечит программ, но и не лечит их тоже. Видя в конце файла все ту же строчку, он отрезает ее (сообщая при этом, что в файле найден "страшный TIME", - утверждение само по себе довольно корректно, поскольку вирусом он его явно не называет). Программа эта, написанная, по всей видимости, как антивакцина, периодически пытается участвовать в конкурсе на лучший антивирус, ибо она также видит "страшный TIME" там, где никакая из нормальных антивирусных программ его не видит.

Аппаратные средства защиты. Имеются специальные дополнительные устройства, обеспечивающие достаточно надежную (в некотором смысле - абсолютную) защиту. В отличие от всех рассмотренных выше антивирусных средств, Sheriff способен предотвратить нападение вируса. К сожалению, автору известны случаи, когда пользователи, установившие на компьютере плату Sheriff, были настолько уверены в своей полной неуязвимости, что совершенно теряли всякую осторожность. Так, они не обращали внимания на области жесткого диска, не защищенные Sheriff (а такие области есть практически всегда - если вы защитите винчестер целиком, то как вы будете работать?). Необходимо помнить, что антивирусные средства должны применяться комплексно и только такая комплексная защита с использованием надежного ревизора (ADinf), фагов Doctor Web и Aidstest, а при необходимости и платы Sheriff способна обеспечить максимальную безопасность.

Лев Сергеев

Сайты с материалами о вирусах и антивирусах:

Лаборатория Касперского -- WWW-страница антивируса AVP (Antiviral Toolkit Pro) - популярнейшего продукта, разработанного Е.Касперским. В базе данных - более 12 тысяч вирусов: Windows, Boot, Multipartite, Macro Excel, MacroWord, Trojans, Hoax, Intended и файловые вирусы.

ДиалогНаука -- О фирме. Новости "антивирусного фронта". Обзор программ. Рассказ о новых разработках. Публикации. Проверка на вирусы on-line. Версии антивирусных программ. Обновления вирусных баз DrWeb.

Большая Вирусная Энциклопедия -- Ежедневные новости, вирусный календарь, тысячи подробнейших описаний вирусов, интересные публикации

В следующем выпуске -- о защите информационных ресурсов с помощью VPN -- частных виртуальных сетей.

Искренне ваш, А.Бочаров