Атаки системы снаружи

Содержание

Слайд 2

6.1 ВИРУСЫ

6.1 ВИРУСЫ

Слайд 3

6.1.1 Понятие вируса

6.1.1 Понятие вируса

Слайд 4

Вирус — это программа, которая может размножаться, присоединяя свой код к другой программе

Вирус — это программа, которая может размножаться, присоединяя свой код

к другой программе
Слайд 5

География развития «вирусописательства» США, Европа — начало 80-х гг.; Болгария, Индия

География развития
«вирусописательства»
США, Европа — начало 80-х гг.;
Болгария, Индия — середина 80-х

гг.;
Россия (тогда ещё СССР) — конец 80-х гг.;
Китай, Тайвань, другие страны Азии — начало и середина 90-х гг.
Слайд 6

Классификация вирусов по способу размножения; по способу действия; по уровню наносимого вреда.

Классификация вирусов
по способу размножения;
по способу действия;
по уровню наносимого вреда.

Слайд 7

6.1.2 Сценарии нанесения ущерба вирусами

6.1.2 Сценарии нанесения
ущерба вирусами

Слайд 8

Вы действительно хотите форматировать жесткий диск? OK

Вы действительно хотите форматировать жесткий диск?

OK

Слайд 9

ПРИВЕТ ОТ КОМПАНИИ GENERAL SHULER! ДЛЯ ПРИОБРЕТЕНИЯ КЛЮЧА ДЕШИФРАЦИИ К ВАШЕМУ

ПРИВЕТ ОТ КОМПАНИИ GENERAL SHULER!
ДЛЯ ПРИОБРЕТЕНИЯ КЛЮЧА ДЕШИФРАЦИИ К

ВАШЕМУ ЖЕСТКОМУ ДИСКУ, ПОЖАЛУЙСТА. ВЫШЛИТЕ $100 В МЕЛКИХ НЕМАРКИРОВАННЫХ КУПЮРАХ НА А/Я 2154. ПАНАМА-СИТИ. ПАНАМА. СПАСИБО. МЫ РАДЫ СОТРУДНИЧАТЬ С ВАМИ.
Слайд 10

main( ) {while (1) fork( );}

main( ) {while (1) fork( );}

Слайд 11

6.1.3 Вирусы-компаньоны

6.1.3 Вирусы-компаньоны

Слайд 12

6.1.4 Вирусы, заражающие исполняемые файлы

6.1.4 Вирусы, заражающие
исполняемые файлы

Слайд 13

linclude / * стандартные заголовки POSIX * / #include #include #include

linclude / * стандартные заголовки POSIX * /
#include


#include
#include
#include
struct stat sbuf; / * для вызова lstat, чтобы убедиться, что файл
/ * представляет собой символьную связь * /
search(char * dir_name)
{ / * рекурсивный поиск исполняемых файлов * /
DIR * dirp; / * указатель на открытый каталог * /
struct dirent * dp; / * указатель на запись каталога * /
dirp = opendir(dir_name); / * открыть этот каталог * /
if (dirp == NULL) return; / * каталог не открывается * /
while (TRUE) {
dp = readdir(dirp); / * прочитать следующую запись каталога * /
if (dp == NULL) { / * NULL означает, что достигнут конец каталога * /
chdir (".."); / * вернуться в родительский каталог * /
break; / * выход из цикла * /
}
if (dp->d_name[0] == '.') continue; / * пропустить каталоги . и .. * /
lstat(dp->d_name. &sbuf); / * является ли запись символьной ссылкой? * /
if (S_ISLNK(sbuf.st_mode)) continue; / * пропустить символьные ссылки * /
if (chdir(dp->d_name) == 0) { / * если chdir завершится успешно.
/ * то это должен быть каталог * /
search("."); / * да, войти в него и продолжить поиск в нем * /
} else { / * нет (файл), заразить его * /
if (access(dp->d_name.X_OK) ==0) / * если файл исполняемый, заразить его * /
infect(dp->d_name);
}
closedir(dirp);} / * каталог обработан; закрыть его * /
}

Рекурсивная процедура, ищущая исполняемые файлы в системе UNIX

Слайд 14

Исполняемый файл с вирусом

Исполняемый файл с вирусом

Слайд 15

6.1.5 Резидентные вирусы

6.1.5 Резидентные вирусы

Слайд 16

6.1.6 Загрузочные вирусы

6.1.6 Загрузочные вирусы

Слайд 17

Перехват прерываний вирусом

Перехват прерываний вирусом

Слайд 18

6.1.7 Вирусы драйверов устройств

6.1.7 Вирусы драйверов
устройств

Слайд 19

6.1.8 Макровирусы

6.1.8 Макровирусы

Слайд 20

6.1.9 Вирусы, заражающие исходные тексты программ

6.1.9 Вирусы, заражающие
исходные тексты
программ

Слайд 21

#include run_virus( );

#include
run_virus( );