Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Артикул: 450643.04.99
Доступ онлайн
519 ₽
В корзину
Книга представляет собой курс компьютерной вирусологии, посвященный подробному рассмотрению феномена саморазмножающихся программ. Содержит неформальное и формальное введение в проблему компьютерных вирусов, описание принципов их работы, многочисленные примеры кода, методики обнаружения и удаления, а также лежащие в основе этих методик математические модели. Рассматривает все наиболее широко распространенные в прошлом и настоящем типы вирусов. Ориентирована на самую широкую аудиторию, но прежде всего на студентов и программистов - будущих и действующих специалистов в области защиты информации и разработки системного и прикладного программного обеспечения. Также может быть полезна и интересна "рядовым" пользователям, интересующимся проблемой компьютерных вирусов.
Климентьев, К. Е. Компьютерные вирусы и антивирусы: взгляд программиста : практическое руководство / К. Е. Климентьев. - Москва : ДМК Пресс, 2018. - 657 с. - ISBN 978-5-97060-576-9. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1908429 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Компьютерные 

вирусы и антивирусы: 
взгляд программиста

Москва, 2018

Климентьев К. Е.

УДК 004.49
ББК 32.973-018.2
 
К49

 

 
 
Климентьев К. Е.

К49 
Компьютерные вирусы и антивирусы: взгляд программиста.  – 
М.: ДМК Пресс, 2018. – 656 с.: ил. 

 
ISBN 978-5-97060-576-9

Книга представляет собой курс компьютерной вирусологии, 

посвященный подробному рассмотрению феномена саморазмножающихся программ. Содержит неформальное и формальное введение в проблему компьютерных вирусов, описание 
принципов их работы, многочисленные примеры кода, методики обнаружения и удаления, а также лежащие в основе этих 
методик математические модели. Рассматривает все наиболее 
широко распространенные в прошлом и настоящем типы вирусов. Ориентирована на самую широкую аудиторию, но прежде 
всего на студентов и программистов – будущих и действующих 
специалистов в области защиты информации и разработки 
системного и прикладного программного обеспечения. Также 
может быть полезна и интересна «рядовым» пользователям, 
интересующимся проблемой компьютерных вирусов.

 
УДК  004.49

 
ББК 32.973-018.2

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

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

 
©  Климентьев К. Е.

ISBN 978-5-97060-576-9 
©  Оформление, ДМК Пресс

Содержание

Введение .....................................................................................................................12

ГЛАВА 1 Общие сведения о компьютерных вирусах .................15

1.1. Что такое «компьютерный вирус» .......................................................................15
1.2. Несколько исторических замечаний ...................................................................17
1.3. Какие бывают вирусы ...............................................................................................24

1.3.1. Классификация по способу использования ресурсов  ......................25
1.3.2. Классификация по типу заражаемых объектов  ..................................25
1.3.3. Классификация по принципам активации  ...........................................25
1.3.4. Классификация по способу организации программного кода  ......26
1.3.5. Классификация вирусов-червей ...............................................................27
1.3.6. Прочие классификации  ...............................................................................27

1.4. О «вредности» и «полезности» вирусов .............................................................28
1.5. О названиях компьютерных вирусов ..................................................................31
1.6. Кто и зачем пишет вирусы ......................................................................................35

1.6.1. «Самоутверждающиеся»  .............................................................................36
1.6.2. «Честолюбцы»  ................................................................................................36
1.6.3. «Игроки»  ...........................................................................................................39
1.6.4. «Хулиганы и вандалы» ..................................................................................40
1.6.5. «Корыстолюбцы»  ...........................................................................................40
1.6.6. «Фемида» в борьбе с компьютерными вирусами  ...............................42

1.7. Общие сведения о способах борьбы с компьютерными вирусами ...........45

ГЛАВА 2 Загрузочные вирусы ...................................................................................49

2.1. Техническая информация ........................................................................................49

2.1.1. Загрузка с дискеты .........................................................................................53
2.1.2. Загрузка с винчестера ...................................................................................56

2.2. Как устроены загрузочные вирусы ......................................................................58

2.2.1. Как загрузочные вирусы получают управление ..................................58
2.2.2. Как загрузочные вирусы заражают свои жертвы ................................59
2.2.3. Как вирусы остаются резидентно в памяти ...........................................60
2.2.4. Как заподозрить и «изловить» загрузочный вирус ............................60

2.3. Охотимся за загрузочным вирусом ......................................................................62

2.3.1. Анализ вирусного кода .................................................................................62
2.3.2. Разработка антивируса .................................................................................66

Содержание

2.4. Редко встречающиеся особенности .....................................................................70

2.4.1. Зашифрованные вирусы ..............................................................................70
2.4.2. Вирусы, не сохраняющие оригинальных загрузчиков ......................72
2.4.3. Механизмы противодействия удалению вирусов ...............................74
2.4.4. Проявления загрузочных вирусов ............................................................77
2.4.5. Загрузочные вирусы и Windows ................................................................79
2.4.6. Буткиты ..............................................................................................................82

2.5. Советы по борьбе с загрузочными вирусами ....................................................85

2.5.1. Методы защиты дисков от заражения  ....................................................86
2.5.2. Удаление загрузочных вирусов и буткитов «вручную»   ..................87

ГЛАВА 3 Файловые вирусы в MS-DOS............................................................89

3.1. Вирусы-«спутники» ..................................................................................................89
3.2. «Оверлейные» вирусы ..............................................................................................94
3.3. Вирусы, заражающие COM-программы ............................................................98

3.3.1. Внедрение в файл «жертвы»  ......................................................................98
3.3.2. Возврат управления «жертве» .................................................................102

3.4. Вирусы, заражающие EXE-программы ............................................................105

3.4.1. «Стандартный» метод заражения  ..........................................................107
3.4.2. Заражение в середину файла  ...................................................................109
3.4.3. Заражение в начало файла  .......................................................................110

3.5. Нерезидентные вирусы ..........................................................................................111

3.5.1. Метод предопределенного местоположения файлов  ......................112
3.5.2. Метод поиска в текущем каталоге  .........................................................113
3.5.3. Метод рекурсивного обхода дерева каталогов ...................................118
3.5.4. Метод поиска по «тропе»  ..........................................................................119

3.6. Резидентные вирусы ...............................................................................................122

3.6.1. Схема распределения памяти в MS-DOS ............................................122
3.6.2. Способы выделения вирусом фрагмента памяти  .............................126
3.6.3. Обработка прерываний  ..............................................................................130

3.6.3.1. Перехват запуска программы  .......................................................131
3.6.3.2. Перехват файловых операций  .....................................................134
3.6.3.3. Перехват операций с каталогами  ................................................136

3.7. Вирусы-«невидимки» .............................................................................................137

3.7.1. «Психологическая» невидимость ...........................................................140
3.7.2. Прямое обращение к системе   .................................................................143

3.7.2.1. Метод предопределенных адресов  .............................................144
3.7.2.2. Метод трассировки прерывания  .................................................145
3.7.2.3. Прочие методы  ..................................................................................149

3.7.3. Использование SFT  ....................................................................................151

Содержание 5

3.8. Зашифрованные и полиморфные вирусы .......................................................154

3.8.1. Зашифрованные и полиморфные вирусы для MS-DOS  ...............155
3.8.2. Полиморфные технологии  .......................................................................168

3.9. Необычные файловые вирусы для MS-DOS ..................................................170

3.9.1. «Не-вирус» Eicar  ..........................................................................................171
3.9.2. «Двуполый» вирус .......................................................................................172
3.9.3. Файлово-загрузочные вирусы  ................................................................173
3.9.4. Вирусы-«драйверы»  ....................................................................................174
3.9.5. Вирусы с «неизвестной» точкой входа  ................................................175
3.9.6. Самый маленький вирус ............................................................................176

3.10. Подробный пример обнаружения, анализа и удаления  ..........................179

3.10.1. Способы обнаружения и выделения вируса в чистом виде  .......179
3.10.2. Анализ вирусного кода  ............................................................................180
3.10.3. Пишем антивирус .......................................................................................183

3.11. MS-DOS-вирусы в эпоху Windows ..................................................................184

ГЛАВА 4 Файловые вирусы в Windows .........................................................186

4.1. Системная организация Windows ......................................................................186

4.1.1. Особенности адресации  .............................................................................187

4.1.1.1. Сегментная организация адресного пространства  ...............188
4.1.1.2. Страничная организация адресного пространства ...............191

4.1.2. Механизмы защиты памяти  .....................................................................192
4.1.3. Обработка прерываний и исключений  ................................................193
4.1.4. Механизмы поддержки многозадачности  ...........................................198
4.1.5. Распределение оперативной памяти  .....................................................199
4.1.6. Файловые системы  ......................................................................................203
4.1.7. Запросы прикладных программ к операционной системе  ............204

4.1.7.1. Системные сервисы в MS-DOS  ..................................................204
4.1.7.2. Системные сервисы в Windows 3.X  ...........................................205
4.1.7.3. Системные сервисы в Windows 9X  ............................................207
4.1.7.4. Системные сервисы в Windows NT  ...........................................208

4.1.8. Конфигурирование операционной системы .......................................209

4.1.8.1. Конфигурационные файлы Windows 3.X  ................................209
4.1.8.2. Конфигурационные файлы и структуры Windows 9X  .......210
4.1.8.3. Конфигурационные файлы и структуры Windows NT  .......212

4.1.9. Исполняемые файлы Windows  ...............................................................213

4.2. Вирусы для 16-разрядных версий Windows ...................................................216

4.2.1. Формат файла NE-программы  ................................................................217

4.2.1.1. Таблица описания сегментов  .......................................................218
4.2.1.2. Таблица описания перемещаемых ссылок  ..............................219

Содержание

4.2.1.3. Таблицы описания импорта ..........................................................221

4.2.2. Организация вирусов для Windows 3X  ...............................................221
4.2.3. Анализ конкретного вируса и разработка антивирусных 
процедур  .....................................................................................................................225

4.3. Вирусы для 32-разрядных версий Windows  ..................................................227

4.3.1. Формат файлов PE-программ  .................................................................229

4.3.1.1. PE-программы на диске и в памяти  ...........................................231
4.3.1.2. Таблица секций  .................................................................................234
4.3.1.3. Импорт объектов  ..............................................................................236
4.3.1.4. Экспорт объектов  .............................................................................241

4.3.2. Где располагаются вирусы  ........................................................................243

4.3.2.1. Файловые «черви»  ...........................................................................243
4.3.2.2. Вирусы-«спутники»  ........................................................................244
4.3.2.3. «Оверлейные» вирусы  ....................................................................245
4.3.2.4. Вирусы в расширенной последней секции ..............................245
4.3.2.5. Вирусы в дополнительной секции ..............................................246
4.3.2.6. Вирусы, распределенные по секциям  .......................................247
4.3.2.7. Вирусы в файловых потоках NTFS  ...........................................249

4.3.3. Как вирусы получают управление ..........................................................250

4.3.3.1. Изменение адреса точки входа  ....................................................250
4.3.3.2. Изменение кода в точке входа  .....................................................251
4.3.3.3. Использование технологии EPO  ................................................251

4.3.4. Как вирусы обращаются к системным сервисам  ..............................252

4.3.4.1. Метод предопределенных адресов  .............................................253
4.3.4.2. Самостоятельный поиск адреса KERNEL32.DLL  ................258
4.3.4.3. Использование «нестандартных» сервисов  ............................260

4.3.5. Нерезидентные вирусы  ..............................................................................264
4.3.6. «Резиденты» 3-го кольца защиты  ..........................................................265

4.3.6.1. Вирусы – автономные процессы .................................................266
4.3.6.2. «Полурезидентные» вирусы .........................................................266
4.3.6.3. Вирусы, заражающие стандартные компоненты 
Windows  .............................................................................................................266
4.3.6.4. Вирусы, анализирующие список процессов  ...........................268

4.3.7. «Резиденты» 0-го кольца защиты  ..........................................................269

4.3.7.1. Переход в 0-е кольцо защиты методом создания 
собственных шлюзов  .....................................................................................269
4.3.7.2. Переход в 0-е кольцо защиты подменой обработчика 
исключений  ......................................................................................................270
4.3.7.3. Инсталляция в неиспользуемые буферы VMM  ...................272
4.3.7.4. Инсталляция в динамически выделяемую системную 
память  .................................................................................................................273

Содержание 7

4.3.7.5. Встраивание в файловую систему  ..............................................274

4.3.8. Вирусы – виртуальные драйверы  ..........................................................278

4.3.8.1. VxD-вирусы  .......................................................................................279
4.3.8.2. SYS-вирусы и WDM-вирусы ........................................................282

4.3.9. «Невидимость» Windows-вирусов  ........................................................286

4.3.9.1. Маскировка присутствия в файле  ..............................................287
4.3.9.2. Маскировка присутствия в памяти  ...........................................289
4.3.9.3. Маскировка ключей Реестра  ........................................................296

4.3.10. Полиморфные вирусы в Windows ........................................................296
4.3.11. Вирусы и подсистема безопасности Windows ..................................301

4.4. Пример анализа и нейтрализации конкретного вируса .............................305

4.4.1. Первичный анализ зараженных программ  .........................................305
4.4.2. Анализ кода  ....................................................................................................307
4.4.3. Алгоритм поиска и лечения  .....................................................................307
4.4.4. Дополнительные замечания  .....................................................................308

ГЛАВА 5 Макровирусы ......................................................................................................310

5.1. Вирусы в MS Word ...................................................................................................310

5.1.1. Общие сведения о макросах  .....................................................................313
5.1.2. Вирусы на языке WordBasic  .....................................................................315

5.1.2.1. Проблема «локализации» ..............................................................322
5.1.2.2. Активация без «автоматических макросов»  ...........................323
5.1.2.3. Копирование макросов без «MacroCopy»  ...............................324
5.1.2.4. Запуск бинарного кода  ...................................................................324
5.1.2.5. Обеспечение «невидимости»  .......................................................325

5.1.3. Вирусы на языке VBA  ................................................................................326
5.1.4. О проявлениях макровирусов  .................................................................333
5.1.5. Простейшие приемы защиты от макровирусов  ................................336

5.1.5.1. Манипуляции с «NORMAL.DOT»  ............................................336
5.1.5.2. Удаление вируса средствами «Организатора»  .......................336
5.1.5.3. Антивирусные макросы  .................................................................337
5.1.5.4. Встроенная «защита» MS Word ...................................................339

5.2. Вирусы в других приложениях MS Office .......................................................342

5.2.1. Макровирусы в MS Excel  ..........................................................................342
5.2.2. «Многоплатформенные» макровирусы  ...............................................344

5.3. Полиморфные макровирусы ................................................................................346
5.4. Прямой доступ к макросам ...................................................................................349

5.4.1. Формат структурированного хранилища  ...........................................350
5.4.2. «Правильный» доступ к структурированному хранилищу  ..........357
5.4.3. Макросы в Word-документе  .....................................................................358

Содержание

5.4.3.1. Макросы на языке WordBasic  ......................................................358
5.4.3.2. Макросы на языке VBA  .................................................................361
5.4.3.3. Вид и расположение VBA-макросов  .........................................362
5.4.3.4. Поиск VBA-макросов  .....................................................................363
5.4.3.5. Распаковка VBA-текста макросов  ..............................................364
5.4.3.6. Удаление VBA-макросов  ...............................................................366

5.5. Пример анализа и удаления конкретного макровируса .............................367

5.5.1. Получение и анализ исходного текста  .................................................367
5.5.2. Распознавание и удаление макровируса ..............................................370

ГЛАВА 6 Сетевые и почтовые вирусы и черви ..................................371

6.1. Краткая история сетей и сетевой «заразы» .....................................................371
6.2. Архитектура современных сетей.........................................................................375

6.2.1. Топология сетей  ............................................................................................375
6.2.2. Семиуровневая модель ISO OSI  ............................................................377
6.2.3. IP-адресация  ..................................................................................................378
6.2.4. Символические имена доменов ...............................................................380
6.2.5. Клиенты и серверы. Порты  ......................................................................382
6.2.6. Сетевое программирование. Интерфейс сокетов  .............................384

6.3. Типовые структура и поведение программы-червя .....................................386
6.4. Как вирусы и черви распространяются ............................................................391

6.4.1. Черви в локальных сетях  ..........................................................................392
6.4.2. Почтовые вирусы  .........................................................................................398

6.4.2.1. Первые почтовые вирусы. Интерфейс MAPI  ........................401
6.4.2.2. Прямая работа с почтовыми серверами  ...................................408

6.4.3. «Интернет»-черви  .......................................................................................414

6.5. Как черви проникают в компьютер ....................................................................417

6.5.1. «Социальная инженерия»  ........................................................................423
6.5.2. Ошибки при обработке почтовых вложений  .....................................427
6.5.3. Ошибки в процессах SVCHOST и LSASS  ..........................................429
6.5.4. Прочие «дыры» ..............................................................................................435
6.5.5. Брандмауэры  .................................................................................................438

6.6. Как черви заражают компьютер ..........................................................................442
6.7. Пример обнаружения, исследования и удаления червя .............................445

6.7.1. Проявления червя  .......................................................................................445
6.7.2. Анализ алгоритма работы  .........................................................................448

6.7.2.1. Установка в памяти  ..........................................................................448
6.7.2.2. Борьба с антивирусами  ..................................................................449
6.7.2.3. Модификация Реестра  ...................................................................451
6.7.2.4. Поиск адресов  ....................................................................................451

Содержание 9

6.7.2.5. Распространение по электронной почте  ..................................451

6.7.3. Методы удаления  .........................................................................................452

6.8. Современные сетевые вирусы и черви..............................................................454

6.8.1. Модульное построение  ..............................................................................456
6.8.2. Множественность способов распространения  ..................................457
6.8.3. Борьба червей с антивирусами  ...............................................................458
6.8.4. Управляемость. Ботнеты ............................................................................458

ГЛАВА 7 Философские и математические аспекты .................461

7.1. Строгое определение вируса ................................................................................461

7.1.1. Модели Ф. Коэна  .........................................................................................462
7.1.2. Модель Л. Адлемана ....................................................................................469
7.1.3. «Французская» модель  ..............................................................................472
7.1.4. Прочие формальные модели  ....................................................................475

7.1.4.1. Модель китайских авторов Z. Zuo и M. Zhou  .........................475
7.1.4.2. Векторная модель Д. Зегжды  .......................................................475
7.1.4.3. Модели на основе абстрактных «вычислителей»  .................476

7.2. «Экзотические» вирусы .........................................................................................478

7.2.1. Мифические вирусы  ...................................................................................479
7.2.2. Batch-вирусы  .................................................................................................482
7.2.3. Вирусы в исходных текстах  .....................................................................486
7.2.4. Графические вирусы  ...................................................................................490
7.2.5. Вирусы в иных операционных системах ..............................................492

7.2.5.1. Вирусы в UNIX-подобных системах  .........................................492
7.2.5.2. Вирусы для мобильных телефонов .............................................501

7.2.6. Прочая вирусная «экзотика»  ...................................................................506

7.3. Распространение вирусов ......................................................................................508

7.3.1. Эпидемии сетевых червей  ........................................................................508

7.3.1.1. Простая SI-модель экспоненциального размножения ........510
7.3.1.2. SI-модель размножения в условиях ограниченности 
ресурсов  .............................................................................................................514
7.3.1.3. SIS-модель примитивного противодействия  .........................516
7.3.1.4. SIR-модель квалифицированной борьбы  ................................517
7.3.1.5. Прочие модели эпидемий  ..............................................................519
7.3.1.6. Моделирование мер пассивного противодействия  ..............521
7.3.1.7. Моделирование «контрчервя»  ....................................................522

7.3.2. Эпидемии почтовых червей, файловых и загрузочных 
вирусов  .......................................................................................................................527
7.3.3. Эпидемии мобильных червей  ..................................................................530

7.4. Обнаружение вирусов ............................................................................................532

Содержание

7.4.1. Анализ косвенных признаков  ..................................................................533
7.4.2. Простые сигнатуры  .....................................................................................535
7.4.3. Контрольные суммы  ...................................................................................541
7.4.4. Вопросы эффективности  ...........................................................................544

7.4.4.1. Выбор файловых позиций  ............................................................545
7.4.4.2. Фильтр Блума  ...................................................................................547
7.4.4.3. Метод половинного деления  ........................................................548
7.4.4.4. Разбиение на страницы  ..................................................................549

7.4.5. Использование сигнатур для детектирования полиморфиков  ...551

7.4.5.1. Аппаратная трассировка  ................................................................552
7.4.5.2. Эмуляция программ  ........................................................................556
7.4.5.3. Противодействие эмуляции  .........................................................560
7.4.5.4. «Глубина» трассировки и эмуляции  ..........................................563

7.4.6. «Рентгеноскопия» полиморфных вирусов ..........................................564
7.4.7. Метаморфные вирусы и их детектирование .......................................567

7.4.7.1. Этап «выделения и сбора характеристик»  ..............................569
7.4.7.2. Этап «обработки и анализа»  .........................................................571

7.4.8. Анализ статистических закономерностей ............................................578
7.4.9. Эвристические методы детектирования вирусов  .............................580

7.4.9.1. Выделение характерных признаков   .........................................582
7.4.9.2. Логические методы  ..........................................................................586
7.4.9.3. Синтаксические методы  ................................................................588
7.4.9.4. Методы на основе формулы Байеса  ..........................................588
7.4.9.5. Методы, использующие искусственные нейронные 
сети  ......................................................................................................................590

7.4.10. Концепция современного антивирусного детектора  ....................592

7.5. Борьба с вирусами без использования антивирусов ...................................596

7.5.1. Файловые «ревизоры»  ...............................................................................596
7.5.2. Политики разграничения доступа  .........................................................597
7.5.3. Криптографические методы  ....................................................................601
7.5.4. Гарвардская архитектура ЭВМ  ...............................................................604

7.6. Перспективы развития и использования компьютерных вирусов .........605

7.6.1. Вирусы как «кибероружие»   ....................................................................606
7.6.2. Полезные применения вирусов  ..............................................................613

ЗАКЛЮЧЕНИЕ .....................................................................................................623

Литература .............................................................................................................625

ПРИЛОЖЕНИЕ Листинги вирусов и антивирусных процедур .........630

Доступ онлайн
519 ₽
В корзину