В чем состоит принцип работы вируса компьютерного
Решить задачу теоретического обнаружения вирусов невозможно, поэтому на практике приходится решать частные задачи относительно частных случаев вредоносных программ. В зависимости от свойств вирусов для их обнаружения и нейтрализации могут применяться различные методы. Необходимо отметить, что на практике классификации, принятые различными производителями антивирусных продуктов, отличаются, хотя и построены на близких принципах. Поэтому в ходе изложения будут формулироваться в первую очередь принципы, и уже потом примеры из классификации.
Практическое определение вируса Определение компьютерного вируса — исторически проблемный вопрос, поскольку достаточно сложно дать четкое определение вируса, очертив при этом свойства, присущие только вирусам и не касающиеся других программных систем. Наоборот, давая жесткое определение вируса как программы, обладающей определенными свойствами, практически сразу же можно найти пример вируса, таковыми свойствами не обладающего.Приведу несколько формулировок определения:Хронологически наиболее раннее определение от Евгения Касперского (книга "Компьютерные вирусы"):
Определение 1: ОБЯЗАТЕЛЬНЫМ (НЕОБХОДИМЫМ) СВОЙСТВОМ КОМПЬЮТЕРНОГО ВИРУСА является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Определения 1 и 2 в большой степени повторяют определение Ф. Коэна или уточнение, предложенное Д. Чессом и С. Вайтом, что позволяет распространить на них (определения) вывод о невозможности создать алгоритм, обнаруживающий все такие программы или даже все "инкарнации" одного из вирусов. Тем не менее, на практике оказывается, что все известные вирусы могут быть обнаружены антивирусными программами. Результат достигается в частности еще и за счет того, что поврежденные или неудачные экземпляры вирусов, неспособные к созданию и внедрению своих копий, обнаруживаются и классифицируются наравне со всеми остальными "полноценными" вирусами. Следовательно, с практической точки зрения, т. е. с точки зрения алгоритмов поиска, способность к размножению вовсе не является обязательной для причисления программы к вирусам.Другая проблема, связанная с определением компьютерного вируса кроется в том, что сегодня под вирусом чаще всего понимается не "традиционный" вирус, а практически любая вредоносная программа. Это приводит к путанице в терминологии, осложненной еще и тем, что практически все современные антивирусы способны выявлять указанные типы вредоносных программ, таким образом ассоциация "вредоносная программа-вирус" становится все более устойчивой.Исходя из этого, а также из назначения антивирусных средств, в дальнейшем, если это не будет оговорено отдельно, под вирусами будут подразумеваться именно вредоносные программы.
Определение 3: Вредоносная программа — компьютерная программа или переносной код, предназначенный для реализации угроз информации, хранящейся в КС, либо для скрытого нецелевого использования ресурсов КС, либо иного воздействия, препятствующего нормальному функционированию КС. К вредоносным программам относятся компьютерные вирусы, трояны, сетевые черви и др.
Компьютерные вирусы, трояны и черви являются основными типами вредоносных программ.
Вирусы
Классические определения компьютерного вируса приведены выше.
Жизненный цикл Поскольку отличительной особенностью вирусов в традиционном смысле является способность к размножению в рамках одного компьютера, деление вирусов на типы происходит в соответствии со способами размножения.Сам процесс размножения может быть условно разделен на несколько стадий: 1. Проникновение на компьютер 2. Активация вируса3. Поиск объектов для заражения4. Подготовка вирусных копий5. Внедрение вирусных копий
Особенности реализации каждой стадии порождают атрибуты, набор которых фактически и определяет класс вируса.
Проникновение
Вирусы проникают на компьютер вместе с зараженными файлами или другими объектами (загрузочными секторами дискет), никак, в отличие от червей, не влияя на процесс проникновения. Следовательно, возможности проникновения полностью определяются возможностями заражения и классифицировать вирусы по этим стадиям жизненного цикла отдельно смысла нет.
Для активации вируса необходимо, чтобы зараженный объект получил управление. На данной стадии деление вирусов происходит по типам объектов, которые могут быть заражены:
1.Загрузочные вирусы - вирусы, заражающие загрузочные сектора постоянных и сменных носителей. 2.Файловые вирусы —вирусы, заражающие файлы. Эта группа дополнительно делится на три, в зависимости от среды в которой выполняется код: · Собственно файловые вирусы — те, которые непосредственно работают с ресурсами операционной системы.Из последних вредоносных программ, обладающих вирусной функциональностью, можно отметить Email-Worm.Win32.Bagle.p (а также его модификации .q и .r). · Макровирусы — вирусы, написанные на языке макрокоманд и исполняемые в среде какого-либо приложения. В подавляющем большинстве случаев речь идет о макросах в документах Microsoft Office.
Макро-вирусы способны заражать не только документы Microsoft Word и Excel. Существуют вредоносные программы ориентированные и на другие типы документов: Macro.Visio.Radiant заражает файлы известной программы для построения диаграмм -Visio, Virus.Acad.Pobresito - документы AutoCAD, Macro.AmiPro.Green - документы популярного раньше текстового процессора Ami Pro.
· Скрипт-вирусы — вирусы, исполняемые в среде определенной командной оболочки: раньше - bat-файлы в командной оболочке DOS, сейчас чаще VBS и JS - скрипты в командной оболочке Windows Scripting Host (WSH).Отдельно стоит отметить тот факт, что вирусы, рассчитанные для работы в среде определенной ОС или приложения, оказываются неработоспособными в среде других ОС и приложений. Поэтому как отдельный атрибут вируса выделяется среда, в которой он способен выполняться. Для файловых вирусов это DOS, Windows, Linux, MacOS, OS/2. Для макровирусов - Word, Excel, PowerPoint, Office. Иногда вирусу требуется для корректной работы какая-то определенная версия ОС или приложения, тогда атрибут указывается более узко: Win9x, Excel97.
Поиск жертв На стадии поиска объектов для заражения встречается два способа поведения вирусов.1.Получив управление, вирус производит разовый поиск жертв, после чего передает управление ассоциированному с ним объекту (зараженному объекту).2.Получив управление, вирус так или иначе остается в памяти и производит поиск жертв непрерывно, до завершения работы среды, в которой он выполняетсяВирусы второго типа во времена однозадачной DOS было принято называть резидентными. С переходом на Windows проблема остаться в памяти перестала быть актуальной: практически все вирусы, исполняемые в среде Windows, равно как и в среде приложений MS Office, являются вирусами второго типа. И напротив, скрипт-вирусы являются вирусами первого типа. Соответственно, атрибут резидентный применим только к файловым DOS вирусам. Существование нерезидентных Windows вирусов возможно, но на практике они являются редким исключением.Отдельно имеет смысл рассмотреть так называемые stealth-вирусы - вирусы, которые находясь постоянно в памяти, перехватывают обращения к зараженному файлу и на ходу удаляют из него вирусный код, передавая в ответ на запрос неизмененную версию файла. Таким образом эти вирусы маскируют свое присутствие в системе. Для их обнаружения антивирусным средствам требуется возможность прямого обращения к диску в обход средств операционной системы. Наибольшее распространение Stealth-вирусы получили во времена DOS. Подготовка вирусных копийОпределение 4: Сигнатура вируса — в широком смысле, информация, позволяющая однозначно определить наличие данного вируса в файле или ином коде. Примерами сигнатур являются: уникальная последовательность байт, присутствующая в данном вирусе и не встречающаяся в других программах; контрольная сумма такой последовательности. Процесс подготовки копий для распространения может существенно отличаться от простого копирования. Авторы наиболее сложных в технологическом плане вирусов стараются сделать разные копии максимально непохожими для усложнения их обнаружения антивирусными средствами. Как следствие, составление сигнатуры для такого вируса крайне затруднено либо вовсе невозможно. Внедрение
Внедрение вирусных копий может осуществляться двумя принципиально разными методами:
· Внедрение вирусного кода непосредственно в заражаемый объект · Замена объекта на вирусную копию. Замещаемый объект, как правило, переименовывается
Для вирусов характерным является преимущественно первый метод. Второй метод намного чаще используется червями и троянами, а точнее троянскими компонентами червей, поскольку трояны сами по себе не распространяются.
Ущерб от вредоносных программ
Черви и вирусы могут осуществлять все те же действия, что и трояны. На уровне реализации это могут быть как отдельные троянские компоненты, так и встроенные функции. Кроме этого, за счет массовости, для вирусов и червей характерны также другие формы вредоносных действий:
· Перегрузка каналов связи — свойственный червям вид ущерба, связанный с тем, что во время масштабных эпидемий по Интернет-каналам передаются огромные количества запросов, зараженных писем или непосредственно копий червя. В ряде случаев, пользование услугами Интернет во время эпидемии становится затруднительным. Примеры: Net-Worm.Win32.Slammer · DDoS атаки — благодаря массовости, черви могут эффективно использоваться для реализации распределенных атак на отказ в обслуживании (DDoS атак). В разгар эпидемии, когда зараженными являются миллионы и даже десятки миллионов компьютеров, обращение всех инфицированных систем к определенному Интернет ресурсу приводит к полному блокированию этого ресурса. Так, во время атаки червя MyDoom сайт компании SCO был недоступен в течение месяца. · Потеря данных — более характерное для вирусов, чем для троянов и червей, поведение, связанное с намеренным уничтожением определенных данных на компьютере пользователя. Примеры: Virus.Win9x.CIH - удаление стартовых секторов дисков и содержимого Flash BIOS, Macro.Word97.Thus - удаление всех файлов на диске C:, Email-Worm.Win32.Mydoom.e - удаление файлов с определенными расширениями в зависимости от показателя счетчика случайных чисел· Нарушение работы ПО — также более свойственная вирусам черта. Из-за ошибок в коде вируса, зараженные приложения могут работать с ошибками или не работать вовсе. Примеры: Net-Worm.Win32.Sasser.a - перезагрузка зараженного компьютера· Загрузка ресурсов компьютера — интенсивное использование ресурсов компьютера вредоносными программами ведет к снижению производительности как системы в целом, так и отдельных приложений. Примеры: в разной степени - любые вредоносные программы
Наличие деструктивных действий вовсе не является обязательным критерием для классификации программного кода как вирусного. Следует также отметить, что одним только процессом саморазмножения вирус способен причинить колоссальный ущерб. Наиболее яркий пример - Net-Worm.Win32.Slammer.
Угрозы безопасности информации Рассмотрим угрозы безопасности информации с точки зрения вирусов. Учитывая тот факт, что общее число вирусов по состоянию на сегодня превосходит 100000, проанализировать угрозы со стороны каждого из них является слишком трудоемкой и бесполезной задачей, поскольку ежедневно возрастает количество вирусов, а значит, необходимо ежедневно модифицировать полученный список. Будем считать, что вирус способен реализовать любую из угроз безопасности информации.Существует множество способов классификации угроз безопасности информации, которая обрабатывается в автоматизированной системе. Наиболее часто используется классификация угроз по результату их влияния на информацию, а именно - нарушение конфиденциальности, целостности и доступности.Для каждой угрозы существует несколько способов ее реализации со стороны вирусов. Угроза нарушения конфиденциальности
· Кража информации и ее распространение с помощью штатных средств связи либо скрытых каналов передачи: Email-Worm.Win32.Sircam - рассылал вместе с вирусными копиями произвольные документы, найденные на зараженном компьютере
· Загрузка каналов передачи данных большим числом пакетов: Net-Worm.Win32.Slammer - непрерывная рассылка инфицированных пакетов в бесконечном цикле
· Любая деятельность, результатом которой является невозможность доступа к информации; различные звуковые и визуальные эффекты: Email-Worm.Win32.Bagle.p - блокирование доступа к сайтам антивирусных компаний · Вывод компьютера из строя путем уничтожения либо порчи критических составляющих (уничтожение Flash BIOS): Virus.Win9x.CIH - порча Flash BIOSКак несложно было убедиться, для каждого из приведенных выше способов реализации угроз можно привести конкретный пример вируса, реализующего один или одновременно несколько способов. Заключение Вредоносные программы отличаются условиями существования, применяемыми технологиями на различных этапах жизненного цикла, собственно вредоносным воздействием - все эти факторы и являются основой для классификации. В результате по основному (с исторической точки зрения) признаку - размножению, вредоносные программы делятся на три типа: собственно вирусы, черви и трояны.Независимо от типа, вредоносные программы способны наносить значительный ущерб, реализуя любые угрозы информации - угрозы нарушения целостности, конфиденциальности, доступности. В связи с этим при проектировании комплексных систем антивирусной защиты, и даже в более общем случае - комплексных системы защиты информации, необходимо проводить градацию и классифицировать объекты сети по важности обрабатываемой на них информации и по вероятности заражения этих узлов вирусами.
В первом, втором и третьем выпусках блога мы рассказали о том, как автопрограммируемость — врожденная черта фон-неймановских компьютеров — привела к появлению в них вирусов. Темой четвертого выпуска был основополагающий метод антивирусной защиты — многоуровневое фиксирование программ на основе разделения программ и данных. Этот метод считается наиболее надежным из всех существующих. Была показана его взаимосвязь с другими основными методами.
В этой статье мы рассмотрим три разных определения понятия «компьютерный вирус». Первые два сформулированы Фредериком Коэном и Леонардом Адлеманом в фундаментальных работах 1984-1992 годов и считаются классическими в современной компьютерной науке. К сожалению, из них автоматически следует, что задача распознавания произвольного вируса неразрешима. Что и доказали эти ученые в тех же работах, где привели свои определения.
Поэтому третье определение мы специально сформулируем таким образом, чтобы оно делало ту же самую задачу полностью разрешимой. Для этого мы откажемся от нескольких плохо формализуемых понятий, которые лежат в основе классических определений, и отнесем к вирусам более широкий круг информационных объектов. Такой подход — решение сложной задачи с помощью замены категорий, в которых она формулируется — часто бывает удобен и полезен в практической работе специалиста по информационной безопасности.
Проблема компьютерных вирусов отчетливо проявилась примерно через 35 лет после появления концепции «stored program computer». Первые авторы и исследователи вирусов оказались под сильным впечатлением от невиданного ранее феномена саморепликации (в биологическом смысле термина) рукотворных объектов. Позже специалисты осознали, что это феномен не столько самих этих объектов, сколько исполняющей среды — даже такой относительно простой, как машина Тьюринга или фон-неймановская машина с типичной операционной системой, не говоря уже о более сложных архитектурах и сетевых средах. Стало ясно, что массовая репликация объектов не является специфическим свойством какого-то одного класса программ, а вполне типична для всех уровней сложной автопрограммируемой системы. Например, массово реплицируются блоки кода в парадигме ООП или программы-приложения, загружаемые пользователями с центрального сервера. Но несмотря на обнаружение стратегической роли среды, репликация до сих пор ассоциируется у большинства людей именно с вирусами — и лежит в основе их классических определений.
Последствия и признаки возможного заражения вирусом
Злонамеренные вирусные программы имеют определенный, предварительно запрограммированный создателем, собственный алгоритм действий, направленный на достижение конкретного результата. И в зависимости от своего предназначения, вирус может быть, как практически безвредным, не способным причинить серьезный ущерб системе или данным пользователя, так и обладать зловредными функциями, реализация которых может привести к печальным последствиям. Также вирусы могут объединятся в некое подобие комплексов, сочетая в себе опасные характеристики нескольких видов вредоносных программ. А некоторые из известных компьютерных вирусов представляют особую опасность и могут серьезно повредить ваш компьютер. Злонамеренные вирусные программы имеют широкий набор вредоносных эффектов, и после проникновения на устройство пользователя могут приступить к их воплощению. Например, создавать конфликтные ситуации и способствовать возникновению ошибок в работе компьютера, по причине отдельных неучтённых тонкостей взаимодействия с операционной системой и другими приложениями, похищать пароли учетной записи и конфиденциальную информацию с устройства, уничтожать хранящиеся на нем данные, скрытно производить массовую рассылку рекламной корреспонденции и копий вирусных программ вашим почтовым адресатам через электронное приложение, тайно использовать компьютерное устройство пользователя для получения финансовых выгод или удаленных сетевых атак и т.д.
- Появляются частые всплывающие окна.
- Изменена ваша домашняя страница.
- Происходит массовая незапланированная отправка электронных писем с вашей учетной записи электронной почты.
- Возникают частые сбои компьютера.
- Значительно замедлилась скорость работы компьютера, участились задержки в отклике системы и реакции на любые команды или манипуляции инструментами управления (мышь, клавиатура).
- Неизвестные программы автоматически запускаются после включения компьютера.
- Происходят различные несанкционированные действия, такие как смена пароля и т.д.
Простое определение понятия компьютерный вирус
Компьютерный вирус представляет собой определенный тип вредоносного программного обеспечения, обладающий функцией самостоятельного скрытого копирования, способный изменять или дополнять содержимое других файлов, приложений и программ, присутствующих на том же компьютерном устройстве, что и злонамеренное программное обеспечение. Как только вирус сможет проникнуть на устройство или в отдельное, предназначенное для него, место, он вставляет свой собственный код, и процесс репликации завершается успешно. Компьютерные вирусы имеют широчайший спектр разнообразных целей и могут представлять не только угрозу частной жизни пользователя, но и нести полную ответственность за экономический ущерб на значительные суммы.
Помимо основной цели, вирус часто содержит дополнительные функции, направленные на затруднение полноценного функционирования электронно-вычислительных устройств. И даже, если первоначально создатель вредоносной программы не предполагал причинение какого-либо ущерба, в любом случае, вирусы занимают свободное дисковое пространство на запоминающих устройствах, уменьшая их полезную емкость, и дополнительно расходуют ресурсы системы, негативно влияя на общую производительность.
Появившись впервые в 1981 году, компьютерные вирусы претерпели многократные изменения, приведшие к существенным модернизациям различных вредоносных свойств зловредных программ, комбинированию разнообразных видов угроз, увеличению уровня скрытности и снижению заметности, а также повышению общей живучести опасных программ.
Определение вируса по Коэну
Фред Коэн, аспирант Университета Южной Калифорнии, заинтересовался проблемой компьютерных вирусов в начале 1980-х. В 1984 году при поддержке своего научного руководителя Леонарда Адлемана он написал первую статью на эту тему, где привел весьма далекую от совершенства формулировку: «We define a computer ‘virus’ as a program that can ‘infect’ other programs by modifying them to include a possibly evolved copy of itself». Сначала все казалось просто, но при дальнейшей разработке темы Коэн обнаружил ее чрезвычайную сложность и ключевое значение среды — как для процесса репликации, так и для принятия решения о том, является ли произвольный изучаемый информационный объект вирусом.
В своей книге 1985 года и диссертации 1986 года Коэн дал уже строгое определение вируса, в котором сконцентрировался на его единственном свойстве — рекурсивной репликации. Определение было дано только для абстрактной модели, основанной на машине Тьюринга (заметим, что реальный компьютер обычно имеет меньшую предсказуемость, чем его идеальная модель). Никакие другие свойства, кроме рекурсивной репликации, в модели Коэна не рассматриваются. То есть это хорошая модель частного случая рекурсивно воспроизводимых алгоритмов, но плохая модель реальных компьютерных вирусов — особенно с учетом наблюдаемого многообразия их типов и необязательности строгой рекурсии для распространения.
Но модель вируса по Коэну стала классической, потому что оказалась простой, наглядной и учитывающей роль исполняющей среды, что необходимо для понимания сути проблемы. В этой модели, чтобы определить, является ли вирусом изучаемый информационный объект (конечная последовательность символов, программа, код), его надо рассматривать исключительно в контексте машины-среды, в паре с ней и во взаимодействии с ней — на столько тактов вперед, сколько займет исполнение кода машиной. Вирус был определен как код, исполнение которого приведет к записи копии этого кода на ленту машины Тьюринга впереди по ходу исполнения, т.е. в будущем.
Но для машины Тьюринга (как доказал в 1936 году ее автор) невозможно предсказать будущее. Для произвольного кода непредсказуем результат его выполнения, т.е. последовательность состояний машинной ленты (памяти) на неограниченное число тактов вперед. Единственный способ выяснить, чем закончится выполнение этого кода — проверить на практике. Иными словами, чтобы выяснить, является ли изучаемый код вирусом, его надо запустить и посмотреть, что будет. С учетом неизвестности результата, в реальной системе это небезопасно. Кроме того, время ожидания выполнения кода может оказаться сколь угодно большим (бесконечным). А без информации о том, к чему приведет запуск кода, нельзя судить о том, является ли он вирусом.
Обратите внимание, что анализ кода без его запуска невозможен даже с самой удобной позиции — внешнего наблюдателя, не ограниченного в средствах для изучения машины и кода, которые находятся в исходных статичных состояниях. Тем более не может быть и речи об анализе кода без его запуска средствами самой машины, как и об анализе кода в процессе исполнения машиной другого кода.
Кроме неутешительного вывода о невозможности надежного распознавания вирусов в своей модели, Коэн доказал следующее:
a) к произвольному коду всегда можно подобрать такую машину, которая интерпретирует его как вирус; например, для какой-то машины вирусом будет код из одного байта — 42;
b) некоторые машины любой код интерпретируют как вирус;
c) некоторые машины никакой код не интерпретируют как вирус.
Впоследствии Коэн не раз возвращался к этой теме. Так, в 1992 году он опубликовал статью, где приводилось строгое определение понятия «компьютерный червь» (частный случай вируса для некоторых сред, в частности — мультипроцессорных). В статье подтверждался прежний вывод: распознавание вирусов и подобных им объектов в общем случае невозможно.
Антивирусы
Первые антивирусные утилиты появились в 1984 году. Энди Хопкинс написал несколько программ, которые анализировали текст загрузочного модуля и выявляли все подозрительные участки кода. Благодаря своей простоте (фактически использовался только контекстный поиск) и эффективности они сразу же стали популярными. В следующем году Ги Вонг создал Dprotect — резидентную программу, перехватывающую попытки записи на дискеты и винчестер. Она блокировала все операции (запись, форматирование), выполняемые через BIOS.
Современная антивирусная программа способна не только обнаруживать вирусы, но также лечить зараженные файлы. Если же лечение невозможно, то, в таком случае, файлы удаляются либо помещаются на карантин. Основные методы обнаружения вирусов — сканирование файлов на предмет сравнения с данными антивирусных баз и определение подозрительного поведения программ, которое может быть действием вируса. Эвристический анализ позволяет обнаруживать неизвестные ранее вирусы, но менее эффективен, чем сканирование.
Конкуренция между антивирусными компаниями привела как к положительным, так и к отрицательным явлениям. Из плюса это сравнительно одинаковая небольшая цена на антивирусные пакеты и сравнительно одинаковая эффективность, а из минусов — развитие компьютерной защиты от вирусов идет не в сторону улучшения их детектирования и алгоритмов лечения, а в сторону увеличения числа обнаруживаемых вирусов (что очень выгодно антивирусным компаниям). Если вы по каким-либо причинам не успели обновить свежую базу данных, то ваша защита сводится к минимуму. А если не обновлять неделю и более, то можно вообще забыть, что у вас есть антивирус.
Для того, чтобы выбрать наиболее подходящую защиту, нужно учитывать системные возможности компьютера, операционную систему, вашу компьютерную грамотность, особенности антивирусных программ. Конкуренция и обширный рынок заставляет производителей совершенствоваться и идти нога в ногу. Практически одинаковые возможности и цена позволяют выбрать антивирус, что называется, по вкусу и цвету. При этом надо помнить, что чем сильнее она тормозит и дольше работает, тем больше она дает защиты, и наоборот. Тут, как и везде — либо удобство, либо эффективность. Если антивирус экономит системные ресурсы, то за счет повышенной скорости работы и незаметности снижается его эффективность при обнаружении некоторых вирусов — но именно такой антивирус лучше подойдет для компьютеров двух-трехлетней давности. И еще важно не лениться и постоянно обновлять базы из официальных источников.
Современные антивирусы умеют: сканировать память и диск по расписанию, автоматически обновлять базу данных, выборочно проверять любое пространство жесткого диска, проводить фильтрацию трафика Интернета, защищать почтовые и файловые серверы, удалять выявленные вирусы, восстанавливать зараженную информацию, блокировать хакерские атаки, вести отчетность.
Еще двумя важными компонентами защиты являются Firewall и антишпионские программы (antispyware). Firewall, он же межсетевой экран, он же брандмаузер, блокирует входящие и исходящие соединения, кроме разрешенных пользователем, предотвращая вирусные атаки. Предназначен для защиты компьютерных сетей от несанкционированного доступа. Также сетевые экраны часто называют фильтрами, ведь их основная задача — не пропускать (фильтровать) пакеты, не подходящие под определенные в конфигурации параметры. За последние годы особо широкое распространение получил так называемый Spyware (дословный перевод: «изделие шпиона»). Если ваш компьютер начал странно себя вести, большая вероятность проникновения «шпиона». Может поменяться стартовая страница и гигантски увеличиться исходящий трафик, на рабочем столе появятся новые «иконки», которые приведут вас на зараженные сайты. Самый точный признак Spyware — постоянно выскакивающие окна с рекламой. К сожалению, не придумали еще идеальную антишпионскую программу, которая обезопасила бы ваш компьютер на 100%, но комплексный совместный подход значительно повысит защищенность компьютера.
Вирусы, конечно, «звери» страшные и опасные, но благодаря современному программному обеспечению их можно не бояться. Бывает, и за десять лет без всякой защиты ты не «заразишься» компьютерным вирусом, а, бывает, что схватишь его за первые минуты пребывания в сети Интернет. Новичкам везет особенно. Но лучше не беспокоиться, а легко и приятно наслаждаться всеми благами, которые дает нам компьютер и Интернет.
Заключение
Повсеместное применение разнообразных персональных компьютерных устройств и массовый перевод большинства видов современных информационных ресурсов в электронно-цифровой формат значительно облегчили возможность хранения, обработки и перемещения информации, в зависимости от непосредственного желания пользователей. Однако также дополнительно возникли риски, вызванные появлением различных видов вредоносных вирусных программ, способных заражать устройство и файлы пользователей с целью причинения необратимого вреда.
Широкий диапазон компьютерных вирусов, рассчитанных на разнообразные зловредные действия, вынуждает пользователей принимать различные меры, направленные на защиту своих устройств и расположенных там данных. Понимание степени вирусной угрозы и последствий возможного ущерба поможет пользователям с должной ответственностью относиться к любым источникам данных, и в обязательном порядке использовать антивирусное программное обеспечение от доверенных производителей для поддержания соответствующего уровня системной безопасности.
Современную жизнь невозможно представить без компьютеров — на работе и дома, в офисах и банках, в магазинах и на почте — везде мы видим мониторы, системные блоки, принтеры. Эпоха ПК подарила человечеству не только массу удобств и развлечений, но и одну большую опасность — компьютерные вирусы. Какие они бывают и как распространяются? Какой вред наносят компьютерам и мировой экономике? Как защитить свои бесценные файлы и секретные документы? Об этом и многом другом мы и поговорим.
Время дискет и CD-дисков, на которых распространялись вирусы, осталось в прошлом тысячелетии. В XXI веке основную угрозу по заражению компьютера представляет Интернет, а 90% современных вирусов — это так называемые сетевые черви, «шпионы». Каждые полчаса создается один новый вирус — он может удалить файл, заполнить мусором все свободное место, загрузить память по-максимуму, а может уничтожить всю информацию на жестком диске или раскрыть ваши личные и деловые тайны врагам и конкурентам. Очень важно быть защищенным и не бояться никаких вирусов. А, как гласит старая пословица, вооружен (в нашем случае информацией) — значит защищен. Вот и будем вооружаться!
Что ж за зверь ты такой страшный, компьютерный вирус?
Определение вируса по Коэну
Фред Коэн, аспирант Университета Южной Калифорнии, заинтересовался проблемой компьютерных вирусов в начале 1980-х. В 1984 году при поддержке своего научного руководителя Леонарда Адлемана он написал первую статью на эту тему, где привел весьма далекую от совершенства формулировку: «We define a computer ‘virus’ as a program that can ‘infect’ other programs by modifying them to include a possibly evolved copy of itself». Сначала все казалось просто, но при дальнейшей разработке темы Коэн обнаружил ее чрезвычайную сложность и ключевое значение среды — как для процесса репликации, так и для принятия решения о том, является ли произвольный изучаемый информационный объект вирусом.
В своей книге 1985 года и диссертации 1986 года Коэн дал уже строгое определение вируса, в котором сконцентрировался на его единственном свойстве — рекурсивной репликации. Определение было дано только для абстрактной модели, основанной на машине Тьюринга (заметим, что реальный компьютер обычно имеет меньшую предсказуемость, чем его идеальная модель). Никакие другие свойства, кроме рекурсивной репликации, в модели Коэна не рассматриваются. То есть это хорошая модель частного случая рекурсивно воспроизводимых алгоритмов, но плохая модель реальных компьютерных вирусов — особенно с учетом наблюдаемого многообразия их типов и необязательности строгой рекурсии для распространения.
Но модель вируса по Коэну стала классической, потому что оказалась простой, наглядной и учитывающей роль исполняющей среды, что необходимо для понимания сути проблемы. В этой модели, чтобы определить, является ли вирусом изучаемый информационный объект (конечная последовательность символов, программа, код), его надо рассматривать исключительно в контексте машины-среды, в паре с ней и во взаимодействии с ней — на столько тактов вперед, сколько займет исполнение кода машиной. Вирус был определен как код, исполнение которого приведет к записи копии этого кода на ленту машины Тьюринга впереди по ходу исполнения, т.е. в будущем.
Но для машины Тьюринга (как доказал в 1936 году ее автор) невозможно предсказать будущее. Для произвольного кода непредсказуем результат его выполнения, т.е. последовательность состояний машинной ленты (памяти) на неограниченное число тактов вперед. Единственный способ выяснить, чем закончится выполнение этого кода — проверить на практике. Иными словами, чтобы выяснить, является ли изучаемый код вирусом, его надо запустить и посмотреть, что будет. С учетом неизвестности результата, в реальной системе это небезопасно. Кроме того, время ожидания выполнения кода может оказаться сколь угодно большим (бесконечным). А без информации о том, к чему приведет запуск кода, нельзя судить о том, является ли он вирусом.
Обратите внимание, что анализ кода без его запуска невозможен даже с самой удобной позиции — внешнего наблюдателя, не ограниченного в средствах для изучения машины и кода, которые находятся в исходных статичных состояниях. Тем более не может быть и речи об анализе кода без его запуска средствами самой машины, как и об анализе кода в процессе исполнения машиной другого кода.
Кроме неутешительного вывода о невозможности надежного распознавания вирусов в своей модели, Коэн доказал следующее:
a) к произвольному коду всегда можно подобрать такую машину, которая интерпретирует его как вирус; например, для какой-то машины вирусом будет код из одного байта — 42;
b) некоторые машины любой код интерпретируют как вирус;
c) некоторые машины никакой код не интерпретируют как вирус.
Впоследствии Коэн не раз возвращался к этой теме. Так, в 1992 году он опубликовал статью, где приводилось строгое определение понятия «компьютерный червь» (частный случай вируса для некоторых сред, в частности — мультипроцессорных). В статье подтверждался прежний вывод: распознавание вирусов и подобных им объектов в общем случае невозможно.
Физиология вируса
Формальное определение компьютерного вируса — это самораспространяющийся в информационной среде программный код, разновидность самовоспроизводящихся компьютерных программ. Он может внедряться куда угодно, размножаться где угодно и распространяться через что угодно. Да, да, именно как вирус обычный, биологический (от лат. virus — яд).
А ведь вирус, по сути, это всего лишь набор каких-то символов.
На сегодняшний день известны десятки тысяч различных вирусов.
В самой обширной антивирусной базе данных на апрель 2007 года содержатся сведения об около 250 тысяч записей вирусов. Несмотря на такое изобилие, число типов вирусов, отличающихся друг от друга механизмом распространения и принципом действия, весьма ограниченно. Есть комбинированные вирусы, которые можно отнести одновременно к нескольким типам — они-то особенно опасны. Вообще, сейчас под вирусами понимаются все вредоносные компьютерные программы, среди которых выделяют несколько типов: файловые, загрузочные, вирусы-спутники, пакетные, скриптовые, макровирусы, полиморфные, стелс-вирусы, а также «трояны», сетевые и файловые черви, логические бомбы, вирусы-шпионы. Но единой четкой классификации не существует.
Сетевые черви распространяются по глобальным и локальным сетям. Их главной целью является заражение максимально возможного количества персональных и карманных компьютеров, мобильных телефонов. С помощью червя можно заполучить чужой пароль для доступа к какой-нибудь базе данных. Причем, пароль тут же изменится, и вы уже не сможете воспользоваться этой базой данных. Сетевые черви в наше время довольно успешно мутируют, сочетая в себе элементы скриптовых и полиморфных вирусов, троянских коней.
По основному назначению трояны совершенно безобидны. На вид это безвредный «конь», а вот внутри. Вирусы-трояны используют для первоначального распространения вирусов, но чаще всего — для получения несанкционированного удаленного доступа к чужому компьютеру через Интернет, что ведет к краже информации и передачи ее третьим лицам. Также трояны могут уничтожать и изменять информацию, всячески вредить работоспособности, использовать ресурсы вашего компьютера в противозаконных целях.
Логической бомбой называют программу, которая выполняет вредоносные действия при определенных условиях — например, при достижении определенной даты. Вирус-спутник создает клон, который становится главнее оригинала; полиморфные вирусы умеют изменять свой первоначальный двоичный код; стелс-вирусы способны отменно скрывать свое присутствие в компьютере и подставлять «здоровые» файлы; программы-серверы превращают ваш компьютер в «зомби», которым пользуются спамеры для рассылки своего мусора, хакеры — для атак на сеть.
Важен и тот факт, что многие выпускаемые программы исполнены не на высоком уровне, в том числе продукты компьютерного гиганта Microsoft. В будущем, скорее всего, эволюция вирусов остановится на «дырах» в программном обеспечении и Интернет-технологиях. Использование недоработок в сетевых сервисах позволяет вирусам заражать операционную систему и распространяться с огромной скоростью без вмешательства человека. С другой стороны, судя по тенденциям 2006 года, происходит регресс вирусных методик. Неудивительно, ведь разработка оригинальных вирусов требует усилий и материальных вложений, тяжелого труда и фантазии, ума, знаний и времени. Над последней версией Windows Vista работали тысячи людей, и нужно будет постараться, чтобы найти в ней «дыры». Но, без сомнения, сюрпризы в этой области еще ожидаются. И, подозреваю, будут они весьма неприятными.
По мнению ряда экспертов, вирусы — это еще и оружие в информационной войне (не только государств, но и корпораций, фирм за рынок сбыта своей продукции), а современные хакерские атаки и вирусы создаются целыми группами не только хакеров, но и серьезными учеными. Прежде чем пустить танки, самолеты, десант в чужую страну, сначала необходимо разрушить экономику противника. Так же действуют и конкурирующие коммерческие фирмы. Учитывая те затраты, которые тратятся на борьбу с вирусами, можно сказать, что эта война уже идет, причем во всех отношениях.
Чтобы исключить угрозу вирусной атаки, обезопасить свой компьютер, ноутбук и компьютеры сети, нужно разбираться в средствах антивирусной защиты. Сразу же огорчу читателей: не существует такой программы, которая обезопасила бы вас на все 100%, в лучшем случае это будет 99,9%.
Способы защиты от вирусов
Но самый лучший возможный способ борьбы с компьютерным вирусом – это наличие на вашем устройстве антивирусного программного обеспечения. Вредоносные вирусные программы представлены разными видами, основные из которых – это файловые вирусы, загрузочные вирусы, макровирусы, полиморфные вирусы, резидентные вирусы, логические бомбы, вирусы-вымогатели. Но механизм воздействия каждой из них известен производителям антивирусов, и на регулярной основе антивирусные приложения получают обновления собственной базы вирусных угроз для повышения уровня защищенности устройства и данных пользователя, а также снижения риска от возможного заражения зловредными приложениями. В международной компьютерной информационной сети «Интернет» существует множество вариантов защитных антивирусных инструментов различных разработчиков. И наиболее популярные из них представлены компаниями «Лаборатория Касперского» , «Avast» , «ESET» , «McAfee» , «AVG» , «Avira» и «Bitdefender» . Они обеспечивают полную безопасность вашей системы и предупреждают вас в случае, если вы собираетесь загрузить файл или программу, содержащую вредоносное программное обеспечение.
Более подробно ознакомиться с видами вредоносных вирусных программ и способами защиты от них при помощи антивирусных инструментов безопасности различных доверенных разработчиков можно в наших ранних статьях, ссылки на которые представлены в следующем списке:
Миллиардные убытки
Последний год XX века превзошел вообще все мыслимые опасения: вирус-червь «LoveLetter» и его модификации нанесли самый большой в истории вред пользователям ПК и корпорациям— более 20 млрд долларов. За первый месяц LoveLetter атаковал 40 млн компьютеров. Вы от знакомого получаете письмо с темой «I Love You» и, независимо от пола, хотите прочитать вложенный файл. К тому же создавалось обманчивое впечатление, что расширение документа— .txt, а оно абсолютно безопасно и не может содержать вирус. Вы открываете документ— в предвкушении, смущении, непонимании или сгорая от любопытства, и. Еще раз: ущерб на сумму (медленно, по буквам) более двадцати миллиардов долларов.
Действовал вирус «Любовное письмо» просто, как и все гениальное. Попадая на компьютер, он рассылал себя всем, кто числился в адресной книге самой распространенной почтовой программы Outlook (входящей в пакет MS Office). Вложенный в письмо файл назывался, например, так: «ForYou.TXT.vbs», либо же «I Love You.TXT .vbs»— с множеством пробелов перед истинным расширением — vbs. Вирус, написанный на языке Visual Basic Script, маскировался самым элементарным и надежным способом. Пользователь думал, что открывает обычный текстовой файл. Как видно, автор этого вируса сделал главный упор на человеческой психологии, а вовсе не на компьютерных технологиях и программировании. Кстати, и автора LoveLetter тоже не посадили! В августе 2000 года 24-летний филиппинец Онель де Гусман был оправдан, так как в законодательстве Филиппин на тот момент не имелось соответствующего закона (в нашей стране «антихакерский» закон существует с января 1997 года и предусматривает лишение свободы до трех лет, а при тяжких последствиях — до семи).
Последнее получило особо широкое признание. Вирус «Анна Курникова», например, предлагал соблазнительную фотографию теннисистки и содержал файл с названием AnnaKournikova.jpg.vbs (jpeg — расширение, обозначающее, что данный файл содержит изображение). Автор заявил: «Не знаю, почему эти невежественные люди продолжают открывать такие письма. В конце концов, если их компьютер оказался заражен вирусом AnnaKournikova— вина полностью на них самих». И ведь голландский хакер отчасти прав, хотя 29 октября 2002 года на очередном судебном разбирательстве он проиграл.
2004 год отметился несколькими важными событиями— рождением первого червя для мобильных телефонов и появлением вируса, который «жил» непосредственно на веб-сайтах, заражая компьютеры уже без помощи электронной почты. С этих пор частые слова: «Я не пользуюсь Outlook’ом, поэтому не боюсь вирусов» произносились все реже и реже. В этом же году червь под названием MyDoom за неделю опустошил мировую казну на 23 млрд долларов. С одной стороны, конечно, нанес миллиардные убытки, но с другой — обогатил производителей компьютерной техники и комплектующих, а также создателей программного обеспечения и антивирусных пакетов.
Совсем недавно вирусмейкеры хвастались друг перед другом, чей вирус заразил больше компьютеров, это было искусством, творчеством, наукой, а сейчас создание вирусов превратилось в криминальную сферу Интернет-мошенничеств. Сейчас создатели вирусов сравнивают, кто больше заработал денег благодаря своим «детищам», попросту говоря — кто больше украл.
Ущерб мировой экономике от вирусов составляет: за период с 1996 по 1999 гг. — около 24 млрд долларов, за период с 2000 по 2002 гг. — порядка 50 млрд долларов, за один 2003 год — уже более 55 млрд долларов. За десять — с 1996 по 2006 год — вирусы превратили в пыль более одной четверти триллиона долларов, а это, между прочим, превосходит бюджет России за 2006 год. Неудивительно, что некоторые страховые компании компенсируют ущерб, нанесенный компьютерными вирусами — наравне с землетрясением, пожаром, автокатастрофой, ограблением, а в Microsoft создан многомиллионный фонд по вычислению личностей хакеров.
А ведь вирус — это всего лишь.
Принцип распространения вируса и причинения вреда
Так же, как и обычный вирус гриппа, который не может распространяться без клетки-хозяина, компьютерный вирус не может передоваться без привязки к файлу или документу. Он может распространяться на одном или нескольких компьютерах, которые являются частью единой локальной или глобальной сети.
Вирус непосредственно влияет на любые информационные ресурсы и компьютерные устройства при взаимодействии с ними, и как следствие изменяет их работу. Сначала он подключается к разрешенной легитимной программе, которая поддерживает сценарии макросов или другие программные алгоритмы действий, для выполнения своего кода, а затем приступает к нанесению ущерба. Эффекты от вредоносного вирусного воздействия могут быть очень непредсказуемыми. В результате вирусной активности может быть нарушена целостность программного обеспечения системы, влекущая за собой ряд необратимых процессов, вплоть до удаления операционной системы и поломки структур размещения данных, а также повреждение или полное уничтожение разнообразных пользовательских данных. Учитывая, что у подавляющего большинства пользователей конфиденциальная информация, такая как, закрытые учетные данные, финансовые реквизиты кредитных карт и т.д., хранится на собственных персональных компьютерах и других электронных устройствах, это может быть чрезвычайно опасно.
В большинстве случаев вирус запускается автоматически и моментально начинает осуществлять комплекс мер, конечной целью которых является причинение вреда или кража информации. Однако вирус не обязательно сразу начинает поражать компьютерное устройство пользователя после проникновения. Он может находиться в спящем режиме или в состоянии ожидания и бездействовать некоторое время, пока его вредоносный код не будет исполнен или не будут соблюдены определенные условия его активации, например, выполнены определенные действия пользователем или мошенником, свершится определенное событие, наступит конкретная дата или время и т.д. Но независимо от сроков запуска вируса, после его активации он моментально начнет наносить вред и поражать все цели, для которых он был разработан.
Механизм работы
Попав на компьютер жертвы, первым делом вирус должен внедриться в код другой программы, либо же в реестр, автозапуск, или другие исполняемые файлы и временно "залечь на дно", активируясь после запуска зараженного файла или программы.
Запуск зараженного файла это триггер, пусковой механизм всей цепочки заражения, ибо программа исполняет помимо своего кода - инородный код вируса. Как только система запустила вирус, тот начинает заражать все что видит, включая сети и соседние компьютеры, находящиеся в одном сетевом окружении, либо же выполняет те инструкции, которые задумывал автор вируса, будь то кража или уничтожение данных.
Вирусами так же могут называться самоисполняемые макросы в Microsoft Office, либо bat-пакеты, засевшие в автозапуске системы.
Сейчас же основным местом заражения является интернет. Раньше были распространены такие каналы заражения как диски, дискеты, флешки.
Чтобы избежать попадания вируса на компьютер, используйте только проверенные источники получения информации, не разрешайте незнакомым программам изменять системные файлы, следите за автозапуском и планировщиком заданий, и самое главное, без надобности не работайте под привилегированной учетной записью в системе (под администратором) и регулярно делайте резервные копии системы.
Так же можете поставить firewall, который будет следить за безопасностью вашей системы и запрещать несанкционированный доступ.
Читайте о том, что такое вирус, как он попадает на устройство. А также, о признаках заражения компьютера пользователя вирусами и о способах борьбы с ними.
Немного истории
Все началось еще очень давно, а именно в 1951 году, когда американский математик венгерского происхождения Джон фон Нейман предложил архитектуру самoвоспроизводящихся программ. Это был ключевой момент, потому что главная задача вирусов это размножение и распространение.
Стоит отметить, что терминология "вирус" относится ко всем программам, которые вредят компьютеру, негативно влияя на его работу. К вирусам относятся так же:
Из истории вирусов
Основы теории самовоспроизводящихся механизмов заложил американец Джон фон Нейман (1903-1957), внесший немалый вклад в создание первых ЭВМ и разработку методов их применения. По его лекциям в 1966 году вышла в свет книга «Теория самовоспроизводящихся автоматов» (через пять лет ее переведут и издадут на русском языке) — в ней рассматриваются основы программ, которые вскоре назовут компьютерными вирусами. В статье Л.С. Пенроуз (1957 год) приводится пример двумерной модели самовоспроизводящихся механических структур, способных к активации, мутации, размножению и захвату.
Прототип компьютерного вируса родился ради забавы. В 1961 году инженеры компании Bell Telephone Labs от нечего делать создали игру Darwin, в которой несколько внутренних программ, названных «организмами», загружались в память компьютера и «сражались» за ресурсы.
И сразу же писатели-фантасты берут новую тему на вооружение и раскручивают ее. В 1970 году Г. Бенфорд в своем рассказе создает антивирусную программу Vaccine, а через два года выходит книга Д. Герролда, в которой описаны червеподобные программы. В романе У. Гибсона «Нейромант» (1984 год) компьютерные вирусы используются в качестве опаснейшего оружия. Писатели-фантасты не предсказали Интернет, но вот о проблемах с вирусами они заподозрили сразу. А также ввели в мировой обиход термины: собственно, «компьютерный вирус»— для обозначения вредоносной программы, внедрившейся в компьютерную систему, и «вирус-червь» (1975)— для программ, самостоятельно перемещающихся по сети.
Первым настоящим компьютерным вирусом, причинившим неудобства и распространившимся за пределами лабораторий (до этого времени вирусы носили познавательный и демонстрационный характер), считается программа, созданная в 1981 году Джо Деллинджером и незамысловато названная— Virus. И вот с тех пор, пока еще в среде DOS, вирусы рождались один за другим— все более неожиданные и зловредные. Начинающие программисты, в большинстве своем подростки, считали обязательным для себя написать новый вирус и пройти таким образом посвящение в хакеры.
В 1988 году был создан первый сетевой червь, эксплуатирующий переполнение буфера. В 1989 году широкое распространение получил вирус DataCrime: до 12 октября он незаметно размножался, а после начал разрушать файловую систему. От него пострадало около 10% компьютеров Нидерланд, США и Японии. В это же время был создан первый «троянский конь» под названием AIDS (СПИД). Вирус закрывал доступ к жесткому диску, высвечивая на экране надпись: «Пришлите чек на $200 на адрес такой-то». Автор был арестован и осужден за вымогательство. Вирусы принимали все более глобальный характер, эпидемии возникали все чаще и чаще, заражая сотни тысяч компьютеров, и многие компании всерьез задумались о программных средствах безопасности.
Многие современные сложные программные комплексы нуждаются в надежной антивирусной защите. От надежности работы таких программ зависит качество предоставления правовых услуг многим серьезным организациям. Качественная и своевременная правовая поддержка для бизнеса - это гарантия надежной работы.
В 1995 году появилась операционная система Windows 95, а вскоре другой продукт компании Microsoft— всем хорошо известный MS Office. Вот они-то, подобно навозной куче, и стали самой благотворной средой для размножения, распространения и развития вирусов. Но создателям вирусов— вирусмейкерам— приходилось еще туго, ведь основным разносчиком их «детищ» была дискета, которая никак не способствовала скоростному заражению множества компьютеров. Но эра Интернета уже наступала! Благодаря MS Word и Excel вышел на мировую арену макровирус. Первоначально он носил безобидный характер (замена букв, удаление знаков препинания, перестановка цифр и тому подобные мелкие пакости), поэтому пользователи спокойно относились к нему и не били тревогу, но когда макровирусы стали форматировать винчестер (удаляя при этом всю информацию)— тут уж затрезвонили во все колокола. Макровирусы основательно заставили пользователей обратить свое внимание на средства защиты (в частности Office Guard).
В июне 1998 года мир захватывает эпидемия вируса Win95.CIH (он же «Чернобыль»), ставшая самой разрушительной за все предыдущие годы. Вирус не только уничтожал всю информацию на дисках, но и перезаписывал Flash BIOS, что приводило к вынужденной замене микросхемы памяти, а нередко даже материнской платы и всего системного блока, ведь комплектующие «цепляются» именно на «материнку». Это был поистине супервирус, принадлежавший «перу» (а точнее— клавиатуре) талантливой творческой личности, эдакому доктору Мориарти. «Чернобыль» (названный так из-за того, что срабатывал 26 апреля) не менял своего размера, вследствие чего трудно находился и почти не поддавался лечению, а после перезаписи данных на микросхемах он стирал всю память на жестком диске— делал, так сказать, контрольный выстрел.
Автора «Чернобыля» вычислили в апреле 1999 года. Им оказался студент Тайваньского технологического института Чень Инхао (CIH— его инициалы), но так как ни одна местная компания не подала иск и даже жалобу в связи с вирусом, полиция не смогла арестовать хакера.
Определение вируса по нарушению кода
Невозможность надежного распознавания вирусов в рамках классических моделей дает повод задуматься о подходе к решению проблемы с другой стороны.
При традиционном подходе создается как можно более точная модель вируса, основанная на понятиях «рекурсивная репликация» и, опционально, «вредоносность». В рамках созданной модели дается определение вируса. Затем констатируется невозможность использования этого определения для оценки соответствия ему исследуемых информационных объектов.
Но можно поступить наоборот: поставить целью практическую применимость определения вируса для простого и гарантированного решения задачи его распознавания — и для комплексного решения проблемы цифровых инфекций в целом. Затем, используя это определение, можно выяснить, какая модель вируса ему соответствует.
Для целей информационной безопасности самым удобным будет строго формализованное, соразмерное и системное определение, которое позволяет легко выполнять оценку соответствия ему произвольных информационных объектов. Процедура сравнения свойств каждого исследуемого объекта с определением должна иметь форму короткого, надежного и хорошо контролируемого алгоритма, чтобы ее можно было автоматизировать и применять на практике.
Самое простое и очевидное решение — считать вирусом любое внедрение постороннего кода (т.е. произвольной последовательности символов) в эталонную, исходную, незараженную программу. Это означает отказ от ресурсоемкой и в общем случае неразрешимой задачи анализа процессов взаимодействия проверяемого кода с машиной — и отказ от попыток формализации этих процессов. Вирус определяется не через свойства последовательности символов, а через ее местоположение в машине (компьютере, вычислительной системе). Иными словами, одна и та же последовательность символов может считаться или не считаться вирусом в зависимости от того, где она находится по отношению к «системе координат» машины — в каком именно месте ленты Тьюринга, в какой именно области оперативной памяти, жесткого диска и т.п. Вирусом считается любая последовательность символов, которая находится «в неположенном месте», т.е. в области, зарезервированной для другого информационного объекта — охраняемого кода.
Строгое определение для обычной SISD-машины, которое можно адаптировать и для более широкого круга информационных систем, формулируется так: компьютерный вирус — это измененная по сравнению с эталоном часть кода.
Используя на практике модель, соответствующую приведенному определению вируса, вы перестраховываетесь и уходите в глубокую и очень надежную оборону. Вместо анализа неизвестного кода для точного ответа на вопрос о возможности инициирования им рекурсивной репликации, вы исходите из того, что такая возможность не исключена. Вместо анализа неизвестного кода для точного ответа на вопрос о его вредоносности, вы исходите из того, что внесение в охраняемый код любого, даже самого малого изменения с некоторой вероятностью вызывает нарушение его функций — точно так же, как нарушение функций биологической ДНК может быть вызвано замещением единственного нуклеотида в последовательности.
Для удобства решения многих практических задач в сложных информационных системах определение можно расширить на те области данных, которые должны иметь в системе такую же неприкосновенность, как исполняемый код. В общем случае, зараженным объявляется любой охраняемый информационный объект, в границы которого попал другой объект.
Заметим, что при отсутствии эталона для произвольного кода весь этот код по данному определению считается вирусом. Хотя это непривычно звучит, это надо хорошо понять и всегда иметь в виду. О том, откуда берется эталон, мы поговорим в следующих выпусках блога: для этого понадобится привлечение социальных факторов.
Лингвистическая справка. Слово «вирус» появилось в современных языках чуть более 100 лет назад, после открытия биологических вирусов. Их характерная черта — репликация, исполняемая соответствующей средой. Но у слова «вирус» есть и другое, исходное значение: на латыни это слово обозначает яд. Никакой связи с репликацией: вирус — это объект, характеризующийся нарушением функций внешнего объекта, в который он проник. Использование термина «компьютерный вирус» в контексте деструктивного воздействия настолько же корректно, насколько и в контексте репликации. Использование неформальных терминов «вредонос» или «зловред» нежелательно, особенно в технологической терминологии, вне социального контекста. Термин «антивирусная защита» (а не «антивредоносная» и не «антизловредная») наиболее устойчив в русском языке и имеет очевидные коннотации.
Введение
Главной функциональной особенностью всех персональных электронных устройств является их направленность на осуществление высокоскоростных вычислительных процессов, нацеленных на разработку, обслуживание и безопасное хранение информационных материалов, представляющих для пользователей определенное значение.
Это особенно важно ввиду постоянно увеличивающегося объема разнообразных цифровых данных, воссоздающихся и распространяющихся ежедневно пользователями посредством различных способов передачи. В большей степени на значительное увеличение доли цифровых информационных данных оказало влияние образование информационной компьютерной сети «Интернет» , и наличие простых способов, прямого или удаленного, подключения к ней.
Однако с появлением «Интернета» и массовым применением разнообразных компьютерных устройств как основного средства управления информационными ресурсами, многократно возросли риски попыток непосредственного повреждения, уничтожения или кражи пользовательских данных, и удаленного проникновения на закрытые цифровые устройства для выполнения противоправных действий. Одним из возможных и наиболее распространенных является способ причинения вреда посредством использования разнообразных зловредных компьютерных программ, получивших обобщающее название – компьютерные вирусы.
Далее мы подробно остановимся на понятии вируса, механизме его проникновения, признаках заражения компьютерного устройства пользователя и способами борьбы с ним.
Какое из определений вируса лучше?
Сравните подходы, используемые в различных моделях и определениях вируса.
Вирус — это:
a) соответствующая определенным критериям функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект;
b) любая функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект.
Для распознавания вируса в проверяемом объекте нужно:
a) провести полное аналитическое или алгоритмическое изучение свойств и поведения системы, состоящей из проверяемого объекта и машины (среды);
b) определить местоположение проверяемого объекта в машине (среде).
Определение вируса основано на:
a) свойстве рекурсивной репликации;
b) методе сравнения образца с эталоном.
Еще раз подчеркнем существенную роль среды в процессе репликации. Например, сами по себе последовательности символов «SENDMAIL» (8 байт), «COPY» (4 байта) или «CP» (2 байта), которые могут содержаться в простейшем вирусе и которыми он может оперировать, не несут в себе ничего такого, что было бы специфично для процесса репликации (тем более — рекурсивной). Ничего подобного не содержит в себе и короткая байтовая последовательность, вызывающая функцию копирования из API операционной системы в машинном коде. В этой последовательности, если рассматривать ее вне среды, не содержится ни механизма репликации, ни его описания, ни даже намека на него.
Более того: в реальном вирусе может не содержаться даже этой информации — в буквальном смысле! Вместо нее вирус, например, может включать в себя сколь угодно сложный криптоалгоритм, а ключом к этому алгоритму может служить произвольная комбинация объектов среды, способная появиться в ней в неопределенном будущем. Это означает, что до некоторого неизвестного момента, до выполнения средой некоторого неизвестного при анализе условия принципиальное отсутствие в коде вируса каких-либо связей с понятиями как репликации, так и рекурсии можно гарантировать с точностью математического доказательства. Но даже в этом случае вирус, слившийся в свойствах со средой и образовавший с ее элементами сложную, распределенную в пространстве и времени систему, сохраняет возможность размножения кода.
Таким образом, в современных больших информационных системах формализация и поиск признаков рекурсивной репликации в отдельных объектах представляются бесполезными даже с теоретической точки зрения. А рассматривать каждый объект в совокупности со всей средой — невозможно. Если в качестве входных данных для анализа единичного объекта требуется подстановка в абстрактную формулу полной информации о состоянии практически бесконечной (из-за огромного размера и перманентной изменчивости) среды — значит, выбран тупиковый путь. Ранее мы уже показали, что Интернет является единой автопрограммируемой средой, единой вычислительной системой, события в которой могут менять код в отдельно взятом системном блоке. Поэтому все эти события должны учитываться в формальном определении вируса, если оно основано на свойствах кода — как в абстрактной модели, так и на практике. И то, и другое исключено.
В условиях глобальной сети, где возможны неограниченные комбинации прямых и обратных связей между элементами, очевидны и давно применяются методы массовой репликации кода, не имеющие отношения к классическим, рекурсивным. Если опасный код заражает произвольный системный блок этой сети, то не имеет значения, является ли это заражение рекурсивным — или же дочерний код сформирован родительским по гораздо более сложному алгоритму. Алгоритм может быть любым. А на основе неизвестного алгоритма нельзя строить какие-либо точные модели, применимые на практике.
Не следует забывать, что в реальных вычислительных системах вирусы программируются (т.е. управляются) людьми. А все то, что управляется человеком, почти не поддается формализации.
Из изложенного следует вывод, что формальное определение компьютерного вируса, основанное не на признаке рекурсивной репликации, а на принципиально иных признаках, во многих случаях может оказаться наилучшим.
Это не значит, что понятие рекурсивной функции перестало иметь значение в контексте вирусов. Оно остается крайне важным, хотя и не может рассматриваться как определяющее. Оно не позволяет точно позиционировать цель, явление, предмет угрозы и ее смысловую сущность с использованием приемлемого математического аппарата. Поэтому лучше всегда иметь в виду альтернативы. Отчетливое понимание специалистом по информационной безопасности нескольких разных определений вируса, соответствующих им теоретических моделей и аспектов антивирусной защиты дает наибольшие возможности для решения практических задач.
P.S. Конечно, возможны и другие определения, кроме приведенных в статье. Их можно поискать в Сети или создать самостоятельно. Главное, что надо при этом помнить: по нормам формальной логики грамотное определение должно позволять, как минимум, определить искомый объект в ряду других :)
С вирусами сталкивались все, но знаете ли вы как происходит заражение компьютера и как предостеречь себя от угрозы проникновения?
Определение вируса по Адлеману
Тема компьютерных вирусов никогда не была главной для Леонарда Адлемана (соавтора технологии шифрования с открытым ключом и лауреата премии Тьюринга 2002 года), уделяющего значительно больше внимания другим проблемам информационных технологий, математики и молекулярной биологии. Но в результате совместной работы с Коэном он счел необходимым несколько позже, в 1990 году, написать и опубликовать работу «An Abstract Theory of Computer Viruses». Модель Адлемана сильно отличается от модели Коэна. Но и для этой модели делается доказательный вывод о невозможности решения задачи распознавания произвольного вируса.
Адлеман, как профессиональный математик, дал определение вируса в категориях и терминах рекурсивных функций. Для определения было привлечено новое понятие — исходной, эталонной, еще не зараженной этим вирусом программы. Вирус был определен как рекурсивная функция, соответствующая некоторым описанным критериям и выполняющая отображение («map») эталонной программы на другую, считающуюся зараженной. В качестве действий зараженной программы Адлеман назвал «повреждение» (информации, к которой эта программа имеет доступ), «заражение» (других информационных объектов) и «имитацию» (нормального поведения исходной, незараженной программы). Как и в работах Коэна, вирус рассматривается во взаимосвязи со средой (одна функция — во взаимодействии с другой). Рекурсивная репликация осталась определяющим критерием вируса, а другим определяющим критерием стала вредоносность (формализацию которой в модели Адлемана понять и использовать в качестве практически применимого алгоритма, кстати, довольно трудно).
В 2005 году китайские исследователи Zhihong Zuo, Mingtian Zhou и Qing-xin Zhu опубликовали работу «On the Time Complexity of Computer Viruses», расширяющую модель Адлемана на сложные типы вирусов, в частности — на полиморфные вирусы. Это потребовало значительного усложнения модели, но не изменило ее сути. В работе подтверждается прежний вывод о невозможности распознать произвольный вирус, точнее — о возможности существования вирусов, принципиально не поддающихся распознаванию в рамках используемой модели.
В работе Адлемана нам представляются особенно важными два момента. Во-первых, в качестве стратегического — и, по сути, единственного — средства защиты от вирусов он совершенно верно назвал полную и безусловную изоляцию компьютера, т.е. закрытость среды (что касается альтернативных способов защиты, в работе лишь поставлен вопрос о том, насколько они реальны). Во-вторых, ученый показал необходимость привлечения понятия исходной, незараженной программы в качестве обязательного условия определения вируса.
Напомним, что под изоляцией компьютерных систем применительно к вирусам всегда имеется в виду взаимная изоляция систем, контролируемых разными хозяевами. Разумеется, нет необходимости во взаимной изоляции отдельных элементов любой замкнутой системы, которая находится под полным контролем одного хозяина. Собственную систему хозяин программирует так, как сочтет нужным (в этом состоит отличие хозяина от номинального владельца). Поэтому вряд ли можно использовать понятие «вредоносность» вне социального контекста, исключительно в технологических категориях: никакие процессы изменения программ и данных сами по себе «вредоносностью» не обладают.
Читайте также: