| Оглавление Назад Вперед |
5.3. Принцип Касперского
В книге Е. Касперского «Компьютерные вирусы» [8] целый раздел посвящен «попытке дать “нормальное” определение» компьютерному вирусу. Касперский признаёт, что «строгого определения, что же такое компьютерный вирус, так и не дано, несмотря на то, что попытки дать такое определение предпринимались неоднократно». Указано, что все отличительные черты вируса либо присущи другим программам, которые никоим образом вирусами не являются, либо существуют вирусы, которые не содержат указанных отличительных черт, за исключением возможности распространения. Акцент поставлен правильный, так как существуют вирусы, имеющие возможность распространения, но при этом не имеющие возможности самораспространения. Например, вирус может работать в диалоговом режиме с пользователем:
> Введите имя инфицируемого файла: c:\temp\goat.exe
> Файл “c:\temp\goat.exe” найден. Инфицировать его [Y/N]?Y
> Файл успешно инфицирован.
Такие действия вируса уже трудно назвать самораспространением. Однако это всё равно будет вирус, хотя и в примитивной, вырожденной форме. Дальше Касперский признаёт: «Основная же проблема компьютерных вирусов – возможность их самопроизвольного внедрения в различные объекты операционной системы – присуща многим программам, которые не являются вирусами». Стало быть, по этой особенности нельзя выделить группу «компьютерные вирусы» из общего числа компьютерных программ.
Далее сообщается, что «представляется возможным сформулировать только обязательное условие для того, чтобы некоторая последовательность выполняемого кода являлась вирусом» и приведено такое условие:
- ОБЯЗАТЕЛЬНЫМ (НЕОБХОДИМЫМ) СВОЙСТВОМ КОМПЬЮТЕРНОГО ВИРУСА является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Хочется возразить, что это свойство не является ни обязательным ни необходимым. Например, резидентный вирус может перехватывать функцию операционной системы «Запись в файл» и при вызове этой функции настраивать регистры процессора таким образом, чтобы операционная система брала в качестве источника данных копию вируса из памяти. Или другой пример, нерезидентный компаньон-вирус может вызывать командный процессор COMMAND.COM с некоторыми параметрами, в результате чего будет создан дубликат вируса средствами командного процессора. Таким образом, вирус не всегда будет иметь в себе даже возможность создавать свои дубликаты (например, при попадании в другую операционную среду), но вирусом от этого быть не перестанет. Кроме того, возможность создавать свои дубликаты, как было правильно замечено Касперским, имеют и другие программы, вирусами не являющиеся. Например, операционная система MSDOS.
Непонятно утверждение «не обязательно совпадающие с оригиналом». Насколько несовпадающие? Несовпадающие в чём? Дело в том, что существуют вирусы (ACG[1], VCG[2]), которые создают дубликаты, несовпадающие с оригиналом ни на один байт, а есть вирусы, полностью меняющие свою функциональность от копии к копии. Примером вирусов, меняющих свою функциональность (под функциональностью подразумевается весь тот набор «умений», которые вирус потенциально может реализовать) может являться двуполый вирус RMNS[3] (в результате соединения «полов» получается совершенно новый вирус) или вирусы, использующие плагины[4] (PlugIn – англ.), заботливо раскладываемые автором вируса на WEB-страницах или в электронных конференциях. Кроме того, возможно, что на определённом этапе, вирус начнёт инфицировать объекты такими своими дубликатами, которые не будут больше иметь способность к дальнейшему размножению, а будут воспроизводить только заложенные в вирус аудиовизуальные эффекты или исполнять заложенный автором троянский код. Будет ли являться такой вирус вирусом?
Кроме того, непонятна опасность (вред) от способности программ создавать свои дубликаты. Пример вырожденных вирусов:
- Вирус представляет собой исполняемый файл на диске. При запуске вируса, он создаёт единственный свой дубликат и перезаписывает им тот файл, из которого он стартовал, то есть, перезаписывает сам себя. Это свойство собственной перезаписи использовали раньше созданные в виде COM-программы антивирусы, написанные на языке ассемблера (например, при нарушении целостности COM-файла антивируса в результате воздействия вируса или сбоя на диске, антивирус мог восстановить этот файл записью своей копии из памяти) и при этом вирусами не являвшиеся.
- Вирус создает свой дубликат всегда в единственный файл на диске, имеющий всегда одно и то же имя (например, записывает свой дубликат в файл VIRUS.TXT). Более того, такой дубликат теряет возможность дальнейшего распространения, так как файлы с расширением .TXT не являются исполняемыми. Для того, чтобы дубликат вновь приобрёл способность к размножению, пользователь должен самостоятельно изменить расширение файла на соответствующее формату файла, содержащего оригинал вируса.
Внедрение же своих дубликатов в системные области компьютера характерно и для программ, не являющихся вирусами. Примером тому может служить резидентный монитор антивирусной программы. Непонятен вред от этой способности программ, но польза очевидна.
В дальнейшем Касперский частично соглашается с несостоятельностью данного определения: «следует отметить, что это условие не является достаточным» и приводит пример с операционной средой MSDOS, которая удовлетворяет данному свойству, но вирусом не является.
Здесь следует высказать ещё одно замечание. Нельзя приписывать программам, как и вещам материального мира, какие-либо функции. Вещи и программы существуют сами по себе, независимо от цели их применения человеком. Как не бывает хороших вещей или плохих вещей (бывает хорошее или плохое применение этим вещам), так не бывает хороших или плохих (вредоносных) программ. Бывают преступные цели, намерения и деяния. Преступное деяние может быть совершено с помощью хорошей (полезной) вещи и будет являться преступлением. А может быть и так, что хорошее деяние будет совершено с помощью «плохой» вещи и при этом преступлением являться не будет. Было бы неправильным объявлять какие-либо вещи преступными только потому, что существует возможность совершения с помощью этих вещей преступления. Молоток не является ни хорошей, ни вредоносной вещью, он просто молоток, независимо от того, забивают им гвозди, раскалывают орехи, разбивают окно соседу или причиняют тяжкие телесные повреждения сопернику. На основании лишь того, что кто-то использовал молоток для совершения проступка или преступления, нельзя относить молотки к вредоносным вещам и запрещать их производство, применение или распространение (например, розничную продажу). Наказывать нужно не вещи и не лица их создавшие, а лица их применившие в преступных целях. Это было бы справедливо.
Кажется очевидным, что авторы подобных определений идут по принципу: «всё, что не полезно с моей точки зрения для других людей – вредно». Это абсолютно недопустимый принцип для отнесения компьютерных программ к разряду вредоносных. Если конкретному человеку, даже обладающему властными полномочиями, непонятен смысл какого-либо литературного или художественного произведения, то его непонимание не может являться причиной расценивать это произведение как бесполезное и вредное[5]. Приведу пример: в чём заключается вред от стихов Баркова[6] или от известной картины[7] Казимира Малевича[8]?
В результате очень спорных рассуждений Касперский приходит к таким выводам:
- Точного определения нет до сих пор, и вряд ли оно появится в обозримом будущем.
- Нет точно определенного закона, по которому «хорошие» файлы можно отличить от «вирусов».
- Иногда даже для конкретного файла довольно сложно определить, является он вирусом или нет.
Поскольку Касперский пытается отнести вирусы к вредоносным программам, разделяя файлы на «хорошие» и «вирусы», то в отношении лиц создающих, распространяющих или использующих вирусы, должна применяться статья 273 УК РФ. Однако первые два вывода автора показывают, что возникает противоречие трём принципам применения уголовного закона, указанным в разделе 3.1 настоящей работы. Тем самым ещё раз подтверждается правильность основной цели данной работы – показать недопустимость применения статьи 273 УК РФ по отношению к лицам создающим, публикующим или использующим компьютерные программы, которые именуются этими же лицами (или антивирусными компаниями) как «компьютерные вирусы».
Третий вывод наиболее интересен с точки зрения уголовного законодательства. Он в явной форме говорит о недопустимости применения статьи 273 УК РФ из-за отсутствия значимых критериев определения вредоносных программ.
Дальше Евгений Касперский показывает на примере программ KOH и ALREADY.COM свой принцип отнесения той или иной программы к разделу компьютерных вирусов. Мало того, что этот принцип является абсолютно субъективным (абсолютно не вредоносная программа KOHотнесена к разделу вредоносных программ), но и:
- Если бы, конечно, автором KOH был бы не безызвестный программист, а скажем, Симантек, или Sierra, или даже сам Microsoft, то никто бы и не посмел назвать это вирусом…
Хотелось бы напомнить автору этих строк, что в соответствии со следующими Законами данное публичное признание само является уголовно наказуемым преступлением по статье 136 УК РФ в части 2:
- Всеобщая декларация прав человека, статья 7: «Все люди равны перед законом и имеют право, без всякого различия, на равную защиту закона».
- Конституция РФ, статья 19 часть 1: «Все равны перед законом и судом».
- Уголовный Кодекс РФ, статья 4: «Лица, совершившие преступления, равны перед законом и подлежат уголовной ответственности независимо от пола, расы, национальности, языка, происхождения, имущественного и должностного положения, места жительства, отношения к религии, убеждений, принадлежности к общественным объединениям, а также других обстоятельств».
Дело вот в чём. Если допустить, что вирус является вредоносной программой, то автора программы KOH можно было бы осудить по статье 273 УК РФ. Представьте себе, что было бы, если бы на момент создания программы KOH эта статья бы действовала, а автором её был бы не безызвестный программист, а вполне реальный российский программист. Речь то идёт об уголовном преступлении!
Если суд будет ориентироваться при отнесении программ к разряду «вредоносных» по наличию соответствующих записей в антивирусных базах таких антивирусов, как KAV (http://www.avp.ru/products.html), то можно будет лишать свободы людей за создание и использование абсолютно любых программ, которые по каким то причинам (или их автор) не понравились разработчикам. Этот пример демонстрирует, что следствию и суду (собственно, вообще никому) недопустимо ориентироваться на записи в базах данных антивирусных программ и недопустимо привлекать сотрудников антивирусных компаний в качестве экспертов по уголовным делам, касающихся компьютерных преступлений.
Кроме явной субъективности мнения разработчиков антивирусных программ о «вредоносности», существует ещё одна особенность – возможность отключения отдельных таблиц из вирусной базы на усмотрение пользователя (например, отключение eicar.avc или malware.avc от базы данных антивирусной программы KAV). Точно также возможно создание индивидуальной таблицы (вероятно на коммерческой основе) с записями для тех программ, которые конкретный пользователь по тем или иным причинам не желает видеть на своём компьютере (например отец хочет запретить сыну играть в определённые компьютерные игры). Этот произвол ещё раз подчёркивает о недопустимости использования в качестве критерия «вредоносности» конкретной программы наличие о ней записи в антивирусной базе данных.
Также возникает резонный вопрос, каким образом можно определить, что bootstraploader программы KOH совпадает практически на 100% с вирусом Havoc? Может быть, это вирус Havoc совпадает практически на 100% с bootstraploader программы KOH? Если пользоваться принципом Касперского, то любого автора программы можно наказать по статье 273 УК РФ только за то, что кто-то использовал код его программы для создания вируса.
Пример с программой KOH не является исключением. Вот другой пример абсолютно безобидной программы на языке Ассемблер. Программа GOAT никаких вредоносных деяний не совершает. Она проверяет наличие параметра «R» в командной строке и завершает свою работу. В случае, если пользователь запустил программу GOAT с параметром «R», она запишет свой образ из памяти в тот файл на диске, из которого стартовала и таким образом восстановит собственный код из памяти. Действие программы является санкционированным (санкцией является параметр «R», санкционирует пользователь) и не имеет отношения к самораспространению (здесь больше подходит термин «самовосстановление»). Однако, по принципу Касперского, эта программа является «страшным» вирусом с названием SillyOC.2000.
PSP_envirn_seg equ 2Ch
PSP_cmd_tail+1 equ 82h
org 100h
start proc near
mov al, PSP_cmd_tail+1 ; (DS:0082=0)
cmp al, 52h ; 'R'
jnz locret_0_13E ; Jump if not equal
mov ax, ds:PSP_envirn_seg ; (DS:002C=0)
mov ds, ax
xor bx, bx ; Zero register
loc_0_10E: ; xref DS:0115, 011C
mov al, [bx]
or al, 0
jz loc_0_117 ; Jump if zero
inc bx
jmp short loc_0_10E
loc_0_117: ; xref DS:0112
inc bx
mov al, [bx]
or al, al ; Zero ?
jnz loc_0_10E ; Jump if not zero
add bx, 3
mov ah, 3Ch ; DOS Services, ah=function 3Ch
mov cx, 0
mov dx, bx
int 21h ; DOS - 2+ - CREATE A FILE WITH HANDLE (CREAT)
; CX = attributes for file
; DS:DX -> ASCIZ filename
;(may include drive and path)
jb locret_0_13E ; Jump if carry Set
mov bh, 40h ; DOS Services ah=function 40h
xchg ax, bx
push cs
pop ds
mov cx, 7D0h
nop
cwd
inc dh
int 21h ; DOS - 2+ - WRITE FILE WITH HANDLE (WRITE)
; BX = file handle
; CX = count bytes from ds:dx buffer
; DS:DX buffer
mov ah, 3Ch ; DOS Services ah=function 3Ch
int 21h ; DOS - 2+ - CREATE A FILE WITH HANDLE (TRUNC)
; CX = attributes for file
; DS:DX -> ASCIZ filename
;(may include drive and path)
locret_0_13E: ; xref DS:0105, 012A
retn
start endp
db 1937 dup (90h) ; NOP
seg000 ends
end start
Поскольку мы рассматриваем приведённые в книге известного вирусолога примеры применительно к уголовному закону, то все его выводы оказываются, мягко говоря, спорными и не могут применяться в качестве экспертной оценки в следственной и судебной практике в силу принципов применения законов, и в первую очередь INDUBIOPROREO.
«Попытка дать “нормальное” определение» известного в мире вирусолога заканчивается следующими словами: «Посему тема “нормального” определения компьютерного вируса остается открытой».
В этой же книге приведено «Объяснение для домохозяйки» термина «компьютерный вирус» не менее известного вирусолога Д.Н. Лозинского. Мало того, что это определение не применимо для уголовного закона в силу сплошной аналогии, но и правомерность самой аналогии может являться темой для большой дискуссии, выходящей за рамки данной работы.
[1]ACG - Amazing Code Generator (http://www.viruslist.com/viruslist.html?id=52)
[2]VCG - Virus Code Generator (http://www.viruslist.com/viruslist.html?id=2495)
[4]Win95.Babylonia (http://www.viruslist.com/viruslist.html?id=4030)
[5]Вспомните: „Это картина о художниках, чью выставку в Манеже буквально разгромил Хрущев, о тех, чьи работы давили бульдозерами при Брежневе“ (http://rodalin.ru/people/redel/inerview-01.shtml)
[6]И.С. Барков (http://pathology.dn.ua/Humor/Barkov/Barkov.shtml)
[7]Черный супрематический квадрат (http://www.agniart.ru/rus/item-16693~Art-prints-on-canvas~Malevich-Kazimir~Black-Superematist-Square-Art-print-on-canvas)
[8]К.С. Малевич (http://www.allabout.ru/a11131.html)
| Оглавление Назад Вперед |