Чтение онлайн

на главную - закладки

Жанры

Записки исследователя компьютерных вирусов

Касперски Крис

Шрифт:
 

Листинг 2.17. Альтернативный пример нормальной стартовой функции



Большинство зараженных файлов выглядит иначе. В частности, стартовый код вируса PolyEngine.Linux.LIME.poly (листинг 2.18).


Листинг 2.18. Стартовый код вируса PolyEngine.Linux.LIME.poly


Перехват управления путем модификации таблицы импорта

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

сложный, хотя и хорошо документированный способ импорта внешних функций. Его подробное описание можно найти в спецификации elf-формата («Executable and Linkable Format – Portable Format Specification»), электронную копию которого можно найти по следующему адресу: www.ibiblio.org/pub/historic-linux/ftp-archives/sunsite.unc.edu/Nov-06-1994/GCC/ELF.doc.tar.gz, здесь же мы сосредоточимся преимущественно на технической стороне вопроса.

Классический механизм импорта внешних функций из/в elf-файлов в общем виде выглядит так: на первом этапе вызова импортируемой функции из секции. text вызывается «переходник», расположенный в секции. pit ( Procedure Linkable Table) и ссылающийся, в свою очередь, на указатель на функцию pri ntf, расположенный в секции. got ( Global Offset Tables), ассоциированной с таблицей строк, содержащей имена вызываемых функций (или их хеши).

Ниже приведена схема вызова функции pri ntf утилитой Is, позаимствованной из комплекта поставки Red Hat 5.0 (листинг 2.19).


Листинг 2.19. Схема вызова функции printf утилитой Is



В какое место этой цепочки может внедриться вирус? Ну, прежде всего он может создать подложную таблицу строк, перехватывая вызовы всех интересующих его функций. Чаще всего заражению подвергается функция pri ntf /f pri ntf/sprintf (поскольку без этой функции не обходится практически ни одна программа) и функции файлового ввода/вывода, что автоматически обеспечивает прозрачный механизм поиска новых жертв для заражения.

Вирусы-спутники поступают иначе, создавая специальную библиотеку-перехватчик, во всех заражаемых файлах. Поскольку IDA Pro при дизассемблировании elf-файлов не отображает имя импортируемой библиотеки, заподозрить что-то неладное в этой ситуации нелегко. К счастью, НЕХ-редакторы еще никто не отменял и присутствие вируса распознается с первого взгляда…

Часть II
Черви

Глава 3

ЖИЗНЕННЫЙ ЦИКЛ ЧЕРВЕЙ

Глава 4

ОШИБКИ ПЕРЕПОЛНЕНИЯ БУФЕРА ИЗВНЕ И ИЗНУТРИ,

в которой карма переполняющихся буферов медленно перетекает в Дао, подрывающее уязвимое приложение изнутри

Глава 5

ПОБЕГ ЧЕРЕЗ БРАНДМАУЭЕР ПЛЮС ТЕРМИНАЛИЗАЦИЯ ВСЕЙ NT,

к концу которой выясняется, что брандмауэер не такая уж и надежная штука

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

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

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

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

Глава 3
Жизненный цикл червей

– Червь придет обязательно?

– Обязательно.

Френк Херберт. «Дюна»

Исторически сложилось так, что титул первого Интернет-червя закрепился за так называемым «Вирусом Морриса», а некоторые даже присуждают ему звание первого компьютерного вируса вообще. На самом же деле это утверждение неверно. Черви в изобилии водились в глобальных (локальных) сетях еще до Морриса, а «заслуга» последнего состоит лишь в том, что ошибки, допущенные при реализации вируса, привели к чрезмерной активности червя и, как следствие, колоссальному росту сетевого трафика, плотно загрузившего межсетевые узлы непосильным объемом работы. Случившийся паралич сети вызвал массовую истерию сродни той, что сопровождалась недавней атакой на SQL-серверы. Тем не менее никаких уроков из случившегося человечество так и не извлекло. Ведущие разработчики ПО как не несли, так и не несут никакой ответственности за его качество и не предпринимают ничего, чтобы это качество хоть немного повысить. Вместо того чтобы сосредоточиться на одной конкретной версии и довести ее до ума, лидеры софтверной индустрии предпочитают вкладывать деньги в наращивание избы точной функциональности продукта, только приумножающей его дыры. Как ни печально, но эта тенденция (если не сказать эпидемия) проникла и в мир UNIX'а.

В 1992 году, если верить «Вирусной Энциклопедии» Евгения Касперского:

…вирусы для не-IBM-PC и не-MS-DOS практически забыты: «дыры» в глобальных сетях закрыты, ошибки исправлены, и сетевые вирусы-черви потеряли возможность для распространения.

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

Конец затишья перед бурей?

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

Поделиться:
Популярные книги

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Кодекс Охотника. Книга XII

Винокуров Юрий
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XII

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие

Попаданка в академии драконов 4

Свадьбина Любовь
4. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
7.47
рейтинг книги
Попаданка в академии драконов 4

(Не)свободные, или Фиктивная жена драконьего военачальника

Найт Алекс
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(Не)свободные, или Фиктивная жена драконьего военачальника

Убийца

Бубела Олег Николаевич
3. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.26
рейтинг книги
Убийца

Книга пяти колец. Том 2

Зайцев Константин
2. Книга пяти колец
Фантастика:
фэнтези
боевая фантастика
5.00
рейтинг книги
Книга пяти колец. Том 2

Вечная Война. Книга VII

Винокуров Юрий
7. Вечная Война
Фантастика:
юмористическая фантастика
космическая фантастика
5.75
рейтинг книги
Вечная Война. Книга VII

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Месть Паладина

Юллем Евгений
5. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Месть Паладина