Pro Вирусы — страница 24 из 27

Известна и вовсе феерическая ситуация, когда троянец, воровавший вводимые пользователем данные в формы авторизации на сайтах «В Контакте», «Одноклассники», «Mail.RU» и «Яндекс», передавал их скрипту, работающему на принадлежащем злоумышленнику сервере. Притом домен для этого сервера он умудрился зарегистрировать на свое настоящее имя, благодаря чему специалистам по информационной безо­пасности с помощью запроса к службе Whois удалось выяснить его телефон, имя, фамилию и город проживания, а по этим данным — отыскать его анкету на сайте знакомств, где злоумышленник собственноручно опубликовал остальную недостающую информацию: фотографию, рост, вес, дату и место рождения, а также сведения об образовании.

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

Глава 8. Методы борьбы

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

Немного истории

Существует мнение, что первое приложение для выявления и удаления вредоносного ПО разработал в 1984 году американский программист Энди Хопкинс — речь идет об утилите CHK4BOMB, позволявшей сканировать исполняемые файлы в поисках характерных фрагментов кода и текстовых сообщений. Другая утилита того же автора, BOMBSQAD, могла перехватывать операции записи в файл и команду форматирования. В течение длительного времени этих двух утилит было вполне достаточно для обеспечения информационной безопасности, поскольку вредоносных программ существовало не так уж и много. Например, в 1985 году по американским электронным доскам объявлений (BBS) гулял текстовый файл «Грязная дюжина» (“The Dirty Dosen — An Unloaded Program Alert List”), представлявший собой составленный владельцем одной из BBS Томом Нельфом список опасных программ, которые пользователи загружали в файлообменники. Первоначально перечень включал всего лишь 12 вредоносных приложений, но он постоянно пополнялся. Ассортимент опасных программ ширился, и вскоре простого списка оказалось уже недостаточно для отражения все новых и новых угроз — пользователи понемногу осознали необходимость в постоянной антивирусной защите.

Спрос, как известно, рождает предложение, и первая резидентная антивирусная программа под названием DPROTECT, разработанная программистом и основателем американской софтверной компании GEE WIZ Sofware Company Ги Вонгом, появилась в начале 1985 года. Программа DPROTECT распространялась бесплатно, однако желающие могли сделать добровольное пожертвование в размере пяти долларов. Приложение не использовало в своей работе вирусные базы, содержащие сигнатуры вредоносных программ, а отслеживало активность запущенных программ, перехватывая обращения к файловой системе. Таким образом резидентный монитор DPROTECT позволял обезопасить защищаемый компьютер от деструктивных действий вирусов и троянцев, которые могли, например, отформатировать диск или испортить загрузочную запись.

Вторая половина 80-х годов ознаменовалась широкой экспансией на международном рынке персональных компьютеров семейства IBM PC и ростом популярности операционной системы MS-DOS. К этому же периоду относятся и первые масштабные вирусные эпидемии: летом 1986 года множество компьютеров оказались заражены стелс-вирусом Brain. Написанный студентом из Новой Зеландии вирус Stoned, получивший распространение в том же 1987 году, заражал загрузочную запись ПК и блокируя запуск ОС. От этой напасти пострадало несколько тысяч компьютеров по всему миру. А в пятницу, 13 мая 1988 года пользователи познакомились с вирусом Jerusalem, уничтожавшим приложения при попытке их запуска. Эта вредоносная программа вызвала настоящую пандемию, распространившись на территории не только США, но также Европы и Азии. Разумеется, отыскались толковые парни, очень быстро осознавшие, что на компьютерной безопасности можно неплохо заработать — одним из них оказался простой программист из Lockheed Corporation по имени Джон Макафи, выпустивший в 1988 году коммерческий продукт под названием McAfee VirusScan, а в 1989 году основавший компанию имени себя. Вскоре, почувствовав запах прибыли, подтянулись и другие игроки: в 1991 году состоялся релиз первой версии приложения под названием Norton AntiVirus.

Ну, а на отечественном рынке истинным первопроходцем стал Дмитрий Лозинский, разработавший в 1988 году, практически одновременно с Макафи, антивирусную программу-сканер Aidstest, использовавшую технологию сигнатурного поиска угроз. Приложение, дистрибуцией которого занималась компания «Диалог Наука», быстро завоевало заслуженную популярность у пользователей, на долгие годы став своего рода стандартом антивирусного ПО. Дмитрий Николаевич и по сей день вносит ощутимый вклад в борьбу с вирусными угрозами — в качестве одного из ведущих сотрудников компании «Доктор Веб». За минувшие годы мир изменился до неузнаваемости, появились троянцы для различных операционных систем и мобильных платформ, а разработка антивирусного ПО превратилась в целую индустрию. Однако идеи, впервые реализованные Энди Хопкинсом в далеком 1984 году, не утратили своей актуальности и по сей день.

Компоненты антивирусной программы

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

Антивирусный сканер — утилита, выполняющая поиск вредоносных программ на дисках и в памяти устройства по запросу пользователя или по расписанию.

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

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

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

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

Анти-руткит — модуль, предназначенный для борьбы с руткитами (вредоносными программами, обладающими способностью скрывать свое присутствие в инфицированной системе).

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

Модуль обновления — компонент, обеспечивающий своевременное обновление других модулей антивируса и вирусных баз;

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

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

Сигнатурное детектирование

Современные антивирусные программы используют несколько различных методик обнаружения вредоносных программ в различных сочетаниях. Основная из них — это сигнатурное детектирование угроз.

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

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

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