Техника - молодёжи 1992-12, страница 27«Персоналка» на твоем столе (рис. 1) —наиболее простой путь предотвращения ее копирования средствами DOS. Даже незначительные изменения в структуре или расположении системных таблиц или каталога приводят к тому, что дискета становится непонятной «операционке». Можно «перепутать» адреса секторов, на которых расположены защищаемые файлы; пометить отдельные кластеры, занятые данными, как сбойные; переделав запись в ВООТ-секторе, изъять из доступного системе пространства несколько треков (дорожек); в конце концов — просто применить иную структуру, взяв за основу аналог из других операционных систем (благо есть и примеры, и литература). Разумеется, работать с такой дискетой сможет только специальная программа, полностью заменяющая стандартные функции ввода-вывода. Одним из способов ШИФРАЦИИ данных (рис. 2) является их архивация по специальным алгоритмам, что позволяет к тому же и сэкономить место на магнитном носителе. Например, обычный файл рисунка содержит поточечное описание всех строк экрана (цифра — это точка определенного цвета, ноль — ее отсутствие, значит, запись линии содержит длинный ряд из одной и той же цифры). Архиватор заменяет перечисление элементарным шифром: участок одинаковых кодов —двумя байтами (количество повторов и цвет), и размер файла резко уменьшается. Для других типов записей существуют свои способы архивации, но суть та же. Методов шифрации еще больше. Наиболее распространен такой: файл разбивается на группы с одинаковым количеством байт, внутри каждой происходит замена кодов и их перестановка по двум ключам, а сами группы перемешиваются по третьему ключу. Для вскрытия шифрограммы перебором возможных вариантов, даже с применением скоростных компьютеров, потребуется несколько лет. Но самое сложное здесь — обеспечить неко-пируемость данных после того, как они декодированы собственной программой и, например, отображены на экране или находятся в оперативной памяти (так вскрываются бейсик-тексты, зашифрованные интерпретатором GW-BASIC). Слабым местом являются кодирующие блоки программ. Их исследование под отладчиком или дизассемблером позволяет хакеру понять алгоритм шифрации и повторить его. Поэтому особенно актуальна ЗАЩИТА ОТ ИССЛЕДОВАНИЯ (рис. 3). Важную роль здесь играет стиль программирования. В отличие от общепринятых «наглядности» и «структурности» для охранных механизмов следует применять «изощренность», то есть такой стиль, который позволит получить сложный * запутанный исполняемый модуль. Еще лучше —если он будет саморазворачивающимся в процессе работы (программа «дописывает» свои части, отсутствующие на винчестере). Очень полезными могут оказаться приемы, о которых «Клуб электронных игр» рассказывал в 1986 — 1988 годах (использование кода оператора в качестве операнда, набора констант по прямому назначению и как подпрограммы, передача управления в середину сложной двух-трехбайтовой команды, проход «своим ходом» через данные и другие хитрости, не только экономящие память, но и запутывающие алгоритм). Но это пассивная защита, а в качестве активной - ПРЕСЕЧЕНИЕ ПОПЫТОК ИССЛЕДОВАНИЯ ИЛИ НЕСАНКЦИОНИРОВАННОГО «РАЗМНОЖЕНИЯ» (рис. 4): периодически определяют контрольную сумму всех кодов образа задачи в процессе работы (не «отрезан» ли какой-либо блок); сравнивают свободную память с тем объемом ОЗУ, к которому программа привыкла или приучена (не запущены ли параллельно резидентные «отмычки»); проверяют вектора прерываний (нет ли их перехватов); используя компьютерный таймер, контролируют время прохождения отдельных частей (выявление «остановов» и «потактового режима» отладчика). Изучение операционных систем, аппаратных особенностей ЭВМ позволяет выделить индивидуальные отличия и использовать их для НАСТРОЙКИ НА КОНКРЕТНУЮ ПЭВМ (рис. 5), СИСТЕМУ или ДИСКЕТУ, что делает программное обеспечение непереносимым без санкции разработчика. Правда, в архитектуре большинства компьютеров не существует аппаратной особенности, анализ которой помог бы выделить одну машину из серии таких же. Зато динамические характеристики различных частей (вращение винчестера и дисководов, скорость обращения к оперативной памяти и реакции клавиатуры) и их соотношения между собой индивидуальны, хотя и не очень устойчивы. Для повышения надежности рекомендуется использовать математический закон распределения из теории множеств и, если порог изменения является допустимым, корректировать первоначальные математические ожидания и дисперсии. Кстати, передаваемые в комплекте с лицензионными программами специальные электронные устройства, искусственно создающие аппаратную уникальность конкретной машины (так называемые «заглушки», которые подключаются к одному из разъемов ПЭВМ й по предусмотренному автором ПО запросу выдают парольную комбинацию байт), не всегда эффективны. Хакеры, используя принцип спаривания компьютеров, отслеживают на втором все передаваемые «заглушкой» сигналы, чтобы затем для несанкционированных копий повторить их программой-«псевдозаглушкой». Простой царапиной можно пометить дискету — сделать точно такую же на другой дискете невозможно, а охранный механизм по характеру и местоположению сбойных блоков (или их отсутствию) легко определит подмену. (Но и с этим хакеры успешно справляются: особый драйвер дисковода перехватывает поступающую информацию и заменяет ее на выявленную предварительным тестом с ключевой дискеты.) Надежную ИДЕНТИФИКАЦИЮ ПОЛЬЗОВАТЕЛЯ (рис. 6) можно провести по почерку (скорость, привычки в использовании основных или вспомогательных частей клавиатуры, «любимые» комбинации клавиш при альтернативных вариантах, выполнение «сдвоенных» и «строенных» нажатий одной или двумя руками и т.д.), по росписи с использованием мышки, с помощью психологических тестов и паролей. ПОИСК И УНИЧТОЖЕНИЕ ПОХИЩЕННОЙ ИНФОРМАЦИИ (рис. 7) осуществляются специальными резидентными драйверами (находящимися в памяти даже после выгрузки пакета), которые постоянно контролируют операции ввода-вывода, «просматривают» другие директории винчестера и дискет, вставленных в дисководы. По сути, это практическое применение вирусных механизмов для защиты. Отдельных читателей может шокировать такой способ охраны. Однако если речь идет о важной информации и вирус настроен исключительно на уничтожение украденных данных, то кри минала нет. Даже сторож яблоневого сада вооружается ружьем, что же говорить о допустимых средствах борьбы с утечкой интеллектуальных ценностей? Это далеко не полный перечень различных вариантов «предохранения». Однако следует учесть: их применение нередко мешает работе легальных пользователей, поэтому включение того или иного способа в защитный механизм требует особой внимательности и продуманности, тщательной оценки всех положительных и отрицательных сторон. Каждый алгоритм обладает своей степенью НАДЕЖНОСТИ (рис. 8). Как показывает опыт — 98 процентов «любознательных» программистов отступятся от защиты, если она гарантирует: невозможность копирования дискет с двух-трех попыток распространенными средствами типа COPY II-PC, COPYWRITE или UNLOCK; невозможность разобраться в алгоритме стартовых блоков программы с помощью известных отладчиков и дизассемблеров (удача же на первых шагах, наоборот, подхлестнет «спортивный» интерес); уникальность применяемых систем (если на один и тот же «замок» закрыть; программы разных авторов, то с ним стоит и повозиться). А если к тому же пакет решает специальные задачи (неинтересен широкому кругу пользователей) и обходится дешевле, чем оплата профессионального хакера,—то можно быть спокойным, «краж» не будет. Но, предположим, перед неким хакером все же поставили такую цель. К сожалению, пока не существует объективных критериев оценки надежности того или иного алгоритма либо их комбинаций, зато из субъективных можно взять за основу — время, которое понадобится для «взлома». Шансы того, что защита целиком будет вскрыта, могут быть подсчитаны на основании следующих параметров: вероятность наличия у хакера спецсредств копирования и анализа защищенных программ; объем и степень популярности примененной системы охраны; насколько интересна сама программа другим пользователям; стоимость программы и системы защиты. Обеспечение БЕЗОПАСНОСТИ В ЛОКАЛЬНЫХ СЕТЯХ (рис. 9), пожалуй, самая сложная проблема. Она не решается автоматически, даже если на каждой ПЭВМ все обстоит благополучно, но системе в целом должного внимания не уделялось. Да и сам подход к построению защиты иной. Сначала необходимо разобраться: во-первых, к каким блокам имеющейся информации доступ должен быть максимально открыт (общая часть), ограничен (дополнительные сведения) или полностью закрыт (управление сетью, списки абонентов и их паролей); во-вторых, какие способы проникновения в базы данных возможны для легальных корреспондентов, включая сетевые серверы, и для хакеров. Теоретически всегда допустима ситуация, когда два защитившихся друг от друга абонента контактируют с третьим через общие устройства — тут-то и возникают любопытные варианты похищения или порчи данных. Поистине неоценим зарубежный опыт борьбы и с сетевыми вирусами, автономно живущими в узловых компьютерах и накапливающими передаваемую информацию. Но поскольку сети у нас только начинают развиваться, отечественная теория и практика их безопасности разработаны пока недостаточно. Данный обзор весьма краток. Если вас интересуют подробности, обратите внимание на рубрику «Help» (с. 26). 25 |