Информационно-развлекательный портал Borshec

18.02.2012 - Компьютерные вирусы

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



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

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

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

Нет общепринятого формального определения вируса. В академической среде термин был употреблён Фредом Коэном в его работе «Эксперименты с компьютерными вирусами», где он сам приписывает авторство термина Лену Эдлмэну.

 

Формально вирус определён как:

M : (SM, IM, OM : SM x IM > IM, NM : SM x IM > SM, DM : SM x IM > d)

с заданным множеством состояний SM, множеством входных символов IM и отображений (OM, NM, DM), которая на основе своего текущего состояния s ? SM и входного символа i ? IM, считанного с полубесконечной ленты, определяет: выходной символ o ? IM для записи на ленту, следующее состояние машины s' ? SM и движения по ленте d ? {-1,0,1}.

Для данной машины M, последовательность символов v : vi ? IM может быть сочтена вирусом тогда и только тогда, когда обработка последовательности v в момент времени t, влечёт за собой то, что в один из следующих моментов времени t, последовательность v? (не пересекающаяся с v) существует на ленте, и эта последовательность v? была записана M в точке t?, лежащей между t и t?:

? CM ? t ? j:
SM(t) = SM0 ?
PM(t) = j ?
{ CM(t, j) … CM(t, j + |v| - 1)} = v ?
? v' ? j' ? t' ? t":
t < t" < t' ?
{j' … j' +|v'|} ? {j … j + |v|} = ? ?
{ CM(t', j') … CM(t', j' + |v'| - 1)} = v' ?
PM(t") ? { j' … j' + |v'| - 1 }

где:

  • t ? N число базовых операций «перемещения», осуществлённых машиной
  • PM ? N номер позиции на ленте машины в момент времени t
  • SM0 начальное состояние машины
  • CM(t, c) содержимое ячейки c в момент времени t

Данное определение было дано в контексте вирусного множества VS = (M, V) — пары состоящей из Машины Тьюринга M и множества последовательностей символов V: v, v' ? V. Из данного определения следует, что понятие вируса неразрывно связано с его интерпретацией в заданном контексте — окружении. Фредом Коэном было показано, что: «любая самовоспроизводящаяся последовательность символов одноэлементный VS, что существует бесконечное количество VS и не-VS, для которых существуют машины, для которых все последовательности символов является вирусом, и для которых ни одна из последовательностей символов не является вирусом, и что любая конечная последовательность символов является вирусом для какой-либо машины». Там же приведено доказательство того, что в общем виде, вопрос о том, является ли данная пара (M, X) : Xi ? IM вирусом, неразрешим (то есть не существует алгоритма, который мог бы достоверно определить все вирусы), теми же средствами, которыми доказывается неразрешимость проблемы остановки. Другие исследователи доказали, что существуют такие типы вирусов (вирусы, содержащие копию программы, детектирующей вирусы), которые не могут быть безошибочно определены ни одним алгоритмом.

 

Классификация компьютерных вирусов

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

В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы:

  • по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код);
  • по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);
  • по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);
  • по языку, на котором написан вирус (ассемблер, высокоуровневый язык программирования, скриптовый язык и др.);
  • по дополнительной вредоносной функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).

              

Механизм распространения вирусов

Вирусы распространяются, копируя свое тело и обеспечивая его последующее исполнение: внедряя себя в исполняемый код других программ, заменяя собой другие программы, прописываясь в автозапуск и другое. Вирусом или его носителем могут быть не только программы, содержащие машинный код, но и любая информация, содержащая автоматически исполняемые команды — например, пакетные файлы и документы Microsoft Word и Excel, содержащие макросы. Кроме того, для проникновения на компьютер вирус может использовать уязвимости в популярном программном обеспечении (например, Adobe Flash, Internet Explorer, Outlook), для чего распространители внедряют его в обычные данные (картинки, тексты и т. д.) вместе с эксплоитом, использующим уязвимость.

 

 


Опубликовано на сайте: http://borshec.ru
Прямая ссылка: http://borshec.ru/index.php?name=pages&op=view&id=166