Защита вашего компьютера

Яремчук Сергей Акимович

Глава 1

Защищенность компьютеров: мифы и реальность

 

 

История возникновения компьютерных вирусов

Что такое вирус

Разновидности компьютерных вирусов

Вирусные мистификации

Что за зверь – троянский конь?

Новаторские подходы хакеров – руткиты (rootkits)

Уязвимости программ и хакерские технологии

 

1.1. История возникновения компьютерных вирусов

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

К сожалению, история умалчивает о многих фактах, связанных с зарождением компьютерного вредительства, но кое-что все-таки дошло до наших дней. Декабрь 1949 года можно считать началом возникновения компьютерных вирусов. Именно тогда в Илинойсском университете Джон фон Нейман читал серию лекций «Теория и организация сложных автоматов», которая и легла в основу теории самовоспроизводящихся автоматов. Однако это была теория. Первым действующим вирусом можно назвать игру Darwin (http://www.cs.dartmouth.edu/~doug/darwin.pdf ), которую изобрели в 1961 году сотрудники компании Bell Telephone Laboratories В. А. Высотский, Х. Д. Макилрой и Р. Моррис.

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

Следующий этап – самоперемещающаяся программа Creeper, созданная в начале 1970-х годов сотрудником компании BBN Бобом Томасом для подсистемы RSEXEC с целью продемонстрировать возможность самопроизвольного перемещения программ между компьютерами. Creeper не приносил вреда: предыдущая копия уничтожалась, а вирус перемещался на следующий компьютер.

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

В 1970 году произошло еще одно знаковое событие. В мае в журнале Venture был опубликован фантастический рассказ Грегори Бенфорда, в котором было приведено одно из первых описаний вирусных и антивирусных программ – Virus и Vaccine. Через два года в фантастическом романе «Когда Харли был год» Дэвида Герролда были описаны программы, захватывающие системы подобно червям. Сам термин «червь» был впервые использован в романе Джона Браннера «На шоковой волне», опубликованном в 1975 году.

Термин «компьютерный вирус» был впервые использован в 1973 году в фантастическом фильме Westworld. Данное словосочетание употреблялось в значении, привычном для современного человека, – «вредоносная программа, внедрившаяся в компьютерную систему».

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

В 1980-х годах компьютеры значительно подешевели и их количество увеличилось. Кроме того, машины стали более производительными, а энтузиастов, получивших к ним доступ, стало намного больше.

Неудивительно, что это десятилетие стало более богатым на события в компьютерном мире. Были проведены эксперименты по созданию самовоспроизводящихся программ и программ-червей; появились программы Elk Cloner и Virus, которые считаются первыми компьютерными вирусами. Если раньше экспериментальные образцы никогда не покидали компьютеры, на которых они запускались, то новые программы были обнаружены «на свободе» – на компьютерах вне лаборатории.

Дальнейшее развитие событий напоминало лавину. В 1987 году появился первый вирус, заражающий IBM PC-совместимые компьютеры под управлением MS-DOS, – Brain. Этот вирус был достаточно безвредным: его действие заключалось в изменении метки на дискетах в 360 Кбайт. Brain был написан двумя пакистанскими программистами, владельцами компании Brain Computer Services (отсюда и название вируса), исключительно в рекламных целях, но на его основе были созданы менее миролюбивые особи. В том же 1987 году появился Jerusalem («иерусалимский вирус»), запрограммированный на удаление зараженных файлов по пятницам 13-го. Первые его версии содержали ошибку, благодаря которой он повторно действовал на уже зараженные файлы. В последующих версиях ошибка была исправлена.

Хотя к тому времени уже появились материалы, посвященные безопасности информации, все это воспринималось не более чем игрушкой, экспериментом. Прозрение наступило неожиданно, когда эта «игрушка» перестала повиноваться и повела себя как разумный организм, заражающий все на своем пути. Это произошло 2 ноября 1988 года, когда студент Корнельского университета Роберт Моррис-младший запустил программу-червь, которая сохранилась в истории под именем своего разработчика. Червь Морриса стал первым сетевым червем, успешно распространившимся «на свободе», и одной из первых известных программ, эксплуатирующих такую уязвимость, как переполнение буфера.

За каких-то полтора часа вредителю удалось заразить около 6 тыс. машин. Произошедшее повергло общественность в шок: вирусы гуляли по Сети и ранее, но заразить каждый десятый компьютер до сих пор не удавалось никому. Срочно были пересмотрены требования к безопасности систем и созданы институты вроде CERT (Computer Emergency Response Team – команда по ответам на непредвиденные компьютерные ситуации), которые стали заниматься безопасностью компьютеров и давать рекомендации по устранению вирусов.

Компьютеры становились все доступнее. Со временем большинство платформ и операционных систем унифицировалось, на рынке стали преобладать Intel-совместимые компьютеры, которые работали под управлением операционной системы, разработанной компанией Microsoft. Дальнейшие события развивались с огромной скоростью. В 1991 году появился полиморфный вирус, видоизменявший свое тело. Операционная система Windows 95 была практически готова, и ее beta-версию разослали 160 тестерам. Все диски оказались зараженными загрузочным вирусом Form, и только один тестер не поленился проверить диск антивирусом. В пресс-релизе, посвященном выходу принципиально новой операционной системы, было сказано, что она полностью защищена от вирусов всех типов. Через несколько месяцев эти заявления были разнесены в пух и прах неожиданным подарком – первым макровирусом, представлявшим собой не привычный исполняемый файл, а сценарий, который заражал документы Microsoft Word. В течение месяца макровирус Сoncept облетел вокруг земного шара, внедрился в компьютеры пользователей Microsoft Word и парализовал работу десятков компаний по всему миру.

Примечание

На сегодняшний момент известно около 100 модификаций вируса Сoncept.

В январе 1996 года появился первый вирус для операционной системы Windows 95 – Win95.Boza, а резидентный вирус Win95.Punch, появившийся позже, окончательно подорвал доверие пользователей к Windows 95. В марте этого же года началась первая эпидемия вируса Win.Tentacle, написанного для Windows 3.0/3.1. Он заразил компьютерную сеть в нескольких учреждениях Франции. До этого все Windows-вирусы хранились только в коллекциях и электронных журналах вирусописателей, на свободе гуляли лишь написанные для MS-DOS загрузочные и макровирусы. В этом же году был пойман макровирус Laroux, написанный для Microsoft Excel.

В 1997 году на свет появились новые виды вирусов – FTP– и mIRC-черви, в июне 1998 года – вирус Win95.CIH. Этот вирус активизировался 26 апреля (впервые – в 1999 году) и уничтожал информацию на жестком диске, записывая на него мусор. Кроме того, он перезаписывал Flash BIOS, если переключатель находился в положении, разрешающем запись, и выводил из строя материнскую плату.

Примечание

Эпидемия вируса Win95.CIH, также известного как «Чернобыль» и поразившего компьютеры 26 апреля 1999 года, была на тот момент самой разрушительной.

Червь I love you, выпущенный на Филиппинах в мае 2000 года, нанес владельцам компьютеров ущерб на сумму, по некоторым оценкам превышающую $10 млрд. Следующий червь, вошедший в историю как Code Red, за 14 часов сумел заразить более 300 тыс. компьютеров, подключенных к Интернету. После них были и другие, часто – первые в определенной категории. Например, Nimda (слово admin, прочитанное наоборот), многовекторный червь, распространялся сразу несколькими способами, включая «черные ходы», оставленные другими червями. MyDoom был признан самым быстрым червем, распространяющимся по электронной почте.

До этого большая часть вирусов была написана на языке низкого уровня – ассемблере, позволявшем создать небольшой оптимизированный вирус. Автором червя AnnaKournikova, который поразил Интернет в феврале 2001 года, оказался голландский студент, который вообще не умел программировать, даже на таком простом языке, как Basic.

Сегодня общие годовые потери всех коммерческих организаций от действий вирусов могут сравниться с бюджетом небольшой страны, и эта сумма каждый год удваивается. Заявления некоторых специалистов по безопасности свидетельствуют о серьезности проблемы. По сведениям главы технологического департамента компании MessgeLabs (http://www.messagelabs.com/ ) Алекса Шипа, в 1999 году фиксировалось в среднем по одному новому вирусу в час, в 2000 году эта цифра составляла уже по одной программе каждые три минуты, а в 2004 году это время сократилось до нескольких секунд. По данным СанктПетербургской антивирусной лаборатории И. Данилова (ООО «СалД»), только за март 2007 года в антивирусную базу добавлено более 7 тыс. записей.

Игра Darwin продолжается…

 

1.2. Что такое вирус

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

Внимание!

Главная особенность любого вируса – умение самопроизвольно размножаться и распространяться без участия пользователя.

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

Главная задача вируса – заразить максимальное количество компьютеров. Сегодня написать вирус может любой, было бы желание и наличие специальных конструкторов, не требующих особых знаний, в том числе и по программированию. Однако долго такой вирус не протянет (хотя бывают и исключения: вспомним AnnaKournikova). Реализациям алгоритмов выживания и заражения посвящены целые журналы, причем некоторые подходы вызывают восхищение.

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

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

В начальный период существования вредоносных программ были популярны вирусы-шутки, которые мешали работе пользователей. Деструктивные особи практически не встречались. Например, такие программы просили дополнительной памяти («пирожка» и т. п.), и экран блокировался, пока пользователь не вводил с клавиатуры нужное слово (иногда его нужно было угадать). Лично я сталкивался с вирусом, который при обнулении счетчика не давал запустить приложение Microsoft Word с 18:00 до 09:00, мотивируя это тем, что работать нужно в рабочее время. Были и курьезы. Например, вирус, который выводил на экран сообщение вроде: «Нажмите одновременно L + A + M + E + R + F1 + Alt». Пользователь нажимал, после чего появлялось сообщение о том, что таблица разделов стерта с жесткого диска и загружена в оперативную память и если пользователь отпустит хотя бы одну клавишу, то со своей информацией он может проститься, а если просидит так ровно час, то все будет в порядке. Через час оказывалось, что это была шутка. Ничего себе шуточки…

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

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

 

1.3. Разновидности компьютерных вирусов

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

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

По среде обитания. Первая классификация относится к среде, в которой «живет» вирус.

• Первые вирусы, которые были популярны до массового распространения Интернета, – файловые. Их еще называют традиционными. Сегодня известны программы, заражающие все типы исполняемых файлов в любой операционной системе. Например, в Windows опасности подвергаются в первую очередь исполняемые файлы с расширениями EXE, COM и MSI, драйверы (SYS), командные файлы (BAT) и динамические библиотеки (DLL). C механизмом заражения такими вирусами и их распространением вы познакомились в предыдущем разделе.

• Загрузочные вирусы также появились одними из первых. Как видно из названия, такие вирусы заражают не файлы, а загрузочные секторы дискет и жестких дисков.

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

Классическим примером сетевого вируса является червь Морриса, рассмотренный в разделе 1.1.

Наибольшую распространенность получили сетевые черви, использующие электронную почту, интернет-пейджеры, локальные и файлообменные (P2P) сети, IRC-сети и сети обмена данными между мобильными устройствами. Некоторые сетевые черви, например W32.Slammer или Sapphire, использующий уязвимость Microsoft SQL Server 2000, могут не оставлять на жестком диске никаких следов, хранясь только в оперативной памяти. Благодаря способности активно распространяться и работать на зараженных компьютерах без использования файлов подобные вирусы наиболее опасны. Они существуют исключительно в системной памяти, а на другие компьютеры передаются в виде пакетов данных. Первое время антивирусное программное обеспечение не было способно бороться с такими бестелесными вредителями.

Внимание!

Сетевые и почтовые вирусы наиболее опасны, так как способны за короткое время заразить большое количество систем.

• Сегодня наиболее популярны сетевые вирусы, распространяющиеся посредством электронной почты, поэтому их часто выделяют в отдельную категорию – почтовые черви. Так, три из четырех крупнейших эпидемий 2005 года были вызваны именно почтовыми червями. Такие вирусы чаще всего распространяются через электронную почту: они рассылают по адресам, имеющимся в адресной книге, письма с прикреплениями в виде самих себя. Для передачи могут использоваться средства операционной системы или небольшой встроенный почтовый сервер (функция такого сервера – отправка писем).

Например, червь Melissa отсылал себя сразу после активизации только по первым 50 адресам, а I Love You использовал все записанные в адресной книге почтовые адреса, что обеспечило ему высокую скорость распространения. Другой тип червя – сценарий KakWorm, который после прочтения зараженного письма не рассылался, а прикреплялся к каждому посланию, отправляемому пользователем. При этом на новом компьютере вредоносное приложение либо выполнялось автоматически, используя уязвимости в почтовой программе, либо различными способами подталкивало пользователя к своему запуску. Зараженное письмо может прийти со знакомого адреса, и пользователь, скорее всего, откроет его. Могут применяться различные ухищрения. Например, вирус AnnaKournikova приглашал посмотреть фотографии известной теннисистки Анны Курниковой: любопытство чаще всего брало верх над осторожностью, и пользователи запускали прикрепленный к письму исполняемый файл.

Совет

Будьте осторожны с письмами, полученными от неизвестных людей. Открывайте файлы, прикрепленные к таким письмам, только после проверки антивирусом.

• Очень часто встречаются вирусы смешанного типа – почтово-сетевые. В таком случае их обычно называют просто сетевыми. Яркий пример – сетевой червь Mytob.c, который в марте 2005 года пересылался в виде вложений в электронные письма и использовал для своего распространения уязвимость в сервисе LSASS Microsoft Windows.

Черви – наиболее опасный тип вирусов. Они распространяются очень быстро и способны поражать файлы, диски и оперативную память. Правильно написанный червь может парализовать работу Интернета либо перегрузив каналы, либо заразив серверы. Например, Slammer сумел поразить почти четверть Интернета. В этом случае поражает беспечность фирмы-разработчика, так как об уязвимости, которая была использована автором Slammer, было известно еще за полгода до атаки. Интересно, что не один год до этого почтовые черви с успехом использовали уязвимость Microsoft Internet Explorer, позволяющую запускать любой исполняемый файл, пришедший вместе с электронным письмом, без согласия пользователя.

• Макровирусы являются программами, написанными на макросах – последовательностях команд, используемых в некоторых системах обработки данных, например текстовых редакторах и электронных таблицах. Возможности макроязыков в таких системах позволяют вирусу переносить свой код в другие файлы, заражая их. Наибольшее распространение получили макровирусы для Microsoft Word и Excel. Такой вирус активизируется при открытии зараженного документа и переносится на компьютер, как правило, внедряясь в шаблон Обычный (файл Normal.dot). После этого каждый сохраняемый документ заражается вирусом, а когда другие пользователи открывают его, их компьютеры также инфицируются. Существуют также макровирусы, заражающие базы данных Microsoft Access.

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

По алгоритму работы. Например, существуют резидентные и нерезидентные вирусы.

• Резидентный вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, чтобы перехватывать все обращения операционной системы к объектам, пригодным для заражения. Это наиболее распространенный тип вирусов: они активны не только во время работы зараженной программы, но и – что наиболее важно – когда приложение закрыто. Резидентные вирусы постоянно находятся в памяти компьютера и остаются активными вплоть до его выключения или перезагрузки.

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

Примечание

Хочется еще раз обратить внимание на понятия «резидентность» и «файловый вирус». Несколько раз мне приходилось наблюдать настоящую панику, вызванную тем, что файл, который кто-то принес на дискете, заражен вирусом. Несмотря на то что некоторые вирусы могут спокойно размножаться без участия пользователя, файловые, загрузочные и макровирусы (резидентные и нерезидентные) не способны распространяться без помощи человека. Чтобы такой вирус начал разрушительную работу, его необходимо активизировать. Находясь на дискете или жестком диске, он разве что будет вызывать раздражение антивирусной программы, и, если пользователь сам не запустит его, нерезидентный вирус не принесет вреда.

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

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

• В литературе часто упоминаются стелс-вирусы (stealth – невидимка), которые были распространены во времена MS-DOS. Они применяют множество средств, чтобы скрыть свое присутствие в системе. Определить наличие таких вирусов без соответствующего инструментария практически невозможно.

Сегодня для маскировки своего присутствия в системе вирусы используют руткит-технологии (о них будет рассказано позже). Вирусы можно подразделить также по следующим критериям:

• по методу заражения (вирусы-паразиты, компаньоны и др.);

• типу операционной системы (Windows, Unix, Linux, MS-DOS, Java);

• деструктивной возможности (от безвредных, просто мешающих работе, до крайне опасных);

• языку, на котором написан вирус (ассемблер, язык сценариев и др.).

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

Каждый вирус имеет собственное имя. Вы слышите его, когда узнаете об очередной эпидемии. Откуда берется имя? Обнаружив новый вирус, антивирусные компании дают ему имена в соответствии с классификациями, принятыми в каждой конкретной компании, причем классификация у каждой фирмы своя. Посмотрите сами: например, Worm.Win32.Nuf – это то же самое, что Net-Worm.Win32.Mytob.c. Часто название дается по некоторым внешним признакам:

• по месту обнаружения вируса (Jerusalem);

• содержащимся в теле вируса текстовым строкам (I Love You);

• методу подачи пользователю (AnnaKournikova);

• эффекту (Black Friday).

Бывает так, что вирус несколько раз переименовывают. Например, это касается «иерусалимского вируса». Изначально его назвали по месту обнаружения – Israeli, затем решили, что это название слишком антисемитское, и заменили его на «1813» (по размеру вируса), при этом параллельно использовалось другое имя – IDF (Israeli Defence Forces), и только через некоторое время вирус назвали Jerusalem.

Кстати

Самым маленьким по размеру вирусом считается Repus (Win95.с) – всего 156 байт (существуют, однако, и более тяжеловесные модификации, вплоть до 256 байт). Для уменьшения размера этого вируса используются различные программные хитрости и уловки; вреда он не приносит, и все программы работают без проблем. При этом есть как резидентные, так и нерезидентные представители Repus (Win95.с). Помимо малого размера, Repus стал первым вирусом, использующим для своего размножения кэш-память Windows. Он ищет в кэш-блоках заголовки файлов, записывается в них и устанавливает для блоков атрибут dirty, который дает системе команду сохранить его на диск. Подобная методика позволяет даже нерезидентному варианту распространяться со скоростью резидентного вируса.

Одним из самых интересных является вирус I-Worm.Hybris (Vecna), получивший в июле 2002 года четвертую категорию опасности. Он распространяется посредством электронной почты. В первую очередь этот вирус заражает системный файл wsock32.dll, получая доступ ко всему интернет-трафику, а затем рассылает себя по полученным таким образом почтовым адресам. Самое интересное, что этот вирус может самостоятельно обновляться через Интернет, скачивая с новостной конференции alt.comp.virus плагины, дающие ему новые возможности.

Количество сигнатур в антивирусных базах многих производителей уже перевалило 400-тысячную отметку и постоянно растет.

 

1.4. Вирусные мистификации

Историю развития компьютерных систем нельзя назвать веселой. В первые годы антивирусы были несовершенны, а пользователи еще не владели достаточной информацией, но уже представляли, какую угрозу несут компьютерные вирусы. Вероятно, поэтому каждое сообщение о появлении нового вируса вызывало панику. Со временем у пользователей появился другой, не менее опасный синдром – вирусные мистификации. Хотя первые вирусные мистификации начали появляться приблизительно в 1988 году, а расцвет пришелся на конец 1990-х, рассказать об этом явлении стоит, так как мы не застрахованы от него и сегодня, когда скорость распространения любой информации на порядок выше.

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

Первой действительно удачной мистификацией следует считать вирус Good Times, появившийся в 1994 году в сети AOL. Все началось с того, что кто-то разослал сообщение с предупреждением: ни в коем случае нельзя было читать электронное письмо с заголовком Good Times. Это письмо якобы содержало страшный вирус, стирающий информацию на жестком диске. В послании говорилось, что о новом вирусе следует предупредить всех знакомых и сослуживцев. Затем шло подробное описание принципа действия вируса и способа избавиться от него. Стоит ли говорить о том, что такого вируса не существовало и в помине! Кстати, само письмо-предупреждение также имело заголовок Good Times.

Основные идеи Good Times используются и сегодня.

Другая мистификация, появившаяся в том же году, была запущена из меркантильных соображений. Некий Майк Рошенл отправил на несколько BBS-станций сообщения, в которых рассказал о появлении нового вируса, заражающего модемы, работающие на скорости 2400 бод. Народ поверил. В результате спрос и соответственно цены на более медленные модемы – 1200 бод – резко увеличились, а на более быстрые упали.

Следует, однако, отметить, что часто истерика возникала действительно из-за того, что кто-то находил вирус. Например, в 2001 году один из пользователей обнаружил, что файл sulfnbk.exe, лежащий в системной области, заражен вирусом – имеет подозрительное название и странный значок. Когда страсти утихли, выяснилось, что данный файл – это системная утилита, отвечающая за создание резервных копий файлов с длинными именами (название – от System Utility for Long FileName Backup – системная утилита для резервного копирования с сохранением длинных имен файлов), и у конкретного пользователя она действительно была заражена вирусом. Подобная история повторилась через год. Начавшись среди испаноговорящих пользователей Интернета в начале апреля 2002 года, мистификация быстро распространилась на англоговорящих к середине апреля. Под подозрение попал файл jdbgmgr.exe, принадлежавший пакету Visual J++ 1.1. И опять – сомнительный значок, непонятное название и действительно зараженный файл. Однако в данном случае, если пользователь не работал с пакетом Visual J++, работоспособность системы при удалении этого файла не нарушалась.

К чести вирусописателей, эта история не была забыта, и через некоторое время действительно появился вирус, имеющий именно такое имя файла.

В 2002 году появился новый вирус – Perrun (W32/Perrun-A, PE_PERRUN.A, Win32.Perrun, W32/Perrun, W32/Perrun.A), который неизвестные часто присылали на сайты антивирусных компаний, очевидно, как предупреждение: мол, мы и так можем. Этот вирус мог заражать графические файлы и текстовые файлы с расширением TXT. Новость подхватили информационные агентства, и народ, естественно, начал волноваться. При ближайшем рассмотрении оказалось, что для заражения файла и его последующего распространения необходима программа-кодировщик, которая фактически является вирусом и без которой данный вирус можно считать разве что шуткой.

Самая интересная и известная мистификация произошла в 1991 году. Ее автор Роберт Моррис сообщил, что стал жертвой нового вируса, распространяющегося по обычной электрической сети, и рассказал о мерах, которые необходимо принять для защиты от него. По словам Морриса, нельзя было делать следующие вещи:

• включать что-либо в электрические розетки;

• использовать батарейки (поскольку вирус пробрался на заводы по производству батареек и заразил все положительные клеммы готовой продукции);

• передавать друг другу файлы любыми способами;

• читать на компьютере текст, причем совершенно любой, даже сообщение самого Морриса;

• использовать последовательные порты, модемы, телефонные линии, процессоры, системную память, сетевое оборудование, принтеры, мониторы и клавиатуры;

• пользоваться электроприборами, газовыми плитами, водопроводом, огнем и колесным транспортом.

Хорошо, что многие сразу понимали, что это просто шутка.

Как видите, мистификации появляются от недостаточной компьютерной грамотности при огромном желании показать свои знания. Преклонение перед неизвестным часто порождает множество мифов. Чего стоят рассказы о том, что кактус способен защитить от компьютерного (а почему не мониторного?) излучения. Эта шутка появилась в каком-то журнале в номере за 1 апреля. Автор статьи подробно описал размер иголок кактуса, расстояние между ними, высоту и рекомендуемый вид колючего растения, а также наилучшее место для его расположения. Конечно, кактус на мониторе способен разве что улучшить настроение, но никак не остановить излучение.

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

Как отличить мистификацию от реального вируса?

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

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

• Если вы никогда не оставляли свои данные на специализированных сайтах и не регистрировали свою версию антивируса или подобной программы, то к любому письму, полученному от антивирусной лаборатории компании Microsoft или даже лично Била Гейтса, следует относиться с подозрением. С чего это они вдруг написали вам?

• Если письмо содержит подробную техническую информацию, отнеситесь к нему скептически. В описании Good Times говорилось, что процессор будет выведен из строя бесконечным циклом n-й сложности… Если вас просят удалить или запустить какой-то файл, без сомнений удаляйте письмо.

Большие компании дорожат временем, поэтому вместо описания проблемы они, скорее, ограничатся ссылкой на соответствующий сайт. Пусть вас не смущает, что в послании упоминаются известные антивирусные или правительственные организации. Если вы думаете, что вам действительно сообщают о чем-то важном, то, перед тем как начать паниковать, зайдите на сайт данной компании: среди новостей вы обязательно увидите предупреждение об опасности.

В Интернете есть несколько ресурсов, посвященных мистификациям. Самые популярные из них – сайт Роба Розенбергера (http://www.vmyths.com/hoax.cfm ) и сайт охотников за мистификациями Hoaxbusters (http://hoaxbusters.ciac.org/ ).

Все ведущие антивирусные компании имеют собственные страницы, посвященные мистификациям. И информацию можно найти на сайте Вирусной энциклопедии (http://www.viruslist.com/ ), Symantec (http://www.symantec.com/avcenter/index.html ) и McAfee (http://vil.mcafee.com/hoax.asp ).

И, конечно же, не забывайте о Google – на то он и поисковик, чтобы все знать!

 

1.5. Что за зверь – троянский конь?

Практически ни один разговор о компьютерных вирусах не обходится без термина «троянская программа», или «троянец». Чем это приложение отличается от вируса, каково его назначение и чем оно опасно? К этой категории относятся программы, выполняющие несанкционированные действия без ведома пользователя. По характеру действия троянец напоминает вирус: он может красть персональную информацию (прежде всего файлы паролей и почтовые базы), перехватывать данные, введенные с клавиатуры, реже – уничтожать важную информацию или нарушать работоспособность компьютера. Троянская программа может применяться для использования ресурсов компьютера, на котором она запущена, в неблаговидных или преступных целях: рассылки вирусов и спама, проведения DDOS-атак (Distributed Denial of Service – распределенных атак, направленных на нарушение работы сетевых сервисов).

Это могут делать и вирусы. Отличие заключается в том, что часто внешне троянец выглядит как вполне нормальная программа, выполняющая полезные функции. Однако у нее есть и «вторая жизнь», о которой пользователь не догадывается, так как часть функций приложения скрыты. Троянская программа отличается от вируса неспособностью к самораспространению: она не может сама копироваться на другие компьютеры, ничего не уничтожает и не изменяет в компьютере пользователя (кроме функций, которые нужны для ее запуска). Троян может прокрасться к ничего не подозревающему пользователю под видом ускорителя Интернета, очистителя дискового пространства, видеокодека, плагина к проигрывателю Winamp или исполняемого файла, имеющего двойное расширение.

Примечание

Хотя, в отличие от вируса, троянец не способен к саморазмножению, от этого он не становится менее опасным.

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

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

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

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

Отдельно следует упомянуть Trojan-Downloader и Trojan-Dropper, которые используются для установки на компьютеры троянских, рекламных (adware) или порнографических (pornware) программ. Кроме того, троянцы часто используются для создания троянских прокси-серверов или даже целых зомбисетей для рассылки спама или вирусов.

Как определить, что в системе поселилась троянская программа? Во-первых, согласитесь, странно, когда только что установленный плагин к Winamp не обнаруживается в списке. Во-вторых, при инсталляции трояна может быть выведено сообщение, причем как об успешном окончании установки (вроде Internet Exsplorer already patched), так и, наоборот, говорящее о том, что утилита не установлена, потому что системная библиотека несовместима с версией программы либо архив поврежден. Возможно, будут также выведены рекомендации по устранению ошибки. После долгих мучений пользователь вряд ли получит ожидаемый результат, скорее всего, оставит все попытки и будет пребывать в уверенности, что это полезная программа, которая просто не запустилась по непонятным причинам. Троянец тем временем пропишется в автозапуске. Например, в Windows необходимо быть внимательным к следующим веткам реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunservicesOnce

Возможно помещение ярлыка трояна в папку Автозагрузка (это встречается очень редко, так как присутствие вредоносной программы в этой папке легко обнаружить) или запись в файлы autoexec.bat, win.ini, system.ini. Часто разработчики принимают меры, чтобы трояна не было видно в окне Диспетчер задач, выводимом нажатием сочетания клавиш Ctrl+Alt+Delete. Наиболее сложные троянские программы умеют самостоятельно обновляться через Интернет, прятаться от антивирусов и расшифровывать файлы паролей. Управлять троянцем можно несколькими способами – от прямого подключения к компьютеру до проверки определенного сетевого ресурса, на который хозяин посылает e-mail, ICQ и IRC-команды.

Часто троянец состоит из двух частей: клиентской, установленной у хозяина, и серверной, работающей на машине жертвы. Такие программы также называют backdoor (потайной ход). Запустив программу-клиент, злоумышленник проверяет, находится ли сервер в Сети: если отклик получен, то удаленным компьютером можно управлять как своим.

Учитывая неумение троянских программ распространяться самостоятельно, простым и эффективным правилом, позволяющим избежать заражения, является загрузка файлов только из надежных источников. Несмотря на то что, в отличие от вирусных эпидемий, о троянских эпидемиях пока еще никто не слышал, да и вряд ли услышит, учитывая неспособность этих программ к самостоятельному размножению, они не менее (а, возможно, даже более) опасны, чем вирусы. Ведь часто такие программы создаются для персонального использования, и поэтому сегодняшние антивирусы не могут знать обо всех них. Это означает, что пользователь может долгое время работать на зараженной машине, не подозревая об этом. Чтобы найти троянское приложение, требуются специальные утилиты и наблюдение за сетевой активностью компьютера с помощью штатных средств операционной системы и установленного брандмауэра, о чем будет подробнее рассказано в главе 4.

 

1.6. Новаторские подходы хакеров – руткиты (rootkits)

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

Руткиты представляют собой более продвинутый вариант троянских коней. Некоторые антивирусные компании не разделяют руткиты и троянцы, относя их к одной категории зловредных программ. Однако троян прячется на компьютере, обычно маскируясь под известную программу (например, Spymaster выдавает себя за приложение MSN Messenger), а руткиты используют для маскировки более продвинутые методы, внедряясь глубоко в систему.

Изначально словом «руткит» обозначался набор инструментов, позволяющий злоумышленнику возвращаться во взломанную систему таким образом, чтобы системный администратор не мог его видеть, а система – регистрировать. Долгое время руткиты были привилегией Unix-систем, но, как известно, хорошие идеи просто так не пропадают, и в конце ХХ века стали массово появляться руткиты, предназначенные для Microsoft Windows. О руткитах заговорили, только когда на их использовании в своих продуктах была поймана фирма Sony. Сегодня эксперты предсказывают бум этой технологии, и в ближайшие два-три года ожидается массовый рост количества руткитов – вплоть до 700 % в год. Самое печальное, что их будут использовать не только злоумышленники: руткиты станут массово применяться в коммерческих продуктах, в первую очередь для защиты от пиратства. Например, недавно было объявлено, что компания Microsoft создала руткит, обнаружить который невозможно. Не исключено, что это изобретение встретится в новых версиях Windows.

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

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

• системы, работающие на уровне ядра (Kernel Level, или KLT);

• системы, функционирующие на пользовательском уровне (User Level).

Первый известный руткит для системы Windows, NT Rootkit, был написан в 1999 году экспертом в области безопасности Грегом Хоглундом в виде драйвера уровня ядра. Он скрывал все файлы и процессы, в имени которых встречалось сочетание _root, перехватывал информацию, набираемую на клавиатуре, и использовал другие способы маскировки.

Самым известным на сегодня руткитом является Hacker Defender. Эта программа работает в режиме пользователя и маскируется за счет перехвата некоторых API. Hacker Defender может обрабатывать сетевой трафик до того, как он будет передан приложению, то есть любая программа, работающая в сети, может быть использована для взаимодействия со взломщиком. Руткит умеет скрывать файлы и процессы, записи в реестре и открытые порты и может неправильно показывать количество свободного места на диске. Он прописывается в автозагрузку, оставляя для себя черный вход, и прослушивает все открытые и разрешенные брандмауэром порты на предмет 256-битного ключа, который укажет, какой порт использовать для управления. Hacker Defender перехватывает функции запуска новых процессов, что позволяет ему заражать все программы, запускаемые пользователем. Он полиморфен: для шифрования исполняемых файлов руткита обычно используется утилита Morphine.

Примечание

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

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

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

Популярен способ блокировки доступа к файлу: файл открывается в режиме монопольного доступа или блокируется с помощью специальной функции; удалить такой файл стандартными способами невозможно. Если попытаться воспользоваться отложенным удалением (во время следующей загрузки), например с помощью программы типа MoveOnBoot, то, скорее всего, запись об этой операции будет через некоторое время удалена либо файл будет переименован.

Любопытный способ защиты использует червь Feebs. Для борьбы с антивирусами, антируткитами и другими утилитами, пытающимися уничтожить его, он выставляет приманку – замаскированный процесс, не видимый на вкладке Процессы в окне Диспетчера задач. Любое приложение, которое попытается обратиться к этому процессу, уничтожается. Программа может устанавливаться как дополнительный модуль к браузеру Internet Explorer, изменяющий его функциональность. Стандартные средства контроля автозапуска типа msconfig не видят эти параметры, а применение дополнительных утилит для изучения системы требует от пользователя определенной квалификации, поэтому единственный действительно надежный способ уничтожить такую программу – отформатировать жесткий диск и заново установить операционную систему.

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

 

1.7. Уязвимости программ и хакерские технологии

 

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

Можно выделить три причины проникновения вирусов:

• ошибки при разработке программного обеспечения;

• ошибки в настройках;

• воздействие на пользователя (социальный инжиниринг).

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

 

Переполнение буфера

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

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

В материале «Википедии» (http://ru.wikipedia.org ) дано следующее определение данной уязвимости: «Переполнение буфера – это явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера».

В «Новом словаре хакера» Эрика С. Рэймонда сказано, что «переполнение буфера – это то, что с неизбежностью происходит при попытке засунуть в буфер больше, чем тот может переварить».

Представьте следующую ситуацию. Функция изменения пароля может воспринять пароль длиной не более 256 символов. Чаще всего никто не пользуется паролями длиннее 8–10 символов, поэтому разработчики не предусмотрели проверку строки ввода данных. При попытке ввести более 256 символов, если за данными находился адрес возврата функции, он будет перезаписан и в лучшем случае выполнение программы завершится с ошибкой. Хакеру, обнаружившему такой уязвимый участок, остается подставить в качестве адреса возврата правильный адрес, что переведет управление в любую точку программы на его выбор. В результате может быть выполнен любой произвольный код, который хакер поместил в указанную область памяти, с привилегиями, с которыми выполняется текущая программа.

Подобные ошибки в программном обеспечении находят чуть ли не ежедневно, но не всегда и не сразу устраняют. Для примера можно просмотреть статистику на специализированных сайтах. Согласно данным Secunia (http://secunia.com ) в Microsoft Windows XP Professional не устранено 30 из 201 уязвимостей, обнаруженных с 2003 по начало 2008 года, хотя имеющих статус highly critical (предельно опасный), которые позволяют удаленно выполнить код (то есть фактически получить доступ к системе), в этом списке уже нет. В среднем обнаруживается три-четыре уязвимости в месяц.

В Internet Explorer 7 не устранено 7 из 21 найденной уязвимости, и некоторые из них имеют статус highly critical. В среднем в месяц обнаруживается одна-две уязвимости. Если учесть все уязвимости, при которых можно удаленно выполнить код в системе, можно сделать вывод, что с этим браузером вообще опасно выходить в Интернет. Internet Explorer позволяет выполнение кода при обработке HTML Help ActiveX, файлов HTA, SWF, ZIP, BMP и JPEG, архивов FTP, Cookies, тега IFRAME и всплывающих окон, то есть для проникновения в систему троянца достаточно зайти на сайт и просмотреть/сохранить рисунки или архив ZIP.

Внимание!

Найденные уязвимости далеко не всегда устраняются сразу, часто они присутствуют годами.

В операционной системе Windows код Internet Explorer используют и многие другие приложения (почтовый клиент Outlook Express, Проигрыватель Windows Media и др.), отчего увеличивается вероятность поражения. Например, существует JPEG-эксплоит, который использует ошибку в системной библиотеке, возникающую при обработке графических JPEG-файлов. Эта ошибка позволяет заразить компьютер через любую программу – Outlook Еxpress или любой другой почтовый клиент, показывающий JPEG-картинки.

Следует также обратить внимание на возможность вывода в адресной строке Internet Explorer адреса, не соответствующего адресу загруженного сайта (такой вид атаки называется URL-спуфинг), и отображение всплывающих окон, которые, как думает пользователь, принадлежат просматриваемой в браузере странице, а также модификация заголовка окна или информации в строке состояния.

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

Давайте посмотрим, что на сегодня можно сказать о самом известном из бесплатных браузеров – Mozilla Firefox 2. В нем обнаружено 19 уязвимостей, из которых не устранено четыре. Самая опасная из них имеет статус less critical (ниже критического). Использовав эти уязвимости, получить полное управление компьютером невозможно, злоумышленник может лишь раскрыть некоторую системную информацию, поэтому следует признать, что положение этого браузера лучше, чем Internet Explorer.

Таким образом, оптимальным решением будет использование альтернативных приложений. Вместо Internet Explorer для серфинга можно применять, например, Mozilla Firefox, вместо Outlook Еxpress – The Bat! и т. д. У этих программ ситуация с безопасностью лучше.

Следует также периодически устанавливать обновления и использовать новые версии программ, в которых устранены старые ошибки (возможные новые ошибки – это уже другой вопрос). Правда, размер обновлений подчас до стигает нескольких десятков мегабайт и кроме Internet Explorer и Windows необходимо обновлять другие продукты, следовательно, трафик может быть накладным для бюджета. В таком случае следует ограничиться хотя бы обновлениями, устраняющими критические ошибки.

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

На борьбу с данной уязвимостью направлены такие утилиты, как, например, Stack-Guard. Первоначально она была разработана для Unix-систем, но в настоящее время ее аналог используется в Microsoft Visual Studio.NET и ProPolice компании IBM. В продуктах компании Microsoft, Windows XP SP2 и Server 2003 SP1 используется технология DEP (Data Execution Protection – защита от выполнения данных), которая делает секцию данных и стек неисполняемыми, что должно предотвращать подобный тип атак.

В некоторых процессорах Intel и AMD имеется специальный бит: в Intel – XD (eXecute Disable – запрет выполнения), в AMD – NX (No eXecute – нет выполнения), позволяющий аппаратно реализовать поддержку DEP.

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

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

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

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

 

Неправильная настройка программ

К сожалению, большинство пользователей часто сами создают проблемы. Например, браузеру часто разрешают запуск JavaScript, ActiveX и других элементов управления, с помощью которых легко установить шпионские программы. Некоторые почтовые клиенты умеют обрабатывать и выводить на экран HTML-контент, позволяющий выполнять любые действия. Из-за неправильных настроек почтовой программы или имеющихся в ней ошибок при просмотре содержимого полученных писем могут автоматически открываться файлы вложений. Иногда используется следующий прием: к сообщению прилагается исполняемый файл, а в заголовке MIME, который указывает на тип передаваемого файла, в поле Content-Type указывается, что это рисунок. Почтовый клиент, пытаясь загрузить рисунок, запускает исполняемый файл.

Примечание

MIME – Мultipurpose Internet Мail Extension – почтовый стандарт Интернета: кодирование в одном сообщении текстовой и нетекстовой информации (графики, архивов и пр.) для передачи по электронной почте.

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

Если вы предпочитаете использовать для серфинга Internet Explorer, установите высокий уровень безопасности. Для этого выполните команду меню Сервис → Свойства обозревателя, в появившемся окне перейдите на вкладку Безопасность, выберите категорию Интернет, в нижней части окна нажмите кнопку Другой, в открывшемся окне Параметры безопасности выберите из списка На уровень пункт Высокий и нажмите кнопку OK.

Пользователи часто работают в Интернете с правами администратора, соответственно, злоумышленник, получивший доступ к компьютеру посредством, например, атаки на Internet Explorer, получит те же права, поэтому для работы в Интернете следует завести отдельную учетную запись, наделив ее минимальными правами.

Червь Lovesan использовал уязвимость в сервисе Microsoft RPC (Remote Procedure Call – удаленное выполнение команд). И хотя эта уязвимость устранена, если служба DCOM (Distributed Component Object Model – модель распределенных компонентных объектов) вам не нужна, лучше отключить ее, а заодно и остальные ненужные сервисы. Чтобы проверить список запущенных служб, следует выполнить команду меню Пуск → Выполнить и в окне Запуск программы ввести cmd. В появившемся окне командной строки введите команду net start. На рис. 1.1 показан пример списка работающих служб.

Рис. 1.1. Вывод списка запущенных служб

Чтобы отредактировать список автоматически запускающихся служб, следует выполнить команду Пуск → Панель управления, выбрать категорию Производительность и обслуживание, затем Администрирование, после чего щелкнуть на ярлыке Службы. Двойной щелчок на выбранной службе покажет информацию о ее назначении и позволит изменить статус запуска. Если вы сомневаетесь в необходимости служб, можно постепенно отключать их, наблюдая за реакцией системы.

В Интернете существует достаточное количество руководств, подробно описывающих назначение системных служб Windows. Одно из них можно найти по адресу http://www.oszone.net/display.php?id=2357 . Желательно отключить нулевую сессию (Null Session), позволяющую подключиться к системе, основанной на Windows NT, без ввода имени пользователя и пароля. При включенной нулевой сессии анонимный пользователь может получить большое количество информации о конфигурации системы, которую сможет использовать в дальнейших действиях (список ресурсов, предоставленных для общего доступа, список пользователей, рабочих групп и т. д.). Открытый 139-й порт относится к категории серьезных уязвимостей. Чтобы отключить нулевую сессию, необходимо выполнить команду меню Пуск → Выполнить и набрать в строке Открыть команду regedit. В разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa для Windows 2000/XP/2003 нужно задать параметру restrictanonymous значение 2 (тип – REG_DWORD), для Windows NT3.5/NT4.0 – значение 1. Для Windows 2000/XP/2003 в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver нужно задать для параметра RestrictNullSessionAccess значение 1 (тип параметра – REG_DWORD), а для Windows NT3.5/NT4.0 это можно сделать в разделе системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters. Если таких параметров нет, их необходимо создать.

После внесения изменений требуется перезагрузка компьютера.

Следует также запретить скрытые ресурсы C$, D$, ADMIN$. Для этого проще использовать специализированные утилиты. Например, программа LanSafety позволяет сделать это одним щелчком (рис. 1.2).

Рис. 1.2. Рабочее окно программы LanSafety

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

Ранние версии Microsoft Word и Microsoft Ехсеl вместе с открытием документа автоматически запускали сценарии, написанные на языке Visual Вasic for Аррlication, что приводило к заражению компьютера макровирусами. Последние версии этих приложений запрашивают у пользователя подтверждение запуска сценариев.

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

 

Социальный инжиниринг

Среди специалистов по информационной безопасности распространено мнение, что компьютерная защита – это постоянная борьба с глупостью пользователей и интеллектом хакеров. Отсюда следует, что наиболее уязвимое звено в защите – человек. Существуют и системные уязвимости, которые становятся источником массовых эпидемий (достаточно вспомнить червь Lovsan aka W32. Blaster, использовавший уязвимость в RPC DCOM). Здесь, к сожалению, пользователь бессилен, и бороться с этим можно либо постоянно устанавливая всевозможные заплатки, либо сменив операционную систему на более безопасную, а от последствий действий пользователя порой не спасет ничто.

Внимание!

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

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

• недостаточную подготовку;

• желание выделиться;

• тягу мгновенно разбогатеть или получить что-то даром;

• жалость и милосердие;

• желание посмотреть «интересные» картинки;

• интерес к продукту, который нужен некоторой части населения или который невозможно достать;

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

• доверие к заплаткам, якобы направленным пользователю заботливым сотрудником компании Microsoft.

В последнее время начали появляться ложные сообщения от сотрудника антивирусной компании о вирусе, якобы найденном в отправленном пользователем сообщении, или о начале новой эпидемии. Чтобы обезопасить пользователя, «доброжелатель» прикрепляет к письму файл, с помощью которого этот вирус можно удалить. После запуска этого файла на компьютере будет установлен троянец. Чтобы не вызвать подозрение пользователя, в письме часто обращаются совсем к другому человеку. При этом в теме сообщения может говориться, что «найден классный сайт, продающий дешевый товар»; к самому письму могут прикрепляться фотографии «со студенческой вечеринки» с просьбой «никому не показывать»; в письме может быть ссылка на «очень нужную программу» и т. д. Это делается, чтобы убедить получателя, что письмо попало к нему случайно, но информация может быть для него интересной.

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

Операционная система не всегда способна правильно выдать информацию о запускаемом файле. По умолчанию Microsoft Windows не показывает зарегистрированные расширения имен. В результате имя файла foto.jpg.ехе будет показано как foto.jpg. Для маскировки реального расширения применяется двойное расширение вроде xxx.jpg.exe (в данном случае может помочь то, что некоторые почтовые серверы отказываются пропускать исполняемые файлы) или добавляется большое количество пробелов, из-за чего имя файла отображается не полностью.

Совет

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

Значки – это отдельная тема. Большинство пользователей до сих пор думают, что запускаемую программу определяет значок. Щелкнув на значке с изображением калькулятора, они ожидают, что запустится именно калькулятор, а не какой-нибудь W32.Bagle-А. Этим пользуются злоумышленники: высылают файл с двойным расширением типа creditcard.doc.exe и значком, обычно используемым для документов Microsoft Word. Второе расширение чаще всего скрыто, и пользователь не сомневается, что по почте пришел именно текстовый документ.

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