Главная страница

Организация определения безопасных ресурсов среди представленных фишинговых электронных писем и сайтов.. Практическая работа № 2. Методы и средства привязки программного обеспечения к аппаратному окружению и физическим носителям


Скачать 61 Kb.
НазваниеМетоды и средства привязки программного обеспечения к аппаратному окружению и физическим носителям
АнкорОрганизация определения безопасных ресурсов среди представленных фишинговых электронных писем и сайтов
Дата09.03.2023
Размер61 Kb.
Формат файлаdoc
Имя файлаПрактическая работа № 2.doc
ТипПрактическая работа
#975719

Практическая работа № 2


Тема: Методы и средства привязки программного обеспечения к аппаратному окружению и физическим носителям

Цель -

  1.  Идентификация программных продуктов

  2.  Методы компьютерной стеганографии для идентификации программ

  3.  Способы создания ключей на жестких дисках

Теоретический материал.

1 Идентификация программных продуктов

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

Закон определяет понятие информации об управлении правами следующим образом:

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

Устранение или изменение любой электронной информации об управлении правами без разрешения правообладателя является нарушением авторского права [ст. 39, п.5]».

Итак, внесение информации об управлении правами в случае возникновения конфликтной ситуации содействует защите прав автора.

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

Таким образом, для предварительной защиты программного продукта автору необходимо решить три вопроса:

  1.  о содержании информации об управлении правами;

    1.  о способе внедрения информации в каждый экземпляр продукта;

    2.  о методах сокрытия информации об управлении правами.

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

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

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

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

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

Первый путь – скрыть содержание информации. Отметим, что при этом факт наличия (передачи) информации остается известным.

Второй путь – скрыть сам факт наличия (передачи) информации. Содержание при этом может быть открытым.

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

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

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

Информация об управлении правами легко может быть закодирована в текстовых и HTML-файлах. Например, для текстовых файлов можно использовать метод скрытых гарнитур шрифтов: необходимо в очертаниях символов текста сделать малозаметные искажения, которые будут нести смысловую нагрузку. В HTML-файлы в конец каждой строки можно добавить определенное число пробелов, кодирующих идентификатор или сообщение, которое необходимо скрыть.

2 Методы компьютерной стеганографии для идентификации программ

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

Внедрение в программу и сопровождение программы информацией об управлении правами назовем идентификацией программы.

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

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

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

В отдельную группу можно выделить методы, основанные на наличии свободных участков в объектных кодах программ, хранящихся в исполнимых файлах:

  1.  существуют свободные полностью или частично секторы файла;

  2.  структуры заголовков файлов в формате EXE, Pоrtable Executable, New Executable содержат зарезервированные поля;

  3.  существуют пустоты между сегментами исполняемого кода;

  4.  и др.

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

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

В другую группу методов компьютерной стеганографии можно объединить способы изменения объектных кодов, базирующиеся на положении о том, что объектный код содержит информацию (описательного характера), модификация которой также не приведет к потере правильного функционирования программы. Так, например, форматы выполнимых файлов (EXE, Pоrtable Executable, New Executable) таковы, что изменение значений некоторых полей не скажется на выполнении программы. Кроме того, объектные коды содержат текстовую информацию, изменение которой никак не повлияет на работу программы.

И в третью группу методов отнесем методы, которые базируются на вирусной технологии внедрения в выполнимые файлы. В частности, можно дополнить объектный код программы некоторым модулем (набором команд, фрагментом кода), изменив при этом  соответствующие характеристики (параметры) файла. Например, приписав информацию об управлении правами в конец файла в формате типа EXE, необходимо изменить значение поля длины файла в его заголовке.

Очевидно, что идентификационные метки должны быть защищены от несанкционированной модификации и/или удаления, а также от потери доступа к ним. Другими словами, метки должны быть стойкими к попыткам модификации и/или удаления неавторизованными лицами.

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

Для увеличения стойкости идентификационных меток можно также использовать подход, используемый технологией идентификации программных продуктов. Технология идентификации программных продуктов специально разработана  для создания практического средства (автоматизированная система) идентификации программ, предназначенного для внедрения идентификационных меток в объектные коды готовых программ.

3 Способы создания ключей на жестких дисках

Рассмотрим методы защиты жестких дисков.

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

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

  1.  серийный номер жесткого диска (для некоторых типов винчестеров);

  2.  расположение bad-кластеров (заметим, что таких кластеров может и не быть).

Привязка к BIOS означает проверку таких параметров, как:

  1.  тип компьютера;

  2.  дата создания BIOS;

  3.  сигнатура производителя BIOS и ее адрес в памяти;

  4.  таблица конфигурации BIOS;

  5.  контрольные суммы BIOS;

  6.  точки входа в BIOS некоторых прерываний и др.

Привязка к архитектуре означает проверку конфигурации компьютера:

  1.  число и тип накопителей на гибких дисках;

  2.  число и тип накопителей на жестких дисках;

  3.  тип видеоадаптера;

  4.  объем оперативной памяти;

  5.  наличие (размер) дополнительной и/или расширенной памяти.

Иногда используют:

  1.  тип клавиатуры;

  2.  тип и интерфейс манипулятора «мышь» и «световое перо»;

  3.  число параллельных и/или последовательных портов.

Привязка к программному обеспечению означает проверку наличия на жестком диске и/или в оперативной памяти определенных программ (чаще драйверов). Иногда осуществляют проверку наличия в системных файлах определенной последовательности запусков программ и команд.

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

Еще одним подходом для получения ключа жесткого магнитного диска является измерение производительности аппаратуры:

  1.  скорости вращения дисковода или винчестера;

  2.  тактовой частоты с точностью до единиц мегагерц;

  3.  времени доступа к оперативной памяти;

  4.  скорости подсистемы ввода/вывода и т.п.

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

Для создания собственного ключа на жестком диске можно:

  1.  нестандартно отформатировать неиспользуемую дорожку (Метод аналогичен нестандартному форматированию дорожки на гибком диске, но здесь форматируется неиспользуемая, а не дополнительная дорожка);

  2.  пометить ложные bad-кластеры.

При этом чтобы уменьшить вероятность того, что пользователь заметит псевдосбойные кластеры, специалисты рекомендуют помечать таким образом либо первое от начала FAT свободное место (вероятность, что при переносе на другой компьютер этот кластер будет занят, велика), либо в самый конец FAT, так, чтобы его не показывали средства типа SpeedDisk.

  1.  Использовать операции длинного чтения/записи.

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

  1.  Модифицировать системные файлы с последующей проверкой.

Для защиты программы от копирования можно осуществлять проверку не индивидуальных параметров компьютера или жесткого диска, а самой защищаемой программы, вернее файла, в котором она записана. Так, для файла жесткого диска уникальными характеристиками являются:

  1.  время создания файла (каталога);

  2.  номера используемых кластеров;

  3.  информация в неиспользуемом участке последнего кластера.

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

Контрольные вопросы

  1.  Поясните понятие «идентификация программных продуктов».

  2.  Поясните методы компьютерной стеганографии для идентификации программ.

  3.  Поясните способы создания ключей на жестких дисках.


написать администратору сайта