Жанр: Учеба
Большой справочник по компьютерным вирусам
...е на случай неправомерного использования
ЭВМ. Цель этого раздела - разобраться, выгодно ли страхование
пользователю.
Насколько известно автору, в ФРГ существует всего два страховых
общества, в перечне услуг которых имеется такой вид страхования.
Общие условия таких договоров страхования распространяются
на:
1) преднамеренное и противоправное обогащение за счет имущества
страхователя путем:
а) изготовления, изменения, повреждения, уничтожения или
стирания программ обработки данных, машиночитаемых носите-
лей данных или данных, хранящихся в памяти ЭВМ;
б) ввода данных, машиночитаемых носителей и программ в ЭВМ;
2) преднамеренное нанесение ущерба страхователю путем стирания
хранящихся в ЭВМ данных, повреждения, разрушения или уничтожения
машиночитаемых носителей данных или программ;
3) повреждение, уничтожение или разрушение устройств обработки
данных или их частей, если они не защищены слаботочными предохранителями.
Но во всех случаях должен быть установлен виновник ущерба,
- 133 -
чтобы обосновать притязание на возмещение ущерба. Этот виновник
по закону обязан возместить ущерб, причем это должно быть лицо,
пользующееся доверием (работающий по договору наемный работник).
Работодатель после тщательной проверки на момент причинения ушерба
(безупречная характеристика за последние три года работы,
свидетельства, запросы) может не знать, что это лицо уже совершало
преднамеренное деяние, которое по закону карается возмещение
ущерба.
Проблемы могут возникнуть в связи с часто практикуемой работой
на ЭВМ лиц свободных профессий или работающих на подряде, так
как в этом случае страховщик вправе не выполнить обязательство
(это не доверенные лица). Для страхователя это означает, что он
либо отказывается от использования лиц свободных профессий, либо
приводит доказательство наличия сооветствующего страхования от
ответственности на причинение вреда и возможностей работника,
чтобы в случае необходимости удовлетворить иск на возмещение
ущерба.
Так как в больших ЭВМ ущерб может достигнуть величины, погасить
которую виновник не в состоянии до конца своих дней, важно
знать, что страховка не освобождает его от обязанности возместить
ущерб!
Все ли страхуются?
Возмещается либо денежная сумма, незаконно полученная причинившим
ущерб лицом, либо стоимость имущества, либо затраты,
требуемые для восстановления состояние, имевшего место до причинения
ущерба. Не возмещается ущерб, связанный с неполученной
прибылью, и косвенные затраты; ущерб, предусмотренный другим
договором о страховании (огонь, вода и т.д.); ущерб, о котором
заявлено спустя более двух лет после завершения манипуляций н
ЭВМ, а также ущерб в результате действия "стихийных сил".
В обязанности страхователя, кроме вышеупомянутой строгой
проверки служащих, входит передача страховщику всех сведений,
которые могут помочь в выяснении обстоятельств страхового случая,
даже если он не может или не хочет предъявлять претензии на возмещение
ущерба. Это значит, что о каждом невыясненном полностью
нарушении в работе ЭВМ следует ставить в известность страховую
компанию (ошибка в передаче данных, ошибка оператора и т.д.).
Так как виновных в использовании компьютерных вирусов выявить
достаточно сложно, а это является обязательным условием
выдвижения претензии на возмещение ущерба, страхователи проявляют
интерес к заключению страхового договора без этой оговорки. По
сообщению "Хандельсблат", начиная с 1986 г. "некоторые страховые
компании ФРГ предлагают возможность страхования от всех случаев
неправомерного использования ЭВМ без установления конкретного
виновника ("Хандельсблат", 16,06,87)".
Так как такие договора означают для страховых компаний трудно
предсказуемый риск, "можно наблюдать, что этот вид страховой
защиты предлагается только "первым лицам"" . Надбавка к страховой
премии по такому договору "составляет 30-40% от премии по страхованию
на случай неправомерного использования ЭВМ"
("Хандельсблат",16,06.87).
В связи с этим сообщением обнаружилось:
Крупная страховая компания , наряду с отказом идентификации
виновника при страховании от злонамеренного использования компьютеров,
предлагает также страхование на случай неправомерного
использования данных.
Другая страховая компания в ответ на запрос сообщила, что по
настоятельной просьбе клиента в особых случаях при страховании на
случай неправомерного использования ЭВМ можно исключить оговорку
об идентификации виновника.
Что же дают эти изменения и нововведения?
Отказ от идентификации виновника
Вопреки обычной практики достаточно, "если страхователь
наряду с прочими условиями страхования, приведет доказательство,
что застрахованное доверенное лицо причинило ущерб; при этом не
требуется приведения конкретных доказательств исполнительства
определенным сотрудником. Если невозможно привести доказательство
исполнительства доверенным лицом, то для обязательной выплаты
достаточно "преобладающей вероятности".
Так как , по мнению автора, понятие "преобладающей вероятности"
трудно строго сформулировать, правовой конфликт в страховом
случае запрограммирован заранее. Тем не менее удобно, что
больше не требуется идентификация виновника. Подобная идентификация
могла бы вызвать определенные проблемы на предприятиях с
многочисленным персоналом.
Но одна из оговорок в договорах о страховании, по-видимому,
может доставить определенные неприятности застрахованным:
Если идентификация невозможна, страхователь должен:
а) заявить в полицию (при некоторых обстоятельствах это
может бросить тень на предприятие);
б) увеличить долю собственного участия в возмещении убытков.
Страхование на случай неправомерного использования данных
Эта форма страхования предлагает страховую защиту на тот
случай, если постороннее лицо (в отличие от доверенного лица)
преднамеренно создает для себя имущественную выгоду путем
а) изготовления, изменения, повреждения или уничтожения
программ ЭВМ, машиночитаемых носителей данных или данных,
хранящихся в памяти ЭВМ;
б) ввода данных, машиночитаемых носителей и программ в ЭВМ.
При беглом чтении может сложиться впечатление, что заключение
такого договора покроет любой риск, так как эта форма страхования
предлагается только вместе со страхованием на случай неправомерного
использования ЭВМ. Но при определенных обстоятельствах для
страхователя возможны тяжелые последствия, поскольку "непреднамеренно
или преднамеренно повреждение аппаратно-программных средств
вследствие почти невозможного разграничения с другими, нестрахуемыми
случаями не является предметом данного страхования".
Это значит, что страхователь должен нести высокие издержки
не только на восстановление программ или данных, но и в связи с
недополучением прибыли, утратой производственных секретов и т.д.
И по такой форме договора страховщик обязан заявить в полицию и
причиненом ущербе. Это, естественно, ставит проблему "потери
репутации".
Так как для этих видов страхования суммы возмещения могут
оказаться чрезвычайно большими - до 20 миллионов, понятна определенная
осторожность со стороны страховых фирм. В результате такой
договор "первому встречному" не предлагается. В любом случае
перед заключением запрашивается точная информация о страхуемом
предприятии. Например, заполняется анкета, включающая 120 пунктов
и занимающая 6 страниц в формате А4.ДИН.
Несколько примеров:
- Годовой оборот?
- Общее число сотрудников?
- Бюджет ЭВМ?
- Надежно ли хранится системная документация ?
- Невыясненные потери за последние пять лет?
- Имеет ли кто из сотрудников судимость за имущественные
преступления?
- Имелись ли в прошлом случаи отказа от страхования?
Итак, риск можно уменьшить, но невозможно исключить любой
риск, прямо или косвенно связанный с ЭВМ. Вышеназванные страховые
договоры не представляют интереса для мелких пользователей из-за
низкой страховой премии. Они используются промышленными предприятиями
и крупными фирмами для "страхования от катастрофического
убытка", т.е. убытка, грозящего существованию предприятия. При
таких условиях страхуемый, безусловно может пойти на собственное
участие в возмещение убытков в размере от 10 тыс. до 1 мин марок
ФРГ, чтобы обеспечить низкие страховые премии.
Часть П
Компьютерные вирусы в прикладных программах
Во второй части настоящей книги рассматриваются распечатки
программ компьютерных вирусов почти на всех существующих языках
программирования, что, пожалуй, представляет наибольший интерес
для практиков. Рассматриваются также принципы действия различных
вирусов, средства защиты от компьютерных вирусов и их
устранения.
Приведенные здесь распечатки должны побудить читателя к
проведению собственных экспериментов, причем не имеет значения, с
каким компьютером работает читатель. С помощью незначительных
изменений, внесенных в написанную на языке высокого уровня
программу, можно адаптировать ее практически к любой системе,
поскольку принцип составления программ-вирусов обеспечивает их
переносимость.
Каждый читатель, проводяший эксперименты с вирусами, должен
полностью отдавать себе отчет в том, чтобы не повредить себе и
другим. Это означает также, что все программы-вирусы должны быть
записаны на носителях данных таким образом, чтобы их нельзя было
запустить по ошибке.
Только работа с полным пониманием своей ответственности
может помешать распространению вирусов.
9. Формы проявления компьютерных вирусов
Теперь, после того, как заложены основы понимания, что такое
компьютерные вирусы, рассмотрим различные формы проявления действия
таких программ. Общим для всех форм проявления действия
компьютерных вирусов является некоторое изменение составных частей
программ.
Такие изменения могут объясняться по-разному. Для того,
чтобы ясно представлять себе многочисленные возможности составления
программ-вирусов, нужно прежде всего проанализировать
основные функции программ-вирусов.
Во всех случаях вирусу, для того, чтобы он мог начать действовать
в качестве вируса, нужно иметь право доступа на запись или
иметь возможность получить право такого доступа. Кроме того,
вирус должен иметь информацию о составе существующих программ или
иметь возможность такую информацию получить. Если программа удовлетворяет
этим двум основным условиям, из этой программы может
распространяться вирус или она сама может развиться в вирус. В
качестве третьего условия можно было бы рассматривать запрос
опознания уже существующей "инфекции". Строго говоря, это условие
должно быть выполнено, чтобы можно было говорить об одном вирусе.
Но, поскольку, наличие "инфекции", как правило, влечет за собой
определенные нарушения, для пользователя неважно, была ли программа
заражена многократно.
Для вирусов, не обладающих способностью распознавать наличие
"инфекции", избежать повторного заражения одной и той же
программы
можно, например, путем управления доступом через генератор случайных
чисел. Правда, такие вирусы особенно опасны тем, что могут
выйти из-под контроля собственного создателя, поскольку сам
разработчик не имеет возможности управлять случайным доступом.
9.1 Перезаписывающие вирусы
Наиболее простым с точки зрения их программной реализации
являются перезаписывающие вирусы. Программы-вирусы такого вида
уже были кратко описаны в разделе 4. Характерным признаком этих
вирусов является их разрушающее действие. Вычислительные системы,
программы которых заражены вирусом такого рода, выходят из
строя в самое короткое время ("острая инфекция").
Если за определение перезаписывающих вирусов принять
разрушение программных кодов основной программы, не позволяющее
их реконструировать, то с помощью перезаписывающих вирусов оказывается
невозможным распространение "инфекции" на все работающие в
"зараженной " системе программы: поскольку пользователь быстро
обнаружит, что "здесь что-то не так". Правда, чаще всего предполагают,
что ошибка связана со сбоем в аппаратуре, поскольку постоянно
выдаются все новые сообщения об ошибке.
Для отражения процесса распространения "инфекции" пригодна
та же схема, что и в разделе 4. Здесь добавлено лишь задание на
обработку "MAN", о форме которого Вы должны были прочитать в
разделе 7 и последующих разделах.
K Байт идентификатора вируса
VIR Ядро вируса
MAN Задание на обработку (манипуляции, выполняемые вирусом)
Программа-носитель вируса
Для защиты от самопроизвольного распространения вирусов
сознательно инфицируйте некоторую программу. Такое "направленное"
заражение необходимо, чтобы уже при запуске базовой программы не
встретиться с сообщением об ошибке.
Если такая программа запущена, то вначале обрабатывается
стоящая в начале программы часть вируса. Байт идентификатора "К"
в этом случае образуется с помощью характерного для данного вируса
команды безусловного перехода или с помощью "нулевой
операции". Теперь ядро вируса активно и начинает свою
разрушительную работу.
-------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ программа-носитель вируса¦
L-------------------------------------------
Вирус просматривает достижимую для исполняемых программ
массовую память. В этом случае вирус разрушает вторую прикладную
программу. Теперь в оперативной памяти сохраняется некая малая
часть второй прикладной программы. Затем можно проверить, есть ли
в начале этой программы байт идентификатора "К". Если этот байт
идентификатора будет найден, процесс поиска продолжается до тех
пор, пока не будет найдена программа без признака вируса "К".
------------------------------------------------¬
¦ вторая прикладная программа ¦
L------------------------------------------------
В этой найденной программе (в данном случае вторая
прикладная программа ) перезаписывается первая часть, т.е. вирус
уничтожает программные коды основной программы, заменяя их собственными
кодами.
-----------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ вторая прикладная программа ¦
L-----------------------------------------------
После того, как собственно процесс распространения "инфекции"
будет завершен, выполняется задание на обработку MAN, причем
это может быть заданием на выполнение любого рода операций. После
завершения обработки управление вновь передается программе-носителю
вируса, создавая у пользователя иллюзию безупречной работы
программы. Естественно, перезаписывающий вирус вовсе не обязательно
встраивать в программу-носитель. Программа-вирус была бы
жизнеспособна и без программы-носителя, но тогда ее было бы значительно
легче обнаружить.
После завершения процесса занесения "инфекции" программаноситель
вновь может быть удалена из области адресов доступа ЭВМ,
поскольку вирус уже пустил корни во второй прикладной программе.
Теперь ЭВМ будет работать без сбоев до тех пор, пока не будет
запущена вторая программа. При определенных условиях это может
продолжаться месяцы или годы, если "инфицированной" окажется
такая редко используемая программа, как скажем, EDLIN. Когда
спустя продолжительное время эта программа будет запущена вновь,
Посмотри в окно!
Чтобы сохранить великий дар природы — зрение,
врачи рекомендуют читать непрерывно не более 45–50 минут,
а потом делать перерыв для ослабления мышц глаза.
В перерывах между чтением полезны
гимнастические упражнения: переключение зрения с ближней точки на более дальнюю.
инфекция будет продолжать распространяться, и пользователю будет
чрезвычайно сложно найти источник инфекции.
При запуске инфицированной программы только что описанным
способом отыскивается незараженная программа. Первая найденная
программа является второй прикладной программой. Но там есть
идентификатор "К", а потому вирус не заносится и процесс поиска
продолжается.
---------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ вторая прикладная программа¦ Имеется байт
L--------------------------------------------- идентификатора К,
процесс поиска
продолжается
Найдена третья прикладная программа, не имеющая
идентификатора "К", т.е. вирус внедряется в эту программу.
Перед запуском второй инфицированной программы:
---------------------------------------------¬
¦ третья прикладная программа ¦
L---------------------------------------------
После запуска второй инфицированной прикладной программы:
---------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ третья прикладная программа¦
L---------------------------------------------
После того, как собственно процесс внедрения вируса
завершен, выполняется задание на выполнение операций любого рода.
Лишь теперь непредусмотренные Вами сообщения об ошибках укажут
Вам на то, что здесь не все в порядке. Итак, инициатор внедрения
вирусов в любом случае достигает своей цели - внедрения задания
на проведение определенных манипуляций.
Здесь следует сказать и о том, что приведенные в качестве
примеров сегменты программы, а также позиция и структура
идентификатора "К" для всех вирусов могут, естественно, выглядеть
совершенно иначе.
9.2 Вирусы, не выполняющие функции перезаписи
Более опасным вариантом компьютерных вирусов, хотя на первый
взгляд они и не кажутся таковыми, являются неперезаписывающие
вирусы. Поскольку чаще всего разрушение программ не в интересах
составителей программ-вирусов, здесь предлагается тип вирусов,
которые смогут существовать и быть активными в ЭВМ годами,
оставаясь незаметными для пользователя. (Обратите внимание на
словосочетание "существовать и быть активными")
В отличие от ошибок, обусловленных перезаписывающими вирусами,
в данном случае ошибка, появившаяся однажды, начинает
множиться.
Ощущение безобидности неперзаписывающих вирусов связано с
тем, что эти вирусы приводят к выдаче типичных сообщений об ошибках.
При проведении семинаров по повышению квалификации всегда
можно наблюдать, что демонстрация вируса, который размножается,
не выводя на на дисплей сообщений об ошибках, как правило, не
производит столь сильного впечатления на слушателей, как демонстрация
вируса, который уже после одного или двух этапов внедрения
вируса выдает на экран беспорядочную последовательность символов.
Это фатальная ошибка мышления, которая встречается не только в
вычислительной технике.
"Где нет симптомов, там нет и болезни".
Но можно ли вообще заразить программу вирусом, не нанеся ей
видимого ущерба ее работоспособности? Этот вопрос, пожалуй,
возникает у каждого, кто хоть раз попытался включить дополнительные
функции в уже существующую в объектных кодах программу.
Неперзаписывающие вирусы строятся примерно по тому же
принципу, что и перезаписывающие, но имеют дополнительную функцию
в форме стандартной программы "MOV". Принцип работы этой стандартной
программы легко понять, рассмотрев процесс распространения
такой "инфекции".
K Байт идентификатора вируса
VIR Ядро вируса
MAN Задание на выполнение операции вируса
MOV Стандартная программа сдвига при регенерации программы
А теперь обратимся к инфицированной программе, но инфицированной
вирусом, отличающимся тем, что все "зараженные" эти вирусом
программы являются носителем вируса, но могут обрабатываться
без выдачи сообщения об ошибке.
Как и для перезаписывающих вирусов, в начале вновь стоит
команда безусловного перехода или нулевая команда, которая является
идентификатором вируса. Когда вирус активизируется, вначале
по тем же критериям, что и в разделе 9,1, просматривается массовая
память.
--------------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ MOV ¦ программа-носитель вируса ¦
L--------------------------------------------------
В процессе поиска вирус найдет вторую прикладную программу.
Поскольку такая программа при соответствующей проверке не обнаруживает
байта идентификтора "К", программа считается неинфицированной
и начинается процесс введения вируса. Но этот процесс внедрения
вируса существенно отличается от того, что был описан в разделе
9.1.
--------------------------------------------------¬
¦ вторая прикладная программа ¦
L--------------------------------------------------
В качестве первого шага из выбранной вирусом программы выделяется
некоторая часть, длина которой точно равна длине программы-вируса
без стандартной программы "MOV".
--------------------------------------------------¬
¦ 1-я часть ¦ 2-я прикладная программа ¦
L--------------------------------------------------
Для сравнения представим здесь вирус без стандартной
программы MOV:
----------------¬
¦ K ¦ VIR ¦ MAN ¦
L----------------
Теперь эта выделенная первая часть копируется в конец второй
прикладной программы и в результате существует в двух
экземплярах, увеличивая старую прикладную программу на собственную
длину. Следует подчеркнуть также, что эта операция над второй
прикладной программой выполняется не в оперативной памяти, а в
соответствующей массовой памяти.
--------------------------------------------------¬
¦ 1-я часть ¦ 2-я прикладная программа ¦ 1-я часть¦
L--------------------------------------------------
Теперь к уже расширенной второй прикладной программе после
уже скопированной первой части добавляется еще и стандартная
программа MOV, в результате чего программа увеличивается еще на
несколько байтов.
-------------------------------------------------------¬
¦1-я часть ¦ 2-я прикладная программа ¦ 1-я часть¦ MOV ¦
L-------------------------------------------------------
Следующий за этим процесс копирования выполняется точно так
же, как и при перезаписывающем вирусе. Итак, стоящая в начале
программы первая часть второй прикладной программы перезаписывается
программой-вирусом, причем стандартная программа MOV еще раз
копируется, поскольку она уже имеется в конце программы. После
завершения всех этих операций 2-я программа будет выглядеть
таким образом:
----------------------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ 2-я прикладная программа ¦1-я часть¦ MOV¦
L----------------------------------------------------------
Итак, часть программы перезаписана (заменена). Это необходимо,
поскольку "злокачественные" коды этой демонстрационной
программы должны стоять в начале программы, чтобы при запуске
программы обеспечить ее обработку. Но содержимое первой части не
утрачено, поскольку она сохранена в конце программы.
Затем программа-носитель вируса выполняет манипуляции любого
рода, а потом продолжает обработку программы.
Теперь возникает та же ситуация, что была описана в разделе
9.1, когда вирус сначала не размножался и даже никаким образом не
проявлял своей активности. Это состояние сохраняется до тех пор,
пока не будет запущена вторая инфицированная прикладная
программа.
-----------------------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦2-я прикладная программа ¦ 1-я часть¦ MOV ¦
L-----------------------------------------------------------
После запуска инфицированной программы вначале осуществляется
передача вируса в следующую еще неинфицированную программу
только что описанным образом. В этом случае атаке вируса подвергается
третья программа.
Перед запуском второй программы:
------------------------------------------------------------¬
¦ 3-я прикладная программа ¦
L------------------------------------------------------------
После запуска второй прикладной программы:
------------------------------------------------------------¬
¦ K ¦ вирус MAN ¦ 3-я прикладная программа ¦ 1-я часть ¦ MOV¦
L------------------------------------------------------------
После того, как собственно процесс внедрения вируса
закончен, а затем выполнено задание MAN, активизируется стандартная
программа MOV.
В оперативной памяти ЭВМ находится инфицированная вторая
прикладная программа. Стандартная программа MOV выделяет из этой
программы сохраненную в конце программы первую часть и вновь
перемещает ее на прежнее место в начало программы.
Перед активацией стандартной программы MOV имеем такую картину:
-----------------------------------------------------------¬
¦ K ¦ VIR ¦ MAN ¦ 2-я прикладная программа ¦1-я часть¦ MOV ¦
L-----------------------------------------------------------
После активации стандартной программы MOV:
-----------------------------------------------------------¬
¦ 1-я часть ¦ 2-я прикладная программа ¦ 1-я часть ¦ MOV ¦
L-----------------------------------------------------------
В оперативной памяти теперь вновь записана исходная версия
второй прикладной программы. Теперь стандартная программа MOV
выполняет переход в начало программы, после чего программа выполняется
без ошибок. Теперь место в памяти, занятое "дубликатной "
первой частью и стандартной программой MOV , уже не требуется и
может быть занято другой информацией без возникновения ошибок.
Собственно, описанные два типа вирусов и их специальные
формы полностью исчерпывают все возможности распространения вирусов.
Путем несложных логических рассуждений легко придти к выводу,
что распространяться путем "генерации некоторой более или
менее точной копии внутри другой программы" могут лишь эти два
типа вирусов.
Приведенные ниже пояснения касаются лишь стратегии, с
помощь
...Закладка в соц.сетях