Энциклопедия безопасности - В Громов
Шрифт:
Интервал:
Закладка:
Упаковываемый файл занимает 15 байт и состоит из следующей последовательности символов:
BBBBBLLLLLAAAAA
В шестнадцатиричной системе
42 42 42 42 42 4С 4С 4С 4С 4С 41 41 41 41 41
Архиватор может представить этот файл в виде (шестнадцатиричном):
01 05 42 06 05 4С OA 05 41
Эти последовательности можно интерпретировать следующим образом: с первой позиции 5 раз повторяется знак В, с шестой позиции 5 раз повторяется знак L и с позиции 11 повторяется 5 раз знак А.
Согласитесь, очень простая демонстрация алгоритма архивации. Очевидно, что для хранения файла в его последней форме требуется лишь 9 байт - меньше на 6 байт.
Описанный метод является простым и очень эффективным способом сжатия файлов. Однако он не обеспечивает большой экономии объема, если обрабатываемый текст содержит небольшое количество последовательностей повторяющихся символов. Более изощренный метод сжатия данных, используемый в том или ином виде практически любым архиватором, - это так называемый оптимальный префиксный код, и в частности, алгоритм Хаффмана, или кодирование символами переменной длины. Код переменной длины позволяет записывать наиболее часто встречающиеся символы и фразы всего лишь несколькими битами, в то время как редкие символы и фразы будут записаны более длинными битовыми строками. Например, анализируя любой английский текст, можно установить, что буква Е встречается гораздо чаще, чем Z, а Х и Q относятся к наименее встречающимся. Таким образом, используя специальную таблицу соответствия, можно закодировать каждую букву Е меньшим числом бит, используя более длинный код для более редких букв, тогда как в обычных кодировках любому символу соответствует битовая последовательность фиксированной длины (как правило, кратной байту).
Популярные архиваторы ARJ, РАК, LHARC, PKZIP работают на основе алгоритма Лемпела-Зива. Эти архиваторы классифицируются как адаптивные словарные кодировщики, в которых текстовые строки заменяются указателями на идентичные им строки, встречающиеся ранее в тексте. Например, все слова этой книги могут быть представлены в виде номеров страниц и номеров строк некоторого словаря. Важнейшей отличительной чертой этого алгоритма является использование грамматического разбора предшествующего текста с разложением его на фразы, которые записываются в словарь. Указатели позволяют делать ссылки на любую фразу в окне установленного размера, предшествующем текущей фразе. Этот размер определяет границы поиска соответствия; при его увеличении возрастает плотность упаковки, но снижается скорость работы программы. Если соответствие найдено, текущая фраза заменяется указателем на ее предыдущее вхождение.
Программы-архиваторы позволяют не только сэкономить место на архивных дискетах, но и объединять группы совместно используемых файлов в один архивный файл, что заметно облегчает ведение архивов. К основным функциям архиваторов относятся:
- архивация указанных файлов или всего текущего каталога;
- извлечение отдельных или всех файлов из архива в текущий каталог (или в указанный каталог);
- просмотр содержимого архивного файла (состав, свойства упакованных файлов, их каталожная структура и т.д.);
- проверка целостности архивов;
- восстановление поврежденных архивов;
- ведение многотомных архивов;
- вывод файлов из архива на экран или на печать.
Все программы-архиваторы, как правило, снабжены подробными комментариями, поэтому их применение не вызывает особых затруднений. Кроме того, в программах-архиваторах могут быть предусмотрены дополнительные функции по защите информации в архивном файле с помощью пароля, который используется как ключ алгоритма шифрования данных в архиве.
4. ЗАЩИТА ОТ КОМПЬЮТЕРНЫХ ВИРУСОВ
Компьютерный вирус - это специально написанная небольшая по размерам программа, которая может "приписывать" себя к другим программам (т.е. "заражать" их), а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется "зараженной". Когда такая программа начинает работу, то сначала, как правило, управление получает вирус. Вирус находит и "заражает" другие программы или выполняет какие-нибудь вредные функции: портит файлы или таблицу размещения файлов на диске, "засоряет" оперативную память, изменяет адресацию обращений к внешним устройствам и т.д. Более того, зараженные программы могут быть перенесены на другой компьютер с помощью дискет или локальной сети.
В настоящее время известно более двадцати тысяч вирусов. Условно они подразделяются на классы по следующим признакам.
По среде обитания:
- сетевые, распространяющиеся по компьютерной сети;
- файловые, внедряющиеся в выполняемый файл;
- загрузочные, внедряющиеся в загрузочный сектор жесткого диска или дискеты.
По способу заражения:
- резидентные, загружаемые в память ПК;
- нерезидентные, не заражающие память ПК и остающиеся активными ограниченное время.
По возможностям:
- безвредные, не влияющие на работу ПК;
- неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими звуковыми и прочими эффектами;
- опасные, которые могут привести к серьезным сбоям в работе ПК;
- очень опасные, которые могут привести к потере программ, уничтожению данных, стереть информацию в системных областях памяти и даже преждевременному выходу из строя периферийных устройств.
Данная классификация объединяет, естественно, далеко не, все возможные вирусы; в каждой категории встречаются варианты, не названные в силу их экзотичноти, например, CMOS-вирусы или вирусоподобные структуры, "обитающие" в среде Microsoft Word. Кроме того, встречается ряд программ, не обладающих всеми свойствами вирусов, но могущих представлять серьезную опасность ("троянские кони" и т.п.)
Для защиты и борьбы с вирусами применяются специальные антивирусные программы, которые можно разделить на несколько видов:
- программы-детекторы позволяют обнаружить файлы, зараженные вирусом. Работа детектора основывается на поиске участка кода, принадлежащего тому или иному известному вирусу. К сожалению, детекторы не гарантируют обнаружения "свежих" вирусов, хотя в некоторых из них для этого предусмотрены особые средства. Наиболее известными детекторами являются ViruScan, NetScan. У нас в стране используется детектор Aidstest;
- программы-доктора (или фаги) "лечат" зараженные программы или диски, уничтожая тело вируса. При этом в ряде случаев ваша информация может быть утеряна, так как некоторые вирусы настолько искажают среду обитания, что ее исходное состояние не может быть восстановлено. Широко известными программами-докторами являются Clean-Up, M-Disk и уже упомянутый выше Aidstest;
- программы-ревизоры сначала запоминают сведения о состоянии программ и системных областей дисков, а в дальнейшем сравнивают их состояние с исходным. При выявлении несоответствий выдают сообщение пользователю. Работа этих программ основана на проверке целостности (неизменности) файлов путем подсчета контрольной суммы и ее сравнения с эталонной, вычисленной при первом запуске ревизора; возможно также использование контрольных сумм, включаемых в состав программных файлов изготовителями. Могут быть созданы, и встречаются, вирусы, не изменяющие при заражении контрольную сумму, сосчитанную традиционным образом - суммированием всех байтов файла, однако практически невозможно замаскировать модификацию файла, если подсчет ведется по произвольной, заранее неизвестной схеме (например, четные байты дополнительно умножаются на 2), и совсем невероятно при использовании двух (или более...) по-разному сосчитанных сумм;
- доктора-ревизоры - это программы, объединяющие свойства ревизоров и фагов, которые способны обнаружить изменения в файлах и системных областях дисков и при необходимости, в случае патологических изменений, могут автоматически вернуть файл в исходное состояние;
- программы-фильтры располагаются резидентно в оперативной памяти компьютера, перехватывают те обращения к операционной системе, которые могут использоваться вирусами для размножения и нанесения вреда, и сообщают о них пользователю. Программы-фильтры контролируют действия, характерные для поведения вируса, такие как:
- обновление программных файлов;
- запись на жесткий диск по физическому адресу (прямая запись);
- форматирование диска;
- резидентное размещение программ в оперативной памяти.
Выявив попытку совершения одного из этих действий, программа-фильтр выдает описание ситуации и требует от пользователя подтверждение. Пользователь может разрешить операцию, если ее производит "полезная" программа, или отменить, если источник данного действия неясен. К широко распространенным программам-фильтрам относятся FluShot Plus, Anti4Us, Floserum, Disk Monitor. Это достаточно надежный метод защиты, но создающий существенные неудобства для пользователя.