Введение
Cоглашения о наименованиях
Кто пишет вирусы?
Расплата за бездумность
Почему антивирусы стали плохой идеей
Что могут и не могут вирусы
С чего все начиналось
Классификация компьютерных вирусов
От издательства
Часть I. Локальные вирусы
Глава 1. Борьба с windows-вирусами — опыт
контртеррористических операций
Что нам потребуется?
Источники угрозы
Критическая ошибка в SVCHOST.EXE
Места наиболее вероятного внедрения вирусов
Основные признаки вирусного внедрения
Текстовые строки
Идентификация упаковщика и автоматическая распаковка
Стартовый код
Точка входа
Нестандартные секции
Таблица импорта
Глава 2. Вирусы в UNIX, или Гибель Титаника II
От древнего мира до наших дней
Что думают администраторы об AVP для LINUX
Условия, необходимые для функционирования вирусов
Вирусы в скриптах
Эльфы в заповедном лесу
Основные признаки вирусов
Перехват управления путем модификации таблицы импорта
Часть II. Черви
Глава 3. Жизненный цикл червей
Конец затишья перед бурей?
Инициализация, или Несколько слов перед введением
Введение, или превратят ли черви сеть в компост?
Структурная анатомия червя
Механизмы распространения червей
Борьба за территорию
Как обнаружить червя
Как побороть червя
Интересные ссылки на сетевые ресурсы
Глава 4. Ошибки переполнения буфера извне и изнутри
Философское начало
Мясной рулет ошибок переполнения, или Попытка классификации (скука смертная)
Неизбежность ошибок переполнения в исторической перспективе
Окутанные желтым туманом мифов и легенд
Похороненный под грудой распечаток исходного и дизассемблерного кода
Цели и возможности атаки
Жертвы переполнения, или объекты атаки
Специфические особенности различных типов переполнения
Секреты проектирования shell-кода
Запрещенные символы
Искусство затирания адресов
Подготовка shell-кода
Вчера были большие, но по пять… или Размер тоже имеет значение!
В поисках самого себя
Техника вызова системных функций
Реализация системных вызовов в различных ОС
Упасть, чтобы отжаться
Компиляция червя
Декомпиляция червя
Уязвимость строки спецификаторов
Что читать
Глава 5. Побег через брандмаузер плюс терминализация всей NT
Что может и чего не может брандмаузер
Устанавливаем соединение с удаленным узлом
Bind exploit или «Детская» атака
Reverse exploit, или Если гора не идет к Магомету
Find exploit, или Молчание брандмаузера
Reuse exploit, или Молчание брандмаузера II
Fork exploit, или Брандмаузер продолжает молчать
Sniffer exploit, или Пассивное сканирование
Организация удаленного shell’a в UNIX и NT
Слепой shell
Полноценный shell
Вирус I-Worm.Klez.h и все-все-все
Старый свет
Новый свет
Способ № 1. Антивирусы
Способ № 2. Главное — это защита
Способ № 3. Ручная работа
Часть III. Методы борьбы
Глава 6. Превентивные меры
Резервное копирование
Переход на защищенные операционные системы
Уменьшение привилегий пользователей до минимума
Сокращение избыточной функциональности программ
Глава 7. Методика обнаружения и удаления вирусов
Мониторинг изменения файлов
Контроль за обращениям к файлам
Контроль за состоянием системы
Ненормальная сетевая активность
Анализ полученных из сети файлов
Симптомы заражения вирусом
Методика удаления вирусов
Часть IV. Операционные системы
Глава 8. Философия и архитектура NT против UNIX с точки зрения безопасности
Open source vs дизассемблер
Каждому хакеру — по системе!
UNIX — это просто!
Удаленный доступ: оружие пролетариата?
Комплектность штатной поставки
Механизмы аутентификации
Повышение своих привилегий
Угроза переполнения буфера
Доступ к чужому адресному пространству
Межпроцессорные коммуникации
Неименованные каналы
Именованные каналы
Сокеты
Сообщения
Сводная таблица
Глава 9. Красная шапочка, агрессивный пингвин, пронырливый чертенок и все-все-все…
Надежность
Защищенность
Легкость управления vs. функциональность
Программно-аппаратная среда
Техническая поддержка и документация
Наличие исходных текстов
Преемственность
Юридическая защищенность
Стоимость
Заключение
ПриложениЯ
Приложение А. Практические советы по восстановлению системы в боевых условиях
Аппаратная часть
Оперативная память
Блок питания
…И все-все-все
Программная часть
Приложения, недопустимые операции и все-все-все
Доктор Ватсон
Microsoft Visual Studio Debug
Обитатели сумеречной зоны, или Из морга в реанимацию
Как подключить дамп памяти
Восстановление системы после критического сбоя
Подключение дампа памяти
Приложение Б. Борьба со спамом
«Общепитовые» трудности борьбы со спамом
Способы борьбы со спамом на корпоративном уровне
Оружие возмездия или способы борьбы со спамом
Наживка для спамера, или Продвинутые методики фильтрации
Спамерный трафик: вокруг да около
Результаты практических исследований
Технологии полиморфизма и антиполиморфизма
Приложение В. Сравнительный анализ элегантности архитектур различных процессоров