Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)
Demon's Souls |#9| Heart of surprises

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Ральф Бургер Весь текст 616.55 Kb

Большой справочник по компьютерным вирусам

Предыдущая страница Следующая страница
1 ... 36 37 38 39 40 41 42  43 44 45 46 47 48 49 ... 53
ваемые несколькими программистами одновременно, вряд ли  подд-
пются проверке  даже  со  стороны сотрудников, не говоря уже о
внешних, независимых экспертах. Итак, пользователь оказывается
перед изготовителем системы довольно беспомощным.
     Остается полагаться на лиц, разрабатывающих  операционные
системы для  ЭВМ, пригодных для использования в стратегических
целях. Может ли государство идти на рынок, используя для стра-
тегических целей ЭВМ, операционная система которой разработана
в другом, пока еще дружески настроенном государстве? Даже если
в качестве исключения поставляется полная документация на опе-
рационную систему, включая  исходные  тексты.  Какие  проблемы
возникают, когда  требуется  проверить  на наличие вирусов или
циклов выполнения каких-либо манипуляций большую программу  (а
ведь речь  идет  об операционной системе), может увидеть чита-
тель, подробно ознакомившись с разделом 15.3. Но то, что  сде-
лать это  чрезывчайно  трудно, понятно уже сейчас. О возможных
последствиях выполнения "злонамеренных" манипуляций на  вычис-
лительных системах  стратегического  назначения любой читатель
может составить собственное мнение...

                           - 258 -


      _13.3 Случайно возникающие вирусы


     Фред Кохэн уже высказывался в своей  публикации  опасения
по поводу  вероятности случайного возникновения вирусов. Такую
вероятность при благоприятных условиях, т.е. при длине  вируса
в 1000  бит,  когда 50 % всех битов уже установлены правильно,
он оценил следующим образом:


                       _     500!
                       1000 х 500


     К сожалению, Фрэд Кохен не дал обоснования  этой  оценки.
Тогда было бы легче выполнить такой расчет. Вероятно, он исхо-
дил из  последовательных  мутаций отдельного потока битов, че-
го, однако, на практике никогда не происходит,  поскольку  как
правило, программа  не может функционировать в полной мере уже
после изменения одного единственного бита. Исходить же из  500
следующих друг  за другом мутаций совершенно нереально. Важнее
ответить, какова вероятность того, что любой  поток  битов,  с
которым манипулирует  "амок"  запущенной  программы,  случайно
совпадает с содержимым вируса.
     Такая вероятность должна сильно отличаться от  рассчитан-
ной Кохэном.  Поскольку  очень трудно представить, как прибли-
женным методом получить значение 500!, продолжим наши  рассуж-
дения.
     Если, как  и Кохэну, исходить из длины вируса в 1000 бит,
то такому вирусу ("поток битов вируса") можно поставить в  со-
ответствие некоторое  рациональное  числовое  значение.  Такое
числовое значение никак не может превысить значение 2^1000.  с
этим выводом  согласится всякий, кто хотя бы однажды попытался
записать в байтной переменной значение, большее  255.  Значит,
вероятность того,  что в области в 1000 бит точно получим коды
вируса, близка к значению, обратному 2~1000. Итак, вероятность
случайного возникновения вируса составит:

                           - 259 -


                           _1
                       2^1000


     Это значение одназначно определено путем логических  рас-
суждений. Собственно  при  других  условиях и при той же длине
битового набора вероятность может оказаться ниже, но никак  не
выше. Правда,  приведенное  выше  значение  достаточно  сложно
сравнить с приведенным Кохэном значением,  поскольку  величину
500! очень  трудно представить. Ниже будет проверяться следую-
щее утверждение:


     1)       _   500!    .   <   _   1
             1000^500        2^1000


     Отдельные этапы проверки поясняются. По формуле Стирлинга
можно оценить значение   n!:

                            n
     2)                  InI      ______
                      n! I I   * V(2*П*n)
                         IcI


     C учетом этого приближенного  значения  результат  Кохена
можно представить в таком виде:

                               500
     3)                   I500I
                          I---I
                           _I c I .       *  V(2*П*500)
                      1000^500

                                500
     4)                    I500I

                           - 260 -
                           I---I      *   V(2*П*500) *  _    1
                           I e I                        1000^500


     5)                 _     500^500      .*  V(2*П*500)
                       e^500 * 1000^500


     6)                 _        500^500        . * V(2*П*500)
                       e^500 * 2^500 * 500^500


     7)                  _        .1 _       .  *  V(2*П*500)
                        e^500 * 2^500


     8)                  _       1       .  *  V(2*П*500)
                        (2^e)^500


     9)                  _       1        .  *  V(П*1000)
                        (2*e)^500


     Теперь нужно  взять  логарифм,  чтобы получить нужный ре-
зультат.


     10)                  _       1        . * e^4,0262
                         e*846,5735


     11)                 _ e .^ _4,0262
                         e^846,57


     Теперь окончательно установим результат Кохэне:



                           - 261 -
     12)                 _   500 !   . ~ e^842,54
                        1000^500


В противоположность этому значению обратная величина наиболь
шего из представимых 1000 битами числа такова:


     13)                 e^ -693,14


     Итак, значение Кохэна  отличается  от  обратной  величины
2^1000 примерно  в  e^149,4  раза.  Это соответствует различию
примерно в 764 х 10(64). Насколько велика эта  разница,  можно
увидеть, сравнив результат Кохэна со значением 1/2^1000 по ос-
нованию 10:


     n1/100000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     00000000000000000000


     Обратная величина 2^1000:


     n1/100000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000000000
     0000000000000


     Несмотря на  явлную колоссальную разницу в значениях, ве-

                           - 262 -
роятность случайного возникновения вируса все же  пренебрежимо
мала. Если сопоставить эту вероятность со всеми находящимися в
данный момент  в  эксплуатации вычислительными системами, учтя
при этом скорость передачи данных, составляющую  в  среднем  5
Мбит/с соответствуют 4,32*10^11 переданных битов в день и ЭВМ,
работающей при совершенно нереальных предположениях о том, что
эта ЭВМ считывает и записывает данные непрерывно.
     Если взять теперь среднюю вероятность возникновения ошиб-
ки на 1/10^10 бит, то получим 43,2 n двоичных ошибок в день на
компьютер. Путем  умножения этого результата на число ЭВМ, от-
вечающих указанным выше спецификациям (оцененное в 10  миллио-
нов ЭВМ), получим максимум 43,2 миллиона (число с восьмью раз-
рядами) двоичных  ошибок  в  день. Естественно, этот результат
все еще очень далек от 2^1000 число с 300 знаками).
     Итак, утверждение Кохэна, что вирусы не могут образовать-
ся случайным образом, должно быть этим  подтверждено.  Но  ре-
зультат будет  выглядеть  несколько иначе, если производитель-
ность средней ЭВМ считать равной 1 миллиону операций в  секун-
ду. Это соответствует 8,64*10^10 операций за день на одну ЭВМ.
Если такую производительность использовать для случайной гене-
рации битового набора длиной 1000 бит, то за день  могут  быть
сгенерированы 8,64*10^10 случайных чисел. Тогда правильный би-
товый набор  был  бы найден спустя 10^290 дней. Если для такой
цели использовалось бы 10 миллионов ЭВМ, этот результат был бы
получен через 10^283 дня или спустя


     100000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000000000
     000000000000000000000000000000000000000000000


лет.
     Итак, вероятность генерации вируса путем последовательной
мутации представляется  практически  невозможной.  Правда,  на
практике исходят из несколько других предпосылок. Прежде всего
возникает вопрос,  чколько  битовых  наборов длиной в 1000 бит

                           - 263 -
помещается в оперативной памяти (причем должны  учитываться  и
перекрывающиеся области);  во-вторых,  нужно было уяснить, ин-
терпретируется ли и при каких  условиях  определенная  область
оперативной памяти  как область выполнимой программы. Ответ на
эти вопросы выходит за рамки настоящей книги.
     Но добавляются и другие факторы: как  гласит  определение
вируса, вирус  должен  быть  программой, которая копирует сама
себя в другие программы;  следовательно,  вирус  должен  иметь
возможность воздавать






файлы.Теперь читателю  было бы полезно еще раз задуматься над тем, как
много его программ имеют возможность воздействовать на файлы и  считы-
вать каталоги и данные.
     Способность изменять  данные присуща практически всем программам.
Многие программы могут к тому же считывать каталоги и файлы. значит, в
таких программах уже заложены основные функции вирусов. Для того чтобы
превратить эти программы в вирусы, нужно лишь заново организовать  об-
работку таких программ. Нечто подобное делает описанный в разделе 10.4
вирус, вызывающий  debug,  edlin  и  сору. Тогда коды программы-вируса
(если отказаться от списка команд) могут занимать менее 50  байтов,  а
потому программа  будет иметь менее 1000 битов. По сути дела вирус мог
бы выглядеть так:
dir *. сом х        13 Вytes       104 Bits
еdlin х 1           11 Вуtes        88 Вits
debug х 2           11 Вуtes        88 Вits
tdlin n.ВАT 3       15 Bytts       120 Bits
N                    3 Bytes        24 Bits
                  --------------------------
          Gesamt:   53 Bytes       424 Bits
                СR und LF werden mitgereсhnеt

Если эту игрушку еще немного  модифицировать  и  присвоить  программам
edlin и deburg  новые имена, программу можно еще сократить.
dir *. com x        13 Bytes        104 Bits

                           - 264 -
ex 1                 7 Bytes         56 Bits
dx 2                 7 Bytes         56 Bits
tn.bаt 3            11 Вytes         88 Bits
n                    3 Bytеs         24 Bits
                  ----------------------------
          Gesamt:  41 Bytes        328 Bits
                СR und LF werden мitgtrtсhnet

Итак, установленную  Кохен минимальную длину вируса можно было бы сок-
ратить более чем на 60 процентов. Естественно,  это  лишь  пример,  но
разве кто  может  утверждать,  что изменения одного единственного бита
недостаточно, чтобы превратить его программу в вирус.  Основные  функ-
ции, присущие вирусу, имеются практически во всех программах. следова-
тельно, даже минимальные изменения могкт привести к фатальным последс-
твиям.
     Итак: хотя  расчеты  Кохена,  как оказалось,во много десятков раз
расходятся с нашими, это не слишком сказывается на утверждении о  том,
что случайное  возникновение  вирусов  практически невозможно. Правда,
это справедливо лишь тогда, когда начинают с нуля.  Если  исходить  из
имеющегося программного  обеспечения, в котором, как правило, уже име-
ются программы для чтения и записи файлов и  пр.,  то  нужно  признать
снижение степени  вероятности. Насколько в действительности велик шанс
Предыдущая страница Следующая страница
1 ... 36 37 38 39 40 41 42  43 44 45 46 47 48 49 ... 53
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (1)

Реклама