Основы ИБ
.pdfВызванная для исполнения заражѐнная программа представляет собой набор кодов вируса V, который размещѐн в начале программы, и тела программы, являющейся про-
граммой-носителем вируса. Тело программы является по существу незаражѐнной про-
граммой системы, предназначенной для реализации какой-либо процедуры или функции.
Рассмотрение предложенной схемы позволяет продемонстрировать механизм заражения вирусом и исполнение программы-носителя.
Вирус V в программе-носителе первым берѐт управление на себя, прежде всего,
реализуя функцию инфицирования с помощью своего ядра VIR. Ядро ищет незаражен-
ную программу путѐм сканирования памяти компьютера, пропуская уже заражѐнные этим вирусом программы, в которых первым стоит признак вируса M. Определив незаражѐн-
ную программу, ядро VIR выделяет в ней (как правило, в еѐ начале) место для записи кода вируса. Затем переносит код вируса на выделенное место, в данном примере затирая на-
чальные коды найденной незаражѐнной программы, тем самым, уничтожая еѐ как функ-
циональный элемент программного обеспечения системы. Однако она может быть вызва-
на для исполнения в последующих процессах, и при этом, став инфицированной програм-
мой, продолжить процесс заражения.
После заражения первой найденной неинфицированной программы ядро вируса может быть настроено на дальнейшую реализацию процесса заражения до выполнения какого-то определѐнного условия. А может передать управление обрабатывающей про-
грамме WOR, которая либо реализует свои деструктивные действия, либо, если не выпол-
нено предусмотренное условие реализации, сразу передать управление программе-
носителю. Программа-носитель выполняет свои функции. Инфицирование произошло, но пользователь, вызвавший программу-носитель и получивший результат от еѐ выполнения,
не замечает факта инфицирования.
Данная схема представляет собой элементарный процесс заражения системы фай-
ловым вирусом, причѐм с порчей вновь заражѐнной программы. Существуют технологии построения файлового вируса, когда вновь заражѐнная программа остаѐтся неиспорчен-
ной, а заложенный в него вирус впадает в режим «спячки» до определѐнного условия.
В общем случае, когда вирус, заражая программу, сохраняет еѐ, он может сущест-
вовать в следующих четырех фазах:
распространение в вычислительной системе или сети;
"спячка";
- запуск;
разрушение программ, данных, среды функционирования или какие-либо
другие деструктивные действия.
15
Фаза распространения обязательна для любой программы-вируса. В этой фазе в ре-
зультате загрузки и выполнения программы, зараженной вирусом, происходит заражение других программ путем многократного самокопирования вируса в другие программы и системные области.
Фаза "спячки" может использоваться автором вируса для его сокрытия и создания у пользователя уверенности в правильной работе системы.
Запуск вируса осуществляется, как правило, после некоторого события, например наступления определенной даты или заданного числа копирований.
В последней фазе происходит разрушение программ и данных или какие-либо дру-
гие негативные действия, предусмотренные нарушителем.
Вирусы могут записываться в виде позиционно независимого или позиционно за-
висимого кода. Позиционно независимый вирус обычно дописывается в конце исходной программы и изменяет ее первые три байта для передачи управления самому себе.
Позиционно зависимый вирус, размещаемый в начале программы, обычно копиру-
ет исходные начальные команды в конец области данных программы. Такие вирусы должны иметь подпрограмму перемещения, которая обеспечивает восстановление исход-
ной программы. Это необходимо для того, чтобы исходный код, перемещенный вирусом,
мог быть восстановлен в первоначальном положении и выполнен корректно.
Многие вирусы не опасны и созданы не злонамеренно, а ради шутки или экспери-
мента с существующей техникой. Степень опасности вируса характеризуется потенциаль-
но наносимым им ущербом.
Можно предложить следующую шкалу степени опасности вирусов:
недеструктивное проявление (звуковые или визуальные эффекты), все зара-
женные файлы могут быть корректно восстановлены;
слабо деструктивное проявление, из-за вносимых ошибок он может некор-
ректно заразить и тем самым испортить некоторые программы;
воздействие на систему (эффект замедления, блокировка клавиатуры, про-
цессов), никакие файлы преднамеренно не портятся;
слабо деструктивное воздействие (помимо выше названных эффектов пред-
намеренно портятся или стираются программные или другие файлы), в це-
лом файловая система остается работоспособной;
деструктивное воздействие (вирус частично портит некоторые важные части файловой системы на гибком или жестком диске), но остаѐтся возможность их восстановления вручную;
16
сильно деструктивное воздействие (вирус полностью портит файловую сис-
тему на жестком диске, произвольным образом форматирует винчестер и т.
п.);
разрушающее воздействие (вирус физически портит аппаратуру: прожига-
ние экрана монитора, вывод из строя микросхем за счет нарушения теплово-
го режима и т. п.).
6.3Видовая классификация компьютерных вирусов
Обнаруженные и проработанные по своим свойствам репродукции, местам разме-
щения и возможностям реализации деструктивных функций компьютерные вирусы могут быть выделены в группы:
файловые вирусы, поражающие программы пользователей (прикладные программы);
вирусы, поражающие общесистемные программы;
загрузочные вирусы (бутовые);
резидентные вирусы;
полиморфные вирусы;
стелс-вирусы;
макро-вирусы.
Файловые вирусы входят в систему вместе с программой-носителем пользователя по еѐ вызову для исполнения. В любом случае программа-носитель исполняется по назна-
чению. Но, возможны два варианта их алгоритма исполнения: программа-носитель, зара-
жая вирусом другие программы, уничтожается как корректный элемент процесса, либо вирус сохраняет еѐ в исходном состоянии, обеспечивает размножение себя и дальнейшее исполнение программы-носителя в процессах. В любом случае вирус преобразует про-
грамму таким образом, что управление при вызове программы, прежде всего, предостав-
ляется кодам вируса.
Вирусы, поражающие общесистемные программы следует выделить в отдельную группу. Это вирусы, нацеленные на системные программы, различные драйверы и утили-
ты.
Из них наибольшие возможности для заражения имеет командный процессор, ко-
торый находится в дисковом файле COMMAND.COM. Он менее чувствителен к произво-
17
димым в нѐм изменениям. Кроме того, можно разместить вирусы во внутренних областях памяти (стек, буфер и т.д.), что позволяет обеспечить увеличение размера программы.
Кроме того, отличительной особенностью компьютерных вирусов для
COMMAND.COM является лѐгкость, с которой этот вирус может сделать себя резидент-
ным.
Загрузочные вирусы являются отдельным видом вирусов, поражающим программу-
загрузчик операционной системы. Иначе их называют «бутовыми вирусами», так как про-
грамма-загрузчик размещается в BOOT секторе. Соответственно «бутовые вирусы» раз-
мещаются либо в секторе BOOT2 при загрузке системы с гибкого диска, либо в секторе
BOOT1 при загрузке с винчестера.
Резидентные вирусы, имплантируясь в систему, остаются в оперативной памяти после исполнения программы-носителя. Эти вирусы после выполнения программы-
носителя не покидают оперативную память и, следовательно, могут выполнять свои функции в последующих процессах. Это даѐт им преимущество по отношению к другим заражѐнным программам, которые получают управление только при их исполнении. Базо-
вое свойство резидентного вируса – это решение двух задач:
остаться в оперативной памяти компьютера послепервичного исполнения программы-носителя;
регулярно получать управление от пользовательских задач или операцион-
ной системы, пока не произошла перезагрузка компьютера.
Полиморфные вирусы модифицируют свой код в заражѐнных программах таким образом, что два экземпляра одного и того же вируса могут не совпадать ни в одном бите.
При этом вирусы не только шифруют свой код по различным алгоритмам, но и со-
держат код генерации для шифрования и дешифрования, что отличает их от обычных шифруемых вирусов, которые также могут шифровать участки своего кода, но имеют при этом постоянный код шифрования и дешифрования.
Стелс-вирусы после запуска оставляют в оперативной памяти специальные моду-
ли, перехватывающие обращение программ к дисковой подсистеме компьютера. Если та-
кой модуль обнаруживает, что программа пытается прочитать заражѐнный файл или сис-
темную область диска, он подменяет читаемые данные, имитируя отсутствие вируса на диске. Тем самым он пытается обмануть антивирусные программы, и при удачном резуль-
тате вирус остаѐтся незамеченным.
Макро-вирусы связаны с появлением макро-языков для автоматизации выполнения повторяющихся действий. Многие табличные и графические редакторы, системы проек-
тирования, текстовые процессоры имеют свои макро-языки. Эти макро-языки, как прави-
18
ло, имеют сложную структуру и развитый набор команд. Макро-вирусы являются про-
граммами на макро-языках, встроенные в такие системы обработки данных. Для своего размножения вирусы этой группы используют возможности макро-языков и при их по-
мощи переносят себя из одного заражѐнного файла в другие.
6.4 Методы и средства антивирусной защиты
Методы и средства антивирусной защиты по своему характеру действия можно разделить на четыре вида:
создание условий невосприимчивости к заражению компьютерными виру-
сами;
обнаружение и защита от вирусов в статике процессов;
обнаружение и защита от вирусов в динамике процессов;
организационно-правовые меры противодействия вирусным атакам.
6.4.1 Невосприимчивость к заражению вирусами
Для биологических систем существует понятие иммунитета в отношении зараже-
ния вирусом, то есть способности противодействия заражению организма или причине-
нию ему вреда.
Методы создания своеобразного иммунитета существуют и в компьютерной виру-
сологии.
Одной из причин широкого распространения компьютерных вирусов является стандартизация программного обеспечения компьютерных и телекоммуникационных сред. Вирусы активно используют стандартную систему прерываний, общепринятую мар-
кировку исполняемых файлов, единую структуру организации хранения данных.
Целенаправленное и, безусловно, временное на период неактивного состояния про-
грамм, изменение этих компонентов сделает систему нестандартной, и, следовательно,
вирус, использующий стандартные уязвимости, не сможет заражать и размножаться в из-
менѐнной среде.
В качестве примера подобного рода преобразований наиболее критичных программ можно привести простейшее защитное мероприятие – переименование пользовательских программ с расширением .COM и .EXE в файлы с другим расширением, например, .XXX
и .YYY соответственно. Тогда вирусы, заражающие программы пользователя и исполь-
19
зующие для их идентификации расширения .COM и .EXE, не смогут репродуцировать се-
бя в переименованные файлы.
Для запуска на выполнение переименованную программу необходимо скопировать и копию переименовать в исходное состояние.
Иммунитет можно создать и за счѐт так называемых прививок.
Большинство вирусов не заражает повторно уже заражѐнную программу. При этом вирус проверяет своѐ наличие в программе (или в оперативной памяти в случае резидент-
ного вируса) по определѐнному, принадлежащему только ему признаку. В качестве при-
знаков вирус обычно рассматривает уникальный набор символов или наличие нестан-
дартного прерывания (для резидентных вирусов).
Если этот признак для известных вирусов заранее уже внесѐн, хотя на самом деле программа не заражена, то такая программа воспринимается вирусом как инфицирован-
ная, и заражения не происходит.
Невосприимчивость к заражению вирусом можно добиться и процедурой вакцина-
ции. Создаѐтся специальная программа-вакцина, которая внедряется в защищаемую про-
грамму, подобно вирусу, и запоминает ряд характеристик этой программы. В качестве ха-
рактеристик могут быть:
длина некоторых исполняемых модулей;
последовательность машинных слов в окрестности точки входа в програм-
му;
вычисление и запоминание контрольной суммы программы и т.д.
При запуске защищѐнной программы первой получает управление программа-
вакцина (сразу или после вируса, если защищѐнная программа заражена, но не испорче-
на). Программа-вакцина проверяет текущее состояние исполняемой программы и пред-
принимает в случае еѐ заражения соответствующие действия (выдаѐт сообщение, осуще-
ствляет восстановление).
Все перечисленные приѐмы и методы требуют соответствующих операционных за-
трат и могут быть использованы при определѐнных условиях в отношении критичных программ. Для автоматизированных систем в целом необходимо иметь общесистемный аппарат обнаружения и противодействия вирусам. Такие антивирусные комплексы созда-
ны, например, комплекс программ AIDSTEST Д.Н. Лозинского или комплекс Dr.Web. Ос-
новными их особенностями являются режимы использования в так называемой статике процессов.
6.4.2 Защита от вирусов в статике процессов
20
Относящиеся к данному виду антивирусной защиты комплексы программ предна-
значены для обнаружения вирусов в программных продуктах и отдельных программах.
Они используются перед тем, как программы впервые внедряются в компьютерные сис-
темы, или для тестирования самой компьютерной среды на наличие вирусов перед еѐ функциональной активизацией. Запуск антивирусных программ осуществляется по ини-
циативе пользователя или администратора безопасности перед вводом новых программ-
ных продуктов в среду, активизацией системы, а также в случае возникновения нештат-
ных ситуаций, подозрительных с точки зрения возможного заражения.
Задача обнаружения заражения вирусами – наиболее важная проблема в антиви-
русной борьбе. В общем случае она решается двумя способами:
обнаружение изменений в программных кодах;
обнаружение признаков конкретных вирусов в программах до начала их ра-
боты.
Основными видами антивирусных программ являются следующие виды.
Программы-ревизоры. Контроль изменений в этих программах осуществляется так же, как и в программах-вакцинах. Отличие заключается в том, что характеристики испол-
няемых файлов запоминаются в отдельном файле. Сами программы являются самостоя-
тельными, и именно они относятся к группе программ-ревизоров.
Программы этой группы основаны на процедуре сравнения контрольной эталонной информации о файлах, загрузочных секторах дисков (например, контрольных сумм кодов или других контрольных параметров) с текущим состоянием системы, которое оценивает-
ся по тем же параметрам. Цель выполнения этой процедуры – обнаружение изменений,
производимых вирусами, и локализация заражѐнных программ и компонентов системы.
Программа-ревизор сначала сохраняет контрольные суммы (параметры) контролируемых файлов и секторов, а впоследствии проверяет соответствие эталонных и текущих значений контрольных сумм (параметров).
Программы-ревизоры обладают теми же недостатками, что и программы-вакцины:
не обнаруживают заражение, если оно произошло до установки средств контроля.
Программы детекторы и фаги. Эта группа программ использует другой метод об-
наружения вирусов. Обнаружение осуществляется путѐм поиска конкретных признаков присутствия вирусов и является стандартной задачей поиска соответствующей заражѐн-
ному состоянию строки байтов (символов) или битов (кодов). Для этого могут использо-
ваться стандартные средства или специализированные программы.
21
Программы-детекторы определяют наличие вирусов в оперативной памяти, фай-
лах и загрузочных секторах, но не удаляют их.
Эти средства основаны на сканировании памяти компьютера, файлов на дисках, за-
груженных секторов дисков с целью обнаружения известных антивирусной программе типов вирусов. Поиск осуществляется путѐм проверки кода программы или признаков ви-
русов.
Важнейшим требованием к этим программам является оперативность добавления характеристик (поисковых параметров) новых типов вирусов в очередные версии про-
граммы для обеспечения наиболее полной эффективности обнаружения. Именно поэтому разработчики антивирусных комплексов, как правило, сопровождают свои программные продукты, и при их поставке пользователям или обновлении постоянно обновляют арсе-
нал контролируемых вирусов.
Перспективными представляются адаптивные и самообучающиеся средства, авто-
матически расширяющие список вирусов, которым они противостоят. К ним, в первую очередь, относятся средства, содержащие постоянно пополняемые базы вирусов. Наибо-
лее привлекательной выглядит идея создания самообучающейся системы, которая при встрече с неизвестным ей вирусом автоматически анализирует его и добавляет в свой кон-
тролируемый арсенал.
Программы-фаги (доктора) отличаются от программ-детекторов только тем, что кроме обнаружения вирусов и их локализации они обладают свойствами восстановления дисков и программ (если это возможно) и удаления вирусов.
6.4.3 Защита от вирусов в динамике процессов
Предотвратить нежелательные действия вируса в ходе функционирования АС (ре-
продуцирование, разрушения) можно, используя различные меры ограничения и изоля-
ции:
защиту от записи;
разделение на логические диски;
защиту от НСД и т.д.
Однако из-за недостаточной надѐжности этих методов чаще разрабатывают спе-
циализированные программы-мониторы и реализуют технико-методические решения по-
строения АС в целом.
22
Программы-сторожа. Это резидентные программы, которые ставят своей целью не пропустить вирус в систему, перехватить различные «подозрительные» действия, ис-
пользуемые вирусами для репродуцирования и разрушений.
Они контролируют обращения к дискам с помощью средств операционной систе-
мы, запрещают производить записи в определѐнную группу файлов, в некоторые сектора дисков, выполняют другие системные функции.
Фактически, это попытка добавить в операционную систему отсутствующие сред-
ства защиты, усилить их.
Программы такого рода имеют ряд слабостей:
вирусы могут обходить их, обращаясь непосредственно к системе вво-
да/вывода (BIOS) минуя операционную систему;
действия, которые программы-сторожа отслеживают и блокируют, являются стандартными для различных программ, что порождает множество сообще-
ний, из которых трудно выделить сообщения, обусловленные действиями вируса;
вирус сам может действовать как программа-сторож, перехватывая запросы
со стороны программы защиты на опасные действия (особенно это касается резидентных вирусов).
Интеллектуальные антивирусные методики и средства. Недостатки методов и средств определения заражения вирусами в статике процессов (программы ревизоры, де-
текторы и фаги) и динамического мониторинга с помощью программ-сторожей потребо-
вали поиска более совершенных подходов к построению антивирусных систем на основа-
нии соответствующих методик и технических решений по построению АС в целом.
При использовании ситуационной методики обнаружения вирусов их обнаружение осуществляется на основе оценки общей картины поведения системы в целом или еѐ час-
ти. При возникновении аномалий, которые не свойственны нормальному поведению сис-
темы или компьютера (нештатные ситуации, присущие заражению вирусом), включаются защитные механизмы.
В качестве средств обнаружения аномалий используются программы-агенты, ко-
торые эмулируют существующие части системы (фиктивные процессы, фиктивные файлы
.doc, .exe). В случае появления вируса в системе возникают возмущения, которые опреде-
ляются программами-агентами. Сама программа-агент может быть источником возмуще-
ния (например, заражѐнный вирусом фиктивный файл .doc). Из зафиксированных возму-
щений выявляется их первопричина.
23
Когда источником возмущения является сама программа-агент, антивирусная сис-
тема имеет возможность провести еѐ анализ и выявить изменения, на основе которых уже классическими средствами выявляются заражѐнные объекты системы. Затем программа-
агент уничтожается.
Ситуационная методика может быть функционально расширена путѐм введения памяти. Организуется память на виды возмущения системы и исследование изменений программ-агентов. Повышается адаптивность в отношении вновь появляющихся вирусов,
в результате чего антивирусная система может реагировать на вирусы, ранее ей не извест-
ные.
В реализации подобного вида методик существуют сложности, связанные с челове-
ческим фактором. Имеется постоянный источник возмущения – человек (пользователь,
оператор и т.д.). Поэтому для еѐ эффективной работы необходимо встраивать анализатор поведенческих функций человека.
Демилитаризованные зоны. Распределѐнная обработка информации при клиент-
серверных технологиях на базе локальных вычислительных сетей (ЛВС) требует отдель-
ных архитектурных технических решений в целях антивирусной защиты при взаимодей-
ствии системы с внешними телекоммуникационными сетями. В особенности это касается взаимодействия с открытой глобальной сетью ИНТЕРНЕТ.
Для того, чтобы воспрепятствовать внедрению вирусов в рабочую (боевую) об-
ласть ЛВС, которая предназначена для решения задач АС, ЛВС разделяют на две зоны:
рабочую и демилитаризованную. Взаимодействие между зонами осуществляется через
межсетевой экран, который позволяет реализовать набор правил, определяющих условия прохождения пакетов из одной зоны в другую.
В демилитаризованной зоне размещают почтовый сервер и Web-сервер системы,
необходимые автоматизированные рабочие места (АРМ), оснащают их мощными антиви-
русными средствами и определяют жѐсткую антивирусную политику работы в этой зоне.
Таким образом, демилитаризованная зона является эффективным комплексным средством предотвращения проникновения вирусов в рабочую зону.
6.4.4 Организационно-правовые меры
Специфическим, но, безусловно, необходимым средством борьбы с заражением вычислительных систем и сетей вирусами являются меры правового и организационного характера. Правовые меры защиты сводятся, в основном, к установлению административ-
ной и уголовной ответственности за создание, использование и распространение вирусов с
24
