Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы информационной безопасности

..pdf
Скачиваний:
7
Добавлен:
12.11.2023
Размер:
11.15 Mб
Скачать

того, чтобы убедиться в подлинности документа, достаточно вычислить значения h (x) и D (E (h (x))) и сравнить их между собой.

Очевидно, что не любая функция, отображающая сообщение произвольной длины в хеш-код фиксированной длины, может быть использованавалгоритмецифровойподписи. Рассмотрим, например, функциюs, значением которой является сумма по модулю 2 всех байтов сообщения. В этом случае несложно для заданного сообщения х подобрать сообщение у, для которого s (y) = s(x). Следовательно, перехватив подлинное сообщение х и его цифровую подпись E (s (x)), злоумышленник может подменить его сообщением y, используя в качестве цифровой подписи

E (s (x)) = E (s (y)).

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

1.Хеш-функция должна иметь возможность обрабатывать сообщения произвольной длины.

2.Результатом применения хеш-функции является хеш-код фиксированной длины.

3.Вычисление хеш-функции от заданного сообщения должно производится относительно быстро.

4.Обратная операция, тоесть нахождение сообщения х, имеющего заданный хеш-код, должна быть трудно выполнимой.

Из последнего требования вытекает, что для имеющегося сообщения х сложно найти не совпадающее с ним сообщение у такое, что h (y) = h (x) (наличие такой пары называют коллизией). Следовательно, перехватив сообщение х с цифровой подписью E (h (x)), злоумышленник не сможет подобрать другое сообщение, имеющее ту же цифровую подпись.

Функции, удовлетворяющие требованиям 1–4, называют слабыми хеш-функциями.

Чтобы функцию h (x) можно было назвать сильной, необходимо выполнение следующего дополнительного условия:

5. Очень сложно подобрать пару сообщений х, у таких, что h (x) = h (y).

Предположим, что последнее требование не выполняется и имеется алгоритм подбора сообщений с совпадающими хеш-кодами. Пусть х, у такие, что h (x) = h (y). Вполне возможно, что одно из этих сообщений

421

окажется довольно безобидным, а второе очень выгодным злоумышленнику. Например, в первом содержится указание о переводе 100 долларов в благотворительный фонд, а во втором 100 000 на счет злоумышленника. Тогда злоумышленник может каким-либо образом добиться подписания безобидного сообщения х, а затем использовать полученную цифровую подпись E (h (x)) для подтверждения сообщения у, пользуясь тем, что цифровые подписи этих сообщений совпадают.

Российский стандарт на хеш-функцию (ГОСТ Р 34.11–94) удовлетворяет требованиям к сильной хеш-функции. Длина хеш-кода согласно этому стандарту составляет 256 бит.

Если имеется необходимость в обеспечении и целостности, и секретности сообщения, то целесообразно сначала подписать сообщение, а затем уже зашифровать его вместе с подписью. При такой последовательности действий удастся избежать подписывания «кота в мешке», какимявляетсязашифрованноесообщение. Крометого, будетскрытацифровая подпись, по которой можно установить автора сообщения. Здесь уместна аналогия с письмом. Роль подписи под письмом берет на себя цифровая подпись, а шифрование обеспечивает секретность послания вместо конверта. Естественно, что в этом случае необходимо иметь две пары открытых и секретных ключей – одну использовать для генерации цифровой подписи, а вторую для шифрования (либо для пересылки ключа симметричной криптосистемы, используемой для шифрования сообщения).

Следуетотметить, чтоприведеннаянамисхемапостроенияалгоритма цифровой подписи на основе системы шифрования с открытым ключом, хотя и удобна для изложения основных идей, но не отражает всего многообразия реальных систем цифровой подписи. Например, система шифрованияицифровойподписиRSA (Rivest, Shamir, Adleman), описанная в следующей главе, хорошо соответствует данной схеме. А системы типа Эль-Гамаля (которым принадлежит и российский стандарт цифровой подписи – ГОСТ Р 34.10–94) не совсем точно укладывается в приведенную схему. Здесь также имеется секретный ключ для выработки цифровой подписи и открытый ключ для ее проверки. Однако процесс получения цифровой подписи не является шифрованием.

Одной из основных проблем, связанных с использованием криптосистем с открытым ключом, является проблема обеспечения досто-

422

верности передаваемых открытых ключей. Представим себе, что некий злоумышленник С подменил открытый ключ абонента А во время его передачи абоненту В на свой открытый ключ. В этом случае он сможет расшифровывать все сообщения абонента В, предназначенные для А. Аналогичная атака на цифровую подпись приведет к тому, что сообщения, подписанные злоумышленником, будут считаться подлинными, а настоящие сообщения – ложными.

Вопросы для самоконтроля к главе 13

1.Дайте определение шифра и сформулируйте основные требования к нему.

2.Дешифруйте сообщение, зашифрованное с помощью шифра простой замены: «11 03 18 21 11 04 15 02 13 29 12 10 01 28 02 18 21 11 01 28 28 12 30 12 21 32 04 00 27 32 01 21 11 12 27 32 01 32 12 14 28 12 21 28 01 23 32 02 21 22 04 27 32 12 21 28 01 21 00 12 32 12 29 12 22 21 28 01 06 12 11 02 32 27 18 21 27 03 12 10 12 21 11 04 15 02 13 29 12 10 01 28 02 04». Исходное сообщение состоит из цифр от 0 до 32, которыми закодированы буквы в соответствии с табл. 13.1 (подсказка: речь в сообщении идет о дешифровании).

3.Поясните, чтовыпонимаетеподсовершеннымшифром. Приведите пример совершенного шифра.

4.Дешифруйтеследующее сообщение: «15 03 23 21 22 32 14 06 25 14 04 07 24 16 31» методомпереборавсехвозможныхключей. Исходное сообщение состоит из цифр от 0 до 32, которыми закодированы буквы в соответствии с табл. 13.1. Шифрование произведено сложением по модулю 32 с псевдослучайной гаммой: К, (К2)mоd 32,.., (Кn)mod 32, где К неизвестный ключ из множества чисел от 0 до 32.

5.Изложите принципиальную схему организации обмена документами, заверенными цифровой подписью.

6.Перечислите основные требования, предъявляемые к хешфункции, пригодной для использования при вычислении цифровой подписи документа.

423

ГЛАВА 14

КОМПЬЮТЕРНЫЕ ВИРУСЫ И ЗАЩИТА ОТ НИХ

14.1. Хронология развития компьютерных вирусов

Появление первых компьютерных вирусов, способных дописывать себя к файлам, связывают с инцидентом, который произошел в первой половине 1970-х гг. на системе Univax 1108. Вирус, получивший название «Pervading Animal», дописывал себя к выполняемым файлам – делал практически то же самое, что тысячи современных компьютерных вирусов.

Можно отметить, что в те времена значимые события, связанные с компьютерными вирусами, происходили один раз в несколько лет. С началом 1980-х гг. компьютеры становятся все более и более популярными. Появляется все больше и больше программ, начинают развиватьсяглобальныесети. Результатомэтогоявляетсяпоявлениебольшого числа разнообразных «троянских коней» – программ, которые при их запуске наносят системе какой-либо вред. В 1986 г. произошла первая эпидемия IBM-PC вируса «Brain». Вирус, заражающий 360 кбайт дискеты, практически мгновенно разошелся по всему миру. Причиной такого «успеха» являлась, скорее всего, неготовность компьютерного общества

квстрече с таким явлением, как компьютерный вирус.

В1987 г. произошло событие, которое популяризировало компьютерные вирусы. Код вируса «Vienna» впервые публикуется в книге Раль-

фа Бюргера «Computer Viruses: A High Tech Desease». Сразу же в 1987 г.

появляются несколько вирусов для IBM-PC.

Впятницу 13 мая 1988 г. сразу несколько фирм и университетов нескольких стран мира «познакомились» с вирусом «Jerusalem» –

вэтотденьвирусуничтожалфайлыприихзапуске. Вместеснесколькими другими вирусами вирус «Jerusalem» распространился по тысячам компьютеров, оставаясь незамеченным – антивирусные программы еще не были распространены в то время так же широко, как сегодня, а многиепользователиидажепрофессионалыещеневериливсуществование компьютерных вирусов. Не прошло и полгода, как в ноябре повальная эпидемия сетевого вируса Морриса (другое название – «Internet Worm»)

424

заразила более 6000 компьютерных систем в США и практически парализовалаихработу. Попричинеошибкивкодевирусаоннеограниченно рассылал свои копии по другим компьютерам сети и, таким образом, полностью заблокировал ее ресурсы. Общие убытки от вируса Морриса были оценены в 96 млн долларов.

Промышленная ассоциация по компьютерным вирусам только за 1988 г. зафиксировала почти 90 тыс. вирусных атак на персональные компьютеры [29]. Количество инцидентов, связанных с вирусами, вероятно, превосходит опубликованные цифры, поскольку большинство фирм умалчивает о вирусных атаках. Причины молчания: такая реклама может повредить репутации фирмы и привлечь внимание хакеров.

В1992 г. появились первые конструкторы вирусов VCL и PS-MPC, которые увеличили и без того немаленький поток новых вирусов. В конце этого года первый вирус для Windows, заражающий выполняемые файлы этой операционной системы, открыл новую страницу компьютерных вирусов.

Вдальнейшем развитие компьютерных вирусов напоминает сводку

сполей сражений. Создатели вирусов становятся все более изощренными, количество антивирусных программ растет, но ни одна из них не защищает в полной мере. В компьютерном обществе появляется синдром «компьютерного вируса».

Кборьбе с вирусами подключаются правоохранительные органы: летом 1994 г. автор вируса SMEG был арестован. Примерно в то же самое время в той же Великобритании была арестована целая группа вирусописателей, называвшая себя ARCV (Assotiation for Really Cruel Viruses). Некоторое время спустя еще один автор вирусов был арестован в Норвегии.

Август 1995 г. стал одним из поворотных моментов в истории вирусов и антивирусов: был обнаружен первый вирус для Microsoft Word («Concept»). Так начиналось время макровирусов.

В1998 г. появились первые полиморфные Windows32-вирусы: «Win95. HPS» и «Win95. Marburg». Разработчикам антивирусных программ пришлось спешно адаптировать к новым условиям методики детектирования полиморфных вирусов, рассчитанных до того только на DOS-вирусы.

425

Наиболее заметной в 1998 г. была эпидемия вируса «Win95. CIH», ставшая сначала массовой, затем глобальной, а затем повальной – сообщения о заражении компьютерных сетей и домашних персональных компьютеровисчислялисьсотнями, еслинетысячами. Началоэпидемии зарегистрировано на Тайване, где неизвестный заслал зараженные файлы в местные Интернет-конференции.

Ссередины 1990-х гг. основным источником вирусов становится глобальная сеть Интернет.

С1999 г. макровирусыначинаютпостепеннотерятьсвоегосподство. Это связано со многими факторами. Во-первых, пользователи осознали опасность, таящуюся в простых doc- и xls-файлах. Люди стали более внимательными, научились пользоваться стандартными механизмами защиты от макровирусов, встроенными в MS Office.

В2000 г. происходяточеньважныеизменениянамировой«вирусной арене». На свет появляется новый тип вредных кодов – сетевые черви.

Вэто же время появляется супервирус – «Чернобыль». «Чернобыль» – исполняемый вирус под Windows, имеющий следующие особенности.

Во-первых, зараженный файл не меняет своего размера по сравнению с первоначальным вариантом. Такой эффект достигается благодаря структуре исполняемых файлов Windows: каждый exe-файл разбит на секции, выровненные по строго определенным границам. В результатемеждусекциямипочтивсегдаобразуетсянебольшойзазор. Хотятакая структура приводит к увеличению места, занимаемого файлом на диске, она же позволяет существенно повысить скорость работы операционной системы с таким файлом. «Чернобыль» либо записывает свое тело в один такой зазор, либо дробит свой код на кусочки и копирует каждый из них в пустое место между границами. В результате антивирусу сложнее определить, заражен файл или нет, и еще сложнее вылечить инфицированный объект.

Во-вторых, «Чернобыль» стал первопроходцем среди программ, умеющих портить аппаратные средства. Некоторые микросхемы позволяют перезаписывать данные, хранящиеся в их миниПЗУ. Этим и занимается этот вирус.

2000 г. еще можно назвать годом «Любовных Писем». Вирус «LoveLetter», обнаруженный 5 мая, мгновенно разлетелся по всему миру, поразив десятки миллионов компьютеров практически во всех

426

уголках планеты. Причины этой глобальной эпидемии кроются в чрезвычайно высокой скорости распространения. Вирус рассылал свои копии немедленно после заражения системы по всем адресам электронной почты, найденным в адресной книге почтовой программы Microsoft Outlook. Подобно обнаруженному весной 1999 г. вирусу «Melissa», «LoveLetter» это делал якобы от имени владельца зараженного компьютера, о чем тот, естественно, даже не догадывался. Немаловажную роль при распространении вируса сыграл и психологический аспект: мало кто сможет удержаться, чтобы не прочитать любовное письмо от своего знакомого. Именно на это была сделана основная ставка в процессе разработки вируса. О масштабах заражения вирусами в начале XXI в. свидетельствует тот факт, что только в мае 1999 г. атаке вируса «LoveLetter» подверглись более 40 млн компьютеров. Уже за первые 5 дней эпидемии вирус нанес мировой экономике убытки в размере 6,7 млрд долларов.

С2000 г. сетевые черви начинают полностью преобладать на вирусной арене мира. Сегодня, по данным Лаборатории Касперского, на их долю приходится 89,1 % всех заражений. В структуре распространенности сетевых червей традиционно преобладают почтовые, использующие e-mail в качестве основного транспорта для доставки на целевые компьютеры.

В 2001 г. был обнаружен новый тип вредоносных кодов, способных активно распространяться и работать на зараженных компьютерах без использования файлов – «бестелесные» черви. В процессе работы такие вирусы существуют исключительно в системной памяти, а при передаче на другие компьютеры – в виде специальных пакетов данных.

Такойповоротсобытийпоставилсложныезадачипередразработчиками антивирусных пакетов. Традиционные технологии (антивирусный сканер и монитор) проявили неспособность эффективно противостоять новой угрозе, поскольку их алгоритм борьбы с вредоносными программами основан именно на перехвате файловых операций. Решением проблемы стал специальный антивирусный фильтр, который в фоновом режимепроверяетвсепоступающиенакомпьютерпакетыданныхиудаляет «бестелесных» червей.

С1987 г. начали фиксироваться факты появления компьютерных вирусов и в нашей стране. На первой Всесоюзной научно-технической конференции «Методы и средства защиты от компьютерных вирусов

427

в операционной системе MS DOS» (Киев, ноябрь 1990 г.) была приведена статистика выявления вирусов на территории СССР: 1987 г. – 8; 1988 г. – 24; 1989 г. – 49; 1990 г. (осень) – 75. В настоящее время еже-

годно в мире выявляется не менее тысячи вирусов. Страны, где производится наибольшее число вирусов: Россия, Болгария, США, Германия. Подробнее история вирусов отражена в работах [20, 2, 3].

Компьютерный вирус – это программа, обладающая двумя основными функциями: способностью к саморепродукции и способностью осуществлять, кроме того, определенные манипуляции в вычислительной системе [47]. Как и биологический вирус, который только при наличии основной клетки может стать активным, она связана с программойносителем. Компьютерные вирусы сравнительно маленькие, быстрые и трудно обнаруживаемые в вычислительных системах. Особенность саморепродукции компьютерных вирусов заключается в том, что их копии вводятся в другую выполняемую программу лишь тогда, когда с помощью отличительного признака устанавливается, что эта программа еще не содержит копий. При этом скопированная инфицированная программа переносит копию вируса и этим продолжает процесс его распространения.

Выведем, исходя из этого, обобщенную структуру компьютерного вируса. Прежде всего, еще раз дадим строгое определение вируса, основываясь на взглядах доктора Ф. Коэна [14]:

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

Заражая программы, вирус может распространяться по компьютерной системе или сети, используя полномочия пользователей для заражения их программ. Каждая программа, зараженная вирусом, также действует как вирус, что и определяет распространение инфекции по компьютерной системе или сети.

На рис. 14. 1 представлена возможная структура компьютерного вируса V, написанная на псевдоязыке.

Рассмотрение данной структуры позволяет определить механизм заражения. Вирус V ищет незараженный выполняемый файл Е, проводя поиск всех выполняемых файлов, не содержащих строку «VIRUS». Указанная строка является идентификатором зараженных файлов и по-

428

зволяет вирусу не проводить повторного их заражения. Далее V добавляет себя к Е, превращая его в зараженный файл I. Затем вирус проверяет, выполнено ли какое-либо предусмотренное условие, и если «да», то наносит ущерб и передает управление программе Е. Теперь, когда пользователь попытается выполнить программу Е, будет выполняться программа I. Она как носитель вируса V заражает другие файлы и затем выполняется как обычная программа Е. За исключением небольшой задержки на процесс заражения I ведет себя, как Е, пока условие срабатывания не станет истинным. По условию срабатывания вирусV активизируется и выполняет манипуляции, связанные с визуальными эффектами, разрушениями системы и т. п. Следует заметить, что вирус может не ограничиться одиночным заражением на один запуск программы.

{

VIRUS;//Признак наличия вируса в программе ЗАРАЗИТЬ_ПРОГРАММУ; Если УСЛОВИЕ_СРАБАТЫВАНИЯ то МАНИПУЛЯЦИИ; Передать управление программе;

}ЗАРАЗИТЬ_ПРОГРАММУ

{

Выбрать программу, не содержащую строку «VIRUS»; Присоединить вирус к программе;

}УСЛОВИЕ_СРАБАТЫВАНИЯ

{

//Определение наличия условий для наступления //фазы проявления вируса } МАНИПУЛЯЦИИ

{

//Осуществление специальных манипуляций, связанных //с визуальными эффектами, разрушениями системы и т. п.

}

Рис. 14.1. Вирус V

Из приведенной структуры следует, что вирус может существовать

вследующих четырех фазах:

«спячка»;

распространение в вычислительной системе или сети;

429

запуск;

разрушение программ и данных или какие-либо другие негатив-

ные эффекты.

Фаза «спячки» может использоваться автором вируса для создания у пользователя уверенности в правильной работе системы.

Фаза распространения обязательна для любой программы-вируса. Вэтойфазеврезультатезагрузкиивыполненияпрограммы, зараженной вирусом, происходит заражение других программ путем многократного самокопирования вируса в другие программы и системные области.

Запуск вируса осуществляется, как правило, после некоторого события, например наступления определенной даты или заданного числа копирований.

В последней фазе происходит разрушение программ и данных или ка- кие-либодругиенегативныедействия, предусмотренныеавторомвируса.

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

Позиционно зависимый вирус, размещаемый в начале программы, обычно копирует исходные начальные команды в конец области данных программы на магнитном диске. Такие вирусы должны иметь подпрограмму бокового перемещения, которая может использовать известную область памяти вне исходной программы. Это необходимо для того, чтобы исходный код, перемещенный вирусом, мог быть восстановлен в первоначальном положении и выполнен корректно.

Большинство вирусов, обнаруженных на сегодняшний день у нас

встране и за рубежом, ориентированы на действие в среде определенных операционных систем. Наибольшее распространение они получили

вперсональных ЭВМ.

Многиевирусынеопасныисозданынезлонамеренно, арадишутки или эксперимента с существующей техникой. Степень опасности вируса характеризует потенциально наносимый им вред. Можно предложить следующую шкалу степени опасности:

вирус имеет недеструктивную фазу проявления (звуковые или визуальные эффекты), все зараженные файлы могут быть корректно восстановлены;

430