18+
реклама
18+
Бургер менюБургер меню

Дмитрий Артимович – Искусство цифровой самозащиты (страница 4)

18

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

Один из последних случаев массового заражения компьютерным вирусом произошел в далеком 2004 году. Началось всё с того, что вирус ILoveYou был разослан на почтовые ящики с Филиппин в ночь с 4 на 5 мая 2000 года. В теме письма содержалась строка ILoveYou, отсюда и его название, а к письму был приложен скрипт LOVE-LETTER-FOR-YOU.TXT.vbs[25]. В большинстве случаев пользователь открывал вложение. При открытии вирус рассылал копию самого себя всем контактам в адресной книге Microsoft Outlook. Он также перезаписывал файлы определенных типов и распространялся через IRC-каналы, создавая файл LOVE-LETTER-FOR-YOU.HTM в системном каталоге Windows. В общей сложности вирус поразил более 5 миллионов компьютеров по всему миру. Предполагаемый ущерб, который червь нанес мировой экономике, оценивается в размере до 15 миллиардов долларов, за что вирус вошел в Книгу рекордов Гиннесса как самый разрушительный в мире.

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

Полиморфные вирусы

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

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

Метаморфные вирусы

Метаморфный вирус – вирус, который изменяет свой собственный код. Он переводит свой собственный код и создает временное представление. Затем он редактирует это временное представление и записывает себя обратно в обычный код. Другими словами, он переводит и переписывает свой собственный код, чтобы каждый раз копии вируса выглядели по-разному.

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

Черви

Сетевой червь – разновидность вредоносной программы, самостоятельно распространяющейся через локальные и глобальные (интернет) компьютерные сети.

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

Ранние эксперименты по использованию компьютерных червей в распределенных вычислениях провели в исследовательском центре Xerox в Пало-Альто Джон Шоч (John Shoch) и Йон Хупп (Jon Hupp) в 1978 году. Термин «червь» возник под влиянием научно-фантастических романов «Когда ХАРЛИ исполнился год» Дэвида Герролда (1972), в котором были описаны червеподобные программы, и «На ударной волне» (англ.) Джона Браннера (1975), где вводится сам термин.

Червь Морриса

Одним из наиболее известных компьютерных червей является червь Морриса, написанный в 1988 году Робертом Моррисом-младшим, который был в то время студентом Корнеллского Университета.

Роберт родился в 1965 году, его отец был специалистом в области криптографии, работал в Bell Labs и помогал в разработке Multics и Unix. То есть будущему программисту было у кого поучиться.

Роберт хорошо учился в школе, поэтому постигать азы науки парня отправили в Гарвард, после чего он продолжил получать образование в Корнеллском университете. Будучи студентом первого курса, Моррис-младший и натворил дел. «Всё в познавательных целях», – уверял позже Роберт.

Дополнительной драмы добавляло то, что его отец в то время уже являлся сотрудником Агентства национальной безопасности. Он занимал руководящий пост в подразделении, ответственном за IT-безопасность систем федерального правительства.

Червь Морриса нередко называют первым сетевым червем, однако он может считаться таковым лишь потому, что это первая подобная программа, расползшаяся чуть ли не по всему интернету. Интернет, напомним, тогда был совсем небольшим и имел мало общего с тем, что позже придумал Тим Бернерс-Ли[26].

Роберт задумывал свое детище якобы как экспериментальный проект. Он должен был измерить тот самый интернет – об этом программист заявил позже. Оригинальный мотив в 1988 году мог быть иным. На это указывает и то, что парень тщательно пытался замести следы, отправляя червя в свободное плавание из кампуса MIT.

Код писался для запуска на компьютерах VAX компании Digital Equipment Corporation и SUN под управлением BSD UNIX[27]. Роберт использовал несколько уязвимостей, в том числе в программах sendmail (отвечает за работу с электронной почтой) и fingerd (получение некоторых данных о пользователе). Также эксплуатировались иные дыры, позволявшие узнать пароли локального пользователя.

В sendmail, например, после ряда исправлений имелся баг: в определенных условиях можно было запустить дебаг (внезапно: отправив команду debug). Тогда sendmail позволяла вместо адресов указывать дополнительные инструкции. На деле, конечно, всё не так просто, но и особых изысков Роберту придумывать не пришлось.

Парень посчитал, что админы очень скоро заметят вторжение и предпримут шаги для защиты. Например, заставят червя думать, что его копия уже установлена. 23-летний программист учел и это. Его код действительно проверял наличие копии себя на чужом компьютере, однако в 14 % случаев устанавливался, невзирая на полученный отклик. Есть фейк? Всё равно установлюсь. Есть другая копия? Да кто ж поймет, всё равно установлюсь.

Оказавшись на удаленном компьютере (первыми под удар попали знакомые ему скрытые университетские и исследовательские сети), червь сканировал окружение на наличие других компьютеров и копировался на них. Роберт не ожидал прыти, которую продемонстрировал его код. Ведь условие 14 %, как несложно догадаться, хоть и выполнялось, но было бессмысленным: программа наматывала «круги» по сети.

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

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

Роберт Моррис испугался того, что натворил. Как следует из отчета по итогам расследования инцидента, он предпринял попытки остановить эпидемию («рубильник», само собой, предусмотрен не был), но не слишком активные. Студент не стал во всеуслышание рассказывать о черве и информировать ответственных, однако позвонил приятелю с просьбой опубликовать анонимные извинения и руководство по «лечению».

Инженеры из Беркли активно работали над поиском и препарированием компонентов программы. Через 12 часов им удалось продумать все необходимые алгоритмы и подготовить заплатки, однако их распространению мешал… да, червь Морриса, из-за которого целые сети либо «лежали», либо были отключены от внешнего мира. Потребовалось несколько дней, чтобы успокоить бурю, поднятую начинающим программистом.

Для понимания масштабов «шухера», который натворил червь, перечислим агентства, организации и ведомства, привлеченные к решению проблемы. Это Центр национальной компьютерной безопасности, Национальный институт науки и технологий, Агентство военной связи, DARPA, Министерство энергетики США, Лаборатория баллистических исследований, Ливерморская национальная лаборатория имени Лоуренса, ЦРУ, Калифорнийский университет в Беркли, Массачусетский технологический институт, институт SRI International и ФБР.

Считается, что червь Морриса заразил около 6 тыс. компьютеров – примерно 10 % от всех, что были подключены в то время к интернету. Ущерб в зависимости от важности владельцев компьютеров оценивали в диапазоне от $200 до $53 тыс. за систему (традиционно речь идет о «предполагаемом», то есть гипотетическом ущербе). Власти называли общую сумму ущерба в диапазоне от $100 тыс. до $10 млн, которая с годами превратилась в $95–100 млн и 60 тыс. зараженных компьютеров. Более вероятными представляются всё же первоначально озвученные цифры.