Что такое компьютерный вирус какими свойствами обладают компьютерные вирусы
В наш век развития информационных технологий трудно представить повседневную жизнь человека без интернета, компьютера и других гаджетов, которые смогли существенно облегчить жизнь и сделать оплату – быстрой, хранение информации – компактным, а общение – виртуальным. Но на самом деле не все так гладко. С развитием полезных программ появляются и вредоносные – компьютерные вирусы. Появились такие вирусы в 80-х годах прошлого века, и с тех пор активно развиваются, обходя все новые и новые пути защиты.
Антивирусная программа
Для борьбы с вирусами существуют специальные программы, которые призваны уничтожать чужеродный код, но скорость появления новых вирусов гораздо выше, чем разработка «противоядий» для них. Если не устанавливать специальное программное обеспечение, то выявление вирусов в начальной стадии практически невозможно.
Признаки заражения компьютера
Чаще всего вредоносный код уничтожается антивирусной защитой, но бывают моменты, когда вирусам удается пробить брешь в обороне и компьютер отказывается нормально функционировать.
Подозрения на заражение возникает при «странном» поведении компьютера:
- существенно снижается производительность системы, и она начинает «тормозить» даже, когда выполняет простейшие задачи,
- приложения могут работать не совсем корректно,
- сайты антивирусных программ автоматически перестают обновлять защитное ПО.
Если данные признаки проявились, необходимо срочно начать лечение компьютера. Пренебрежение мерами безопасности может привести к печальным последствиям.
Сканируйте систему несколькими антивирусными программами, так как, они могут быть повреждены, ведь задачей злоумышленника, при загрузке вредоносного кода в систему, является нейтрализация приложения для его выявления.
Виды вирусных программ
И так, вирус являет собой вредоносную программу, способную к самокопированию и внедрению в какую-либо программу или файл. В настоящее время понятие «компьютерный вирус» является общим, и включает в себя не только файловые вирусы, но и множество других, несущих вред программ.
Рассмотрим самые распространенные:
Файловые вирусы. Это классические вирусы, которые возникли раньше всех остальных. При заражении файловым вирусом его код внедряется в какой-либо файл, тем самым заражая его и мешая дальнейшей работе с ним. Вред от программы может быть самым разным – от простого повреждения файла до сбоя работы системы, если вирусов много или же заражено слишком много файлов. Как правило, не проявляют себя, пока пользователь не запустит зараженный файл. «Поймать» такой вирус можно при скачивании файлов с непроверенных сайтов.
Сетевые «черви». Представляет собой программу, способную к очень быстрому самокопированию. «Червь» рассылает себя через различные мессенджеры, почту. Может создавать на компьютере множество копий файлов и папок, что приводит к большому количеству информационного мусора и замедляет работу системы. Сетевые «черви» могут попасть на компьютер, используя различные уязвимости операционной системы, браузера, могут также распространиться по локальной сети.
«Троян» (троянский конь) – программа, с помощью которой злоумышленник может получить доступ к компьютеру. Эта программа имеет в своем «составе» две части – клиентскую и серверную. Посредством первой отправитель вируса может удаленно управлять вирусом в чужом компьютере. Вторая используется уже для самого заражения, внедряясь в какую-либо полезную программу. «Троян» может нанести большой вред скорее не компьютеру, а его владельцу, так как эта программа используется для кражи различных данных и паролей. Собрав информацию, злоумышленник может попросту продать ее заинтересованным лицам.
Программа-шпион. Такая программа отслеживает адреса, пароли и сайты, которыми пользуется владелец компьютера. Надо ли удивляться, что потом пользователь видит в рекламе ссылки именно на ту информацию, которой интересовался.
Руткиты. Вирусы, которые получают доступ к компьютеру на самом глубоком уровне и собирают любые данные о системе. Обнаружить их довольно сложно, в связи с глубоким проникновением они могут обходить антивирусные программы и оставаться незамеченными.
Кейлоггер. Это «перехватчик» информации, которая вводится с клавиатуры. Запоминает информацию, может делать скриншоты, и т.п. Обнаружить его тоже сложно, так как он часто скрывается под маской какого-либо драйвера.
«Зомби» или ботнет. Как правило, вирусы такого типа заражают целую сеть компьютеров, которая впоследствии используется для различных кибер-атак и рассылки спама. Обнаружить их порой не могут даже самые мощные антивирусы.
Блокировщики. Ставят серьезную преграду на пути к доступу в операционную систему – пользователь просто не сможет ничего сделать на своем ПК, так как появится неисчезающее окно с обвинением в использовании, например, пиратского ПО. Обычно злоумышленник просит определенную сумму денег за разблокировку, которую он, конечно же, производить не планирует.
Загрузочные вирусы. Способны поразить жесткий диск, существенно замедлить работу компьютера и заметно снизить производительность. Такие вирусы важно своевременно обнаружить, так как при длительном их воздействии система может «полететь».
Сейчас, я постараюсь объяснить Вам ответ на этот вопрос более простыми и понятными словами. Само название – «вирус», навевает больше ужаса, чем понимание сути возможной угрозы. Тем не менее, это не значит, что нужно перестать заботиться о защите своего компьютера. Для лучшего понимания, вирус стоило бы называть вредоносной программой.
Если же быть более точным в определении, то компьютерный вирус это программа или часть кода, которая загружается на ваш компьютер, и запускается в скрытом режиме. Эти вредоносные программы удаляют и присоединятся к приложениям, играм и другим программам.
Также, вирусы могут копировать себя, что влияет на их размножение и заражение посредством всемирной паутины (Интернет), различных флэш накопителей и дисков. В наше время, количество вредоносных программ стремительно растет. Более того, у них появились разновидности и типы.
Сейчас, я постараюсь описать некоторые типы вирусов. Это необходимо для того, чтобы у вас сложилось представление об их вредоносности.
Разновидности вирусов
Кластерный вирус . Он отличается от своих предшественников тем что, присоединяется к другим программам. И при запуске любой программы, кажется, что на компьютере заражены все программы. Хотя, на самом деле, вирус находится только в одной из них. Эти вирусы часто используют технологии скрытия, чтобы не засветить свое присутствие.
Макро вирус . Этот вирус подобен макросу, который распространяется в почтовых вложениях посредством текстовых документов (Word и Excel). Именно эти текстовые документы поддерживают сложные макроязыки, которые способствуют благоприятной среде обитания и размножению макро вирусов. Запуск вредоносной программы в данном случае, происходит при открытии документа. Также, они способны размножаться, заражая другие текстовые документы, что вызывает последующий запуск макровируса через открытие текстового файла.
В следующей статье — «Защита компьютера от вирусов», я постараюсь ответить на вопросы, связанные с вредоносностью вирусов и их последствиями. Расскажу, чего стоит бояться простому пользователю
зараженного компьютера, и объясню, какими принципами манипулирования пользуются злоумышленники, которые хотят, чтобы вы сами установили вредоносную программу.
Постарайтесь не забывать и раз в месяц проверять свой компьютер на вирусы, благо таких программ достаточно, и не требуют установки, в любо случае лучше обратиться к специалисту.
Читайте о том, что такое вирус, как он попадает на устройство. А также, о признаках заражения компьютера пользователя вирусами и о способах борьбы с ними.
Введение
Главной функциональной особенностью всех персональных электронных устройств является их направленность на осуществление высокоскоростных вычислительных процессов, нацеленных на разработку, обслуживание и безопасное хранение информационных материалов, представляющих для пользователей определенное значение.
Это особенно важно ввиду постоянно увеличивающегося объема разнообразных цифровых данных, воссоздающихся и распространяющихся ежедневно пользователями посредством различных способов передачи. В большей степени на значительное увеличение доли цифровых информационных данных оказало влияние образование информационной компьютерной сети «Интернет» , и наличие простых способов, прямого или удаленного, подключения к ней.
Однако с появлением «Интернета» и массовым применением разнообразных компьютерных устройств как основного средства управления информационными ресурсами, многократно возросли риски попыток непосредственного повреждения, уничтожения или кражи пользовательских данных, и удаленного проникновения на закрытые цифровые устройства для выполнения противоправных действий. Одним из возможных и наиболее распространенных является способ причинения вреда посредством использования разнообразных зловредных компьютерных программ, получивших обобщающее название – компьютерные вирусы.
Далее мы подробно остановимся на понятии вируса, механизме его проникновения, признаках заражения компьютерного устройства пользователя и способами борьбы с ним.
Простое определение понятия компьютерный вирус
Компьютерный вирус представляет собой определенный тип вредоносного программного обеспечения, обладающий функцией самостоятельного скрытого копирования, способный изменять или дополнять содержимое других файлов, приложений и программ, присутствующих на том же компьютерном устройстве, что и злонамеренное программное обеспечение. Как только вирус сможет проникнуть на устройство или в отдельное, предназначенное для него, место, он вставляет свой собственный код, и процесс репликации завершается успешно. Компьютерные вирусы имеют широчайший спектр разнообразных целей и могут представлять не только угрозу частной жизни пользователя, но и нести полную ответственность за экономический ущерб на значительные суммы.
Помимо основной цели, вирус часто содержит дополнительные функции, направленные на затруднение полноценного функционирования электронно-вычислительных устройств. И даже, если первоначально создатель вредоносной программы не предполагал причинение какого-либо ущерба, в любом случае, вирусы занимают свободное дисковое пространство на запоминающих устройствах, уменьшая их полезную емкость, и дополнительно расходуют ресурсы системы, негативно влияя на общую производительность.
Появившись впервые в 1981 году, компьютерные вирусы претерпели многократные изменения, приведшие к существенным модернизациям различных вредоносных свойств зловредных программ, комбинированию разнообразных видов угроз, увеличению уровня скрытности и снижению заметности, а также повышению общей живучести опасных программ.
Принцип распространения вируса и причинения вреда
Так же, как и обычный вирус гриппа, который не может распространяться без клетки-хозяина, компьютерный вирус не может передоваться без привязки к файлу или документу. Он может распространяться на одном или нескольких компьютерах, которые являются частью единой локальной или глобальной сети.
Вирус непосредственно влияет на любые информационные ресурсы и компьютерные устройства при взаимодействии с ними, и как следствие изменяет их работу. Сначала он подключается к разрешенной легитимной программе, которая поддерживает сценарии макросов или другие программные алгоритмы действий, для выполнения своего кода, а затем приступает к нанесению ущерба. Эффекты от вредоносного вирусного воздействия могут быть очень непредсказуемыми. В результате вирусной активности может быть нарушена целостность программного обеспечения системы, влекущая за собой ряд необратимых процессов, вплоть до удаления операционной системы и поломки структур размещения данных, а также повреждение или полное уничтожение разнообразных пользовательских данных. Учитывая, что у подавляющего большинства пользователей конфиденциальная информация, такая как, закрытые учетные данные, финансовые реквизиты кредитных карт и т.д., хранится на собственных персональных компьютерах и других электронных устройствах, это может быть чрезвычайно опасно.
В большинстве случаев вирус запускается автоматически и моментально начинает осуществлять комплекс мер, конечной целью которых является причинение вреда или кража информации. Однако вирус не обязательно сразу начинает поражать компьютерное устройство пользователя после проникновения. Он может находиться в спящем режиме или в состоянии ожидания и бездействовать некоторое время, пока его вредоносный код не будет исполнен или не будут соблюдены определенные условия его активации, например, выполнены определенные действия пользователем или мошенником, свершится определенное событие, наступит конкретная дата или время и т.д. Но независимо от сроков запуска вируса, после его активации он моментально начнет наносить вред и поражать все цели, для которых он был разработан.
Последствия и признаки возможного заражения вирусом
Злонамеренные вирусные программы имеют определенный, предварительно запрограммированный создателем, собственный алгоритм действий, направленный на достижение конкретного результата. И в зависимости от своего предназначения, вирус может быть, как практически безвредным, не способным причинить серьезный ущерб системе или данным пользователя, так и обладать зловредными функциями, реализация которых может привести к печальным последствиям. Также вирусы могут объединятся в некое подобие комплексов, сочетая в себе опасные характеристики нескольких видов вредоносных программ. А некоторые из известных компьютерных вирусов представляют особую опасность и могут серьезно повредить ваш компьютер. Злонамеренные вирусные программы имеют широкий набор вредоносных эффектов, и после проникновения на устройство пользователя могут приступить к их воплощению. Например, создавать конфликтные ситуации и способствовать возникновению ошибок в работе компьютера, по причине отдельных неучтённых тонкостей взаимодействия с операционной системой и другими приложениями, похищать пароли учетной записи и конфиденциальную информацию с устройства, уничтожать хранящиеся на нем данные, скрытно производить массовую рассылку рекламной корреспонденции и копий вирусных программ вашим почтовым адресатам через электронное приложение, тайно использовать компьютерное устройство пользователя для получения финансовых выгод или удаленных сетевых атак и т.д.
- Появляются частые всплывающие окна.
- Изменена ваша домашняя страница.
- Происходит массовая незапланированная отправка электронных писем с вашей учетной записи электронной почты.
- Возникают частые сбои компьютера.
- Значительно замедлилась скорость работы компьютера, участились задержки в отклике системы и реакции на любые команды или манипуляции инструментами управления (мышь, клавиатура).
- Неизвестные программы автоматически запускаются после включения компьютера.
- Происходят различные несанкционированные действия, такие как смена пароля и т.д.
Способы защиты от вирусов
Но самый лучший возможный способ борьбы с компьютерным вирусом – это наличие на вашем устройстве антивирусного программного обеспечения. Вредоносные вирусные программы представлены разными видами, основные из которых – это файловые вирусы, загрузочные вирусы, макровирусы, полиморфные вирусы, резидентные вирусы, логические бомбы, вирусы-вымогатели. Но механизм воздействия каждой из них известен производителям антивирусов, и на регулярной основе антивирусные приложения получают обновления собственной базы вирусных угроз для повышения уровня защищенности устройства и данных пользователя, а также снижения риска от возможного заражения зловредными приложениями. В международной компьютерной информационной сети «Интернет» существует множество вариантов защитных антивирусных инструментов различных разработчиков. И наиболее популярные из них представлены компаниями «Лаборатория Касперского» , «Avast» , «ESET» , «McAfee» , «AVG» , «Avira» и «Bitdefender» . Они обеспечивают полную безопасность вашей системы и предупреждают вас в случае, если вы собираетесь загрузить файл или программу, содержащую вредоносное программное обеспечение.
Более подробно ознакомиться с видами вредоносных вирусных программ и способами защиты от них при помощи антивирусных инструментов безопасности различных доверенных разработчиков можно в наших ранних статьях, ссылки на которые представлены в следующем списке:
Заключение
Повсеместное применение разнообразных персональных компьютерных устройств и массовый перевод большинства видов современных информационных ресурсов в электронно-цифровой формат значительно облегчили возможность хранения, обработки и перемещения информации, в зависимости от непосредственного желания пользователей. Однако также дополнительно возникли риски, вызванные появлением различных видов вредоносных вирусных программ, способных заражать устройство и файлы пользователей с целью причинения необратимого вреда.
Широкий диапазон компьютерных вирусов, рассчитанных на разнообразные зловредные действия, вынуждает пользователей принимать различные меры, направленные на защиту своих устройств и расположенных там данных. Понимание степени вирусной угрозы и последствий возможного ущерба поможет пользователям с должной ответственностью относиться к любым источникам данных, и в обязательном порядке использовать антивирусное программное обеспечение от доверенных производителей для поддержания соответствующего уровня системной безопасности.
В первом, втором и третьем выпусках блога мы рассказали о том, как автопрограммируемость — врожденная черта фон-неймановских компьютеров — привела к появлению в них вирусов. Темой четвертого выпуска был основополагающий метод антивирусной защиты — многоуровневое фиксирование программ на основе разделения программ и данных. Этот метод считается наиболее надежным из всех существующих. Была показана его взаимосвязь с другими основными методами.
В этой статье мы рассмотрим три разных определения понятия «компьютерный вирус». Первые два сформулированы Фредериком Коэном и Леонардом Адлеманом в фундаментальных работах 1984-1992 годов и считаются классическими в современной компьютерной науке. К сожалению, из них автоматически следует, что задача распознавания произвольного вируса неразрешима. Что и доказали эти ученые в тех же работах, где привели свои определения.
Поэтому третье определение мы специально сформулируем таким образом, чтобы оно делало ту же самую задачу полностью разрешимой. Для этого мы откажемся от нескольких плохо формализуемых понятий, которые лежат в основе классических определений, и отнесем к вирусам более широкий круг информационных объектов. Такой подход — решение сложной задачи с помощью замены категорий, в которых она формулируется — часто бывает удобен и полезен в практической работе специалиста по информационной безопасности.
Проблема компьютерных вирусов отчетливо проявилась примерно через 35 лет после появления концепции «stored program computer». Первые авторы и исследователи вирусов оказались под сильным впечатлением от невиданного ранее феномена саморепликации (в биологическом смысле термина) рукотворных объектов. Позже специалисты осознали, что это феномен не столько самих этих объектов, сколько исполняющей среды — даже такой относительно простой, как машина Тьюринга или фон-неймановская машина с типичной операционной системой, не говоря уже о более сложных архитектурах и сетевых средах. Стало ясно, что массовая репликация объектов не является специфическим свойством какого-то одного класса программ, а вполне типична для всех уровней сложной автопрограммируемой системы. Например, массово реплицируются блоки кода в парадигме ООП или программы-приложения, загружаемые пользователями с центрального сервера. Но несмотря на обнаружение стратегической роли среды, репликация до сих пор ассоциируется у большинства людей именно с вирусами — и лежит в основе их классических определений.
Определение вируса по Коэну
Фред Коэн, аспирант Университета Южной Калифорнии, заинтересовался проблемой компьютерных вирусов в начале 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 году он опубликовал статью, где приводилось строгое определение понятия «компьютерный червь» (частный случай вируса для некоторых сред, в частности — мультипроцессорных). В статье подтверждался прежний вывод: распознавание вирусов и подобных им объектов в общем случае невозможно.
Определение вируса по Адлеману
Тема компьютерных вирусов никогда не была главной для Леонарда Адлемана (соавтора технологии шифрования с открытым ключом и лауреата премии Тьюринга 2002 года), уделяющего значительно больше внимания другим проблемам информационных технологий, математики и молекулярной биологии. Но в результате совместной работы с Коэном он счел необходимым несколько позже, в 1990 году, написать и опубликовать работу «An Abstract Theory of Computer Viruses». Модель Адлемана сильно отличается от модели Коэна. Но и для этой модели делается доказательный вывод о невозможности решения задачи распознавания произвольного вируса.
Адлеман, как профессиональный математик, дал определение вируса в категориях и терминах рекурсивных функций. Для определения было привлечено новое понятие — исходной, эталонной, еще не зараженной этим вирусом программы. Вирус был определен как рекурсивная функция, соответствующая некоторым описанным критериям и выполняющая отображение («map») эталонной программы на другую, считающуюся зараженной. В качестве действий зараженной программы Адлеман назвал «повреждение» (информации, к которой эта программа имеет доступ), «заражение» (других информационных объектов) и «имитацию» (нормального поведения исходной, незараженной программы). Как и в работах Коэна, вирус рассматривается во взаимосвязи со средой (одна функция — во взаимодействии с другой). Рекурсивная репликация осталась определяющим критерием вируса, а другим определяющим критерием стала вредоносность (формализацию которой в модели Адлемана понять и использовать в качестве практически применимого алгоритма, кстати, довольно трудно).
В 2005 году китайские исследователи Zhihong Zuo, Mingtian Zhou и Qing-xin Zhu опубликовали работу «On the Time Complexity of Computer Viruses», расширяющую модель Адлемана на сложные типы вирусов, в частности — на полиморфные вирусы. Это потребовало значительного усложнения модели, но не изменило ее сути. В работе подтверждается прежний вывод о невозможности распознать произвольный вирус, точнее — о возможности существования вирусов, принципиально не поддающихся распознаванию в рамках используемой модели.
В работе Адлемана нам представляются особенно важными два момента. Во-первых, в качестве стратегического — и, по сути, единственного — средства защиты от вирусов он совершенно верно назвал полную и безусловную изоляцию компьютера, т.е. закрытость среды (что касается альтернативных способов защиты, в работе лишь поставлен вопрос о том, насколько они реальны). Во-вторых, ученый показал необходимость привлечения понятия исходной, незараженной программы в качестве обязательного условия определения вируса.
Напомним, что под изоляцией компьютерных систем применительно к вирусам всегда имеется в виду взаимная изоляция систем, контролируемых разными хозяевами. Разумеется, нет необходимости во взаимной изоляции отдельных элементов любой замкнутой системы, которая находится под полным контролем одного хозяина. Собственную систему хозяин программирует так, как сочтет нужным (в этом состоит отличие хозяина от номинального владельца). Поэтому вряд ли можно использовать понятие «вредоносность» вне социального контекста, исключительно в технологических категориях: никакие процессы изменения программ и данных сами по себе «вредоносностью» не обладают.
Определение вируса по нарушению кода
Невозможность надежного распознавания вирусов в рамках классических моделей дает повод задуматься о подходе к решению проблемы с другой стороны.
При традиционном подходе создается как можно более точная модель вируса, основанная на понятиях «рекурсивная репликация» и, опционально, «вредоносность». В рамках созданной модели дается определение вируса. Затем констатируется невозможность использования этого определения для оценки соответствия ему исследуемых информационных объектов.
Но можно поступить наоборот: поставить целью практическую применимость определения вируса для простого и гарантированного решения задачи его распознавания — и для комплексного решения проблемы цифровых инфекций в целом. Затем, используя это определение, можно выяснить, какая модель вируса ему соответствует.
Для целей информационной безопасности самым удобным будет строго формализованное, соразмерное и системное определение, которое позволяет легко выполнять оценку соответствия ему произвольных информационных объектов. Процедура сравнения свойств каждого исследуемого объекта с определением должна иметь форму короткого, надежного и хорошо контролируемого алгоритма, чтобы ее можно было автоматизировать и применять на практике.
Самое простое и очевидное решение — считать вирусом любое внедрение постороннего кода (т.е. произвольной последовательности символов) в эталонную, исходную, незараженную программу. Это означает отказ от ресурсоемкой и в общем случае неразрешимой задачи анализа процессов взаимодействия проверяемого кода с машиной — и отказ от попыток формализации этих процессов. Вирус определяется не через свойства последовательности символов, а через ее местоположение в машине (компьютере, вычислительной системе). Иными словами, одна и та же последовательность символов может считаться или не считаться вирусом в зависимости от того, где она находится по отношению к «системе координат» машины — в каком именно месте ленты Тьюринга, в какой именно области оперативной памяти, жесткого диска и т.п. Вирусом считается любая последовательность символов, которая находится «в неположенном месте», т.е. в области, зарезервированной для другого информационного объекта — охраняемого кода.
Строгое определение для обычной SISD-машины, которое можно адаптировать и для более широкого круга информационных систем, формулируется так: компьютерный вирус — это измененная по сравнению с эталоном часть кода.
Используя на практике модель, соответствующую приведенному определению вируса, вы перестраховываетесь и уходите в глубокую и очень надежную оборону. Вместо анализа неизвестного кода для точного ответа на вопрос о возможности инициирования им рекурсивной репликации, вы исходите из того, что такая возможность не исключена. Вместо анализа неизвестного кода для точного ответа на вопрос о его вредоносности, вы исходите из того, что внесение в охраняемый код любого, даже самого малого изменения с некоторой вероятностью вызывает нарушение его функций — точно так же, как нарушение функций биологической ДНК может быть вызвано замещением единственного нуклеотида в последовательности.
Для удобства решения многих практических задач в сложных информационных системах определение можно расширить на те области данных, которые должны иметь в системе такую же неприкосновенность, как исполняемый код. В общем случае, зараженным объявляется любой охраняемый информационный объект, в границы которого попал другой объект.
Заметим, что при отсутствии эталона для произвольного кода весь этот код по данному определению считается вирусом. Хотя это непривычно звучит, это надо хорошо понять и всегда иметь в виду. О том, откуда берется эталон, мы поговорим в следующих выпусках блога: для этого понадобится привлечение социальных факторов.
Лингвистическая справка. Слово «вирус» появилось в современных языках чуть более 100 лет назад, после открытия биологических вирусов. Их характерная черта — репликация, исполняемая соответствующей средой. Но у слова «вирус» есть и другое, исходное значение: на латыни это слово обозначает яд. Никакой связи с репликацией: вирус — это объект, характеризующийся нарушением функций внешнего объекта, в который он проник. Использование термина «компьютерный вирус» в контексте деструктивного воздействия настолько же корректно, насколько и в контексте репликации. Использование неформальных терминов «вредонос» или «зловред» нежелательно, особенно в технологической терминологии, вне социального контекста. Термин «антивирусная защита» (а не «антивредоносная» и не «антизловредная») наиболее устойчив в русском языке и имеет очевидные коннотации.
Какое из определений вируса лучше?
Сравните подходы, используемые в различных моделях и определениях вируса.
Вирус — это:
a) соответствующая определенным критериям функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект;
b) любая функция, отображающая эталонный, незараженный объект на отличающийся от него зараженный объект.
Для распознавания вируса в проверяемом объекте нужно:
a) провести полное аналитическое или алгоритмическое изучение свойств и поведения системы, состоящей из проверяемого объекта и машины (среды);
b) определить местоположение проверяемого объекта в машине (среде).
Определение вируса основано на:
a) свойстве рекурсивной репликации;
b) методе сравнения образца с эталоном.
Еще раз подчеркнем существенную роль среды в процессе репликации. Например, сами по себе последовательности символов «SENDMAIL» (8 байт), «COPY» (4 байта) или «CP» (2 байта), которые могут содержаться в простейшем вирусе и которыми он может оперировать, не несут в себе ничего такого, что было бы специфично для процесса репликации (тем более — рекурсивной). Ничего подобного не содержит в себе и короткая байтовая последовательность, вызывающая функцию копирования из API операционной системы в машинном коде. В этой последовательности, если рассматривать ее вне среды, не содержится ни механизма репликации, ни его описания, ни даже намека на него.
Более того: в реальном вирусе может не содержаться даже этой информации — в буквальном смысле! Вместо нее вирус, например, может включать в себя сколь угодно сложный криптоалгоритм, а ключом к этому алгоритму может служить произвольная комбинация объектов среды, способная появиться в ней в неопределенном будущем. Это означает, что до некоторого неизвестного момента, до выполнения средой некоторого неизвестного при анализе условия принципиальное отсутствие в коде вируса каких-либо связей с понятиями как репликации, так и рекурсии можно гарантировать с точностью математического доказательства. Но даже в этом случае вирус, слившийся в свойствах со средой и образовавший с ее элементами сложную, распределенную в пространстве и времени систему, сохраняет возможность размножения кода.
Таким образом, в современных больших информационных системах формализация и поиск признаков рекурсивной репликации в отдельных объектах представляются бесполезными даже с теоретической точки зрения. А рассматривать каждый объект в совокупности со всей средой — невозможно. Если в качестве входных данных для анализа единичного объекта требуется подстановка в абстрактную формулу полной информации о состоянии практически бесконечной (из-за огромного размера и перманентной изменчивости) среды — значит, выбран тупиковый путь. Ранее мы уже показали, что Интернет является единой автопрограммируемой средой, единой вычислительной системой, события в которой могут менять код в отдельно взятом системном блоке. Поэтому все эти события должны учитываться в формальном определении вируса, если оно основано на свойствах кода — как в абстрактной модели, так и на практике. И то, и другое исключено.
В условиях глобальной сети, где возможны неограниченные комбинации прямых и обратных связей между элементами, очевидны и давно применяются методы массовой репликации кода, не имеющие отношения к классическим, рекурсивным. Если опасный код заражает произвольный системный блок этой сети, то не имеет значения, является ли это заражение рекурсивным — или же дочерний код сформирован родительским по гораздо более сложному алгоритму. Алгоритм может быть любым. А на основе неизвестного алгоритма нельзя строить какие-либо точные модели, применимые на практике.
Не следует забывать, что в реальных вычислительных системах вирусы программируются (т.е. управляются) людьми. А все то, что управляется человеком, почти не поддается формализации.
Из изложенного следует вывод, что формальное определение компьютерного вируса, основанное не на признаке рекурсивной репликации, а на принципиально иных признаках, во многих случаях может оказаться наилучшим.
Это не значит, что понятие рекурсивной функции перестало иметь значение в контексте вирусов. Оно остается крайне важным, хотя и не может рассматриваться как определяющее. Оно не позволяет точно позиционировать цель, явление, предмет угрозы и ее смысловую сущность с использованием приемлемого математического аппарата. Поэтому лучше всегда иметь в виду альтернативы. Отчетливое понимание специалистом по информационной безопасности нескольких разных определений вируса, соответствующих им теоретических моделей и аспектов антивирусной защиты дает наибольшие возможности для решения практических задач.
Читайте также: