Underground InformatioN Center [&articles] 
[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive][home]

Компьютерные вирусы
Часть I. Теория.

22.05.2001

Содержание
1. Введение
2. Классификация
3. Некоторые размышления о совершенном вирусе
4. Примитивная защита от вирусов
5. Благодарности
6. Ссылки

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

2. Классификация.
   Начну с того же, с чего начинали все, кто занимался вирусами - попробую определить смысл, разновидности, способы существования.
Итак, приступим. На мой взгляд вирус - это программный код способный к самостоятельному размножению и функционированию, и имеющий защитные механизмы от обнаружения и уничтожения. На первый взгляд можно подумать, что это определение не подходит для троянских программ, но это не так. Работа троянской программы (в частности - вытаскивание паролей на dial-up соединения) и есть функционирование ее кода. Ниже я постараюсь дать классификацию типов существующих вирусов.


Расшифровка значений.
"+" - поддерживается
"-" - не поддерживается
"1"- Самовыполнение
"2"- Запуск носителя вируса
"3"- Используя функции поиска файлов
"4"- Использую записи в адресной книге
"5"- Перехватывая обращения ОС к файлам
Эта таблица не претендует на абсолютность, но если вы можете что то добавить или изменить - свяжитесь со мной.

3. Некоторые размышления о совершенном вирусе.
   Сначала немного лирики. Года два назад, когда я начал изучать вирусы, я столкнулся с таким не совпадением - компьютерные вирусы (того периода) - это всего лишь "лабораторные мышки" по сравнениюс действительными. Почему? Это просто. Что делает вирус когда попадает в организм животного - начинает размножаться... уничтожая или поражая клетки хозяина, итог одна клетка умирает, а в компьютерных вирусах такого не происходило (только если вирус не был деструктором :-)). Таким образом получалось что все не деструктивные вирусы - это эдакие доброкачественные опухоли, а не вирусы. Впрочем, те времена прошли и уже появились весьма неплохие компьютерные вирусы, более точно повторяющие своих реальных прототипов. Можно подумать, что я фанат вирусописания, но это не так. Я ищу способы создания самостоятельных, самообучающихся программ - ИИ (а вирусы, я считаю это побочный эффект, как и антивирусы построенные по тем же принципам!). Зачем? Это тема для отдельного разговора с психиатром, начало которого будет как из анекдота:
"- Так, историю вашей болезни я знаю, но хочу услышать как все началось по вашему мнению.
- Хорошо, доктор. Итак, сначала я создал небо и землю..."

Тем не менее, вот те мысли которые возникли у меня в процессе обучения и позднее в процессе написания вирусов:
    1. Вирус должен размножаться, но только до тех пор пока все ресурсы не будут задействованы им и только им.
    2. Вирус должен уничтожать все что мешает и противодействует его "жизни".
    3. Вирус должен иметь механизмы предупреждения опасности (в частности - работа антивирусов).
    4. Вирус должен уметь работать на прямую с "железом", а не через ОС.
    5. Распространение вируса не должно зависеть от работы пользователя. Вирус должен быть полностью самостоятельным.
    6. Вирус должен уметь "затаиваться" и выжидать.

Пункт 4. Вызвал у меня дополнительные часы раздумий, сводившихся к вопросу "Как?".
Первое что пришло в голову - нужны драйверы для работы с железом (это привязка, а ее быть не должно)... но потом я понял что это не нужно, достаточно функций работы с базовыми устройствами (процессор, память, винчестер (файловая система), съемные носители, порты, но это подойдет только для вируса, который будет передан с носителя. Сам носитель может работать с системой). И действительно зачем иметь миллионы носителей вируса, если достаточно чтобы носителем был компьютер имеющий большое количество соединений с другими. Значит, совершенный вирус должен уметь выбирать носителя и не использовать для него первый пункт (как бы дубово это не звучало).
Следующий вопрос который возник у меня - это как сохранить вирус, если чрезмерно испуганный пользователь отформатирует винчестер или вообще сменит его (сам был свидетелем когда из-за Onehalf-а человек собрался выкинуть винчестер)? Тут пришлось очень сильно задуматься, но решение (вернее два решения) оказалось довольно простым и уже не раз высказанным вслух:
    1. Создать отдельный раздел (размер будет зависеть от вируса, времена примитивов размером в байтах уже прошли, на мой взгляд, т.к. написать их может любой человек знакомый с ассемблером) не видимый для ОС (кто пользовался Partition Magic знает такие прецеденты с исчезнувшими килобайтами).
    2. Записаться в ПЗУ :-)). Каким образом это сделать я расскажу в одной из следующих статей. Этот метод эквивалентен храническому заболеванию.

4. Примитивная защита от вирусов.
   Теперь рассмотрим не менее интересную тему защиты от вирусов. Никаких техник я сейчас не раскрою, тут всего лишь будет обзор некоторых антивирусов и firewall'ов. Тема обнаружения и идентификации вирусов самостоятельно слишком обширна, и пока только маячит на горизонте, но я постараюсь вернуться к ней, когда закончу этот цикл.
Думаю не помешает пояснить почему я считаю эту защиту примитивной. Использование антивирусов обеспечит безопасность только от известных вирусов, любой новый толково написанный вирус (на coder.h1.ru, был очень интересный вирус, который совсем не определялся антивирусами) будет не замечен вашим антивирусом. Использование firewall'ов тоже не очень эффективная защита (самый простой пример, это троян Vermut от Basalt'а, который заражает используемую почтовую программу и работает синхронно с ней. То есть даже если вы установите опцию подтверждения каждого соединения вы не увидите ничего подозрительного, так как этот троян начнет передавать данные когда вы пошлете запрос на посылку почты)
Теперь небольшой обзор антивирусов и firewall'ов скоторыми я имел дело (я использую PC Alert 4 System and Network Monitor Server Version от MSI и Super PC Security от Harny Holek).

InoculateIT personal Edition от Computer Associates International
Довольно мощный антивирус со стандартным набором функций мониторинга диска и памяти. Интерфейс программы не очень удачен в плане панели инструментов (не все функции вынесены на панель). Программа построена по типу проводника, что облегчает проверку отдельных файлов. Антивирус поддерживает автоматическое обновление баз по вирусам. Поставляется в месте с энциклопедией и абсолютно бесплатно. Скорость работы достаточно высокая, жаль только интерфейс не очень удачен. Еще одним недостатком является то, что он не умеет сканировать внутри архивов.

Antiviral Protection от Лаборатории Касперского.
Довольно неплохой антивирус, с приличной базой вирусов. Но я не советую использовать его, если вы хотите серьезно защитить свою систему.

Norton Antivirus от Symantec Corp.
Первый антивирус, который я использовал. Нормальный антивирус с хорошей технической поддержкой. Но, в целом, ничего особенного.

Dr.Web
Хммм... работает как антивирус, работает как вирус... припроверке 75 гигабайтного диска сдох, выкинув "синий экран смерти". Не смотря на все это определил почти половину вирусов из моей коллекции (78563 вируса), что, собственно, очень неплохо.

AVTrojan и Anti-VBS от Игоря Суменкова
AVTrojan предназначен для поиска таких вирусов, как "троянские кони". Несмотря на свою простоту программа достаточно эффективна (достаточно, потому что в базе для версии 1.03. было 491 известных "троянских коней", а у меня их 2254 :-)). Программа может быть загружена как монитор. Необходимо отметить то, что если зараженный файл будет запущен, программа закроет все процессы связанные с ним, а после этого удалит файл (в AVP, Dr.Web и других появится табличка "Нельзя удалить файл", закрывать процессы они не умеют).
Anti-VBS программа для лечения всего одного (плюс модификации) вируса- "I Love You".

The Nicks Ghost Buster
Возможный конкурент программы Adinf. При запуске проверяет память DOS (изменение памяти характерно при заражении загрузочными вирусами), жесткие диски (Master-Boot, Boot-секторы, список номеров испорченных кластеров, дерево каталогов), не использует прерывания 21h и 13h, что позволяет обнаруживать Stelth-вирусы. Также анализируется количество новых, измененных, удаленных файлов, контрольные суммы. Интересная (но насколько правильная?) функция анализа изменений, если изменения не похожи на проявление вируса, то будет выдан отчет о них, в противном случае будет предупреждение об опасности заражения. Но (и очень большое) нельзя проверить отдельный каталог - диск проверяется только целиком.

Stop!
Довольно простенькая на вид и хитро устроенная внутри программа для поиска VBS/BAT вирусов. Консольная программа, все команды передаются через командную строку.

F-Stopw от Frisks Software
Стандартнейший антивирус, наверное я бы и не знал о нем, если бы он не входил в коплект F-Prot. Функции стандартны- поиск файлов, лечение или удаление их, проверка boot сектора. Висит в system tray.

Norton Personal Firewall for Windows от Symantec Corp.
Довольно хороший firewall рассчитанный как на начинающих пользователей, так и на продвинутых. Возможна грубая настройка безопасности (общий уровень для всего), так и расширенная настройка (для каждогоадреса можно выставить параметры загрузки данных), помимо этого можно работать с портами. Вообще-то стандартные функции, возможности настройки, разве что интерфейс приятный.

LockDown 2000
Известный, но далеко не лучший firewall, настройка сводится к установке галочек в checkbox'ах, хоть это и удобно, но, во-первых, непонятно, что именно при этом происходит, а во-вторых, система фиксирована и не может быть расширена пользователем.

LanGuard WinNT от GFI FAX&FOICE
Симпатичный и стандартный firewall. Интерфейс не очень понятный, но зато очень красивый, визуализация получаемых пакетов - как нигде. Но вот только зачем это нужно - я не знаю.

Black ICE for Windows от Ice Network
Заинтересовал меня из-за названия (кому интересно что это почитайте Уильма Гибсона). Получилось, однако, так что название вовсе не совпало с содержимым. Чрезвычайно посредственный firewall без возможности гибкой настройки по портам и протоколам.

AtGuard от WRQ Inc.
Наиболее подходящий для простого пользователя firewall. Гибкие настройки, достаточно дружественный интерфейс. Довольно часто приходилось слышать, что AtGuard подходит только для ламеров, на мой взгляд это воспаленный бред script kids, потому что любой firewall на компьютере, подключенном к сети, можно обойти.

ZoneAlarm от ZoneLabs
Красивый GUI, но фиксированные настройки. Есть возможность остановки передачи/приема при простое или при работе хранителя экрана.

5. Благодарности.
Nosferatu
Laura [Invulnerable]
Feid Rauta [Invulnerable]

6. Источники.
Jarod, "Что такое вирус", The Creatures Computer Virus Magazine #1, Март 1999.
Sergeev Alex aka Rook[@bsurd], "Защита от вторжения", eXistance #1, Декабрь 2000.
Андриан Наконечный, "Краткий обзор персональных firewall'ов", Безопасность в Internet #40, февраль 2001
Александр Иванюк, "Обзор бесплатных антивирусных программ", Безопасность в Internet #42, февраль 2001

Продолжение следует...
Rook
email
@bsurd Member
uinC Member
[c]uinC

Скачать ZIP архив с этой статьей (скачано 7047 раз).

Все документы и программы на этом сайте собраны ТОЛЬКО для образовательных целей, мы не отвечаем ни за какие последствия, которые имели место как следствие использования этих материалов\программ. Вы используете все вышеперечисленное на свой страх и риск.

Любые материалы с этого сайта не могут быть скопированы без разрешения автора или администрации.


[network & security news] [RSS & Twitter] [articles, programing info] [books] [links, soft & more...] [soft archive][home]
 Underground InformatioN Center [&articles] 
2000-2015 © uinC Team