Материал выступления на Международной конференции - "Информатика и компьютерные технологии"ДонНТУ(15.06.2008)

 

ВСТРОЕННАЯ ИНДИВИДУАЛЬНАЯ ЗАЩИТА ОТ ВРЕДОНОСНОГО КОДА

 

Автор исследования - Егорин А.П.

 

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

Классические антивирусные сканеры идентифицируют компьютерные вирусы на основе цепочек символов - так называемых сигнатур. Они состоят из типичных для каждого вируса последовательностей байтов и указывают на местонахождение вредоносной программы в пределах инфицированного файла. Все известные сигнатуры заносятся в базу данных. При прохождении файла через шлюз антивирусный продукт автоматически сравнивает код файла с этими сигнатурами. Если последовательности символов совпадают, то фиксируется вредоносный код.  Технология очень надежна, однако новые вирусы с ее помощью можно обнаружить только после соответствующего обновления системы, которое в лучшем случае возможно лишь через несколько часов, а нередко и спустя целый день - столько времени проходит до того момента, когда последний производитель выпустит новую сигнатуру и предоставит ее своим клиентам по Internet. В течение этого срока пользователь беззащитен перед новыми вредителями. Охотники за вирусами делают ставку на технологии раннего распознавания, в частности «песочницы» или эвристические методы. Эти методы с успехом применяются в современных коммерческих антивирусных решениях, но по-прежнему остаются далеко не идеальными детектировщиками вредоносного кода и имеют большое число ложных срабатываний (эвристические методы). Предлагается идея встроенной индивидуальной защиты каждой программы (self-defense), т.е. внедрение в крупный программный продукт всех трех современных технологий защиты, но не в полном объеме. Согласно сказанному, возможно приспособление антивирусного «движка» (поиск по сигнатурам), блокировщика поведения и эвристических методов к конкретной задаче. Такое «заточенное» совмещение позволит с легкостью выявлять проникновение вредоносного кода в исправный программный продукт с возможностью его идентификации и уничтожения (с возможностью восстановления утерянных данных, обновления поврежденных и не излечимых компонент и модулей системы). Эффективное внедрение антивирусной защиты к программному продукту возможно при выполнении следующих пунктов:

1.  Определение задач, которые решает защищаемая система.

2.  Определение структур данных, которые используются в системе.

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

4.  Определение потоков данных, которые появляются и используются в процессе функционирования системы.

5.  Определение критически важных «участков» работы системы, которые требуют обработки в реальном режиме.

6.  Определение структуры системы, для эффективной расширяемости, как ее, так и внедряемой защиты.

7.  Определение способов хранения защищаемой информации.

8.  Определение форматов и структур защищаемых объектов.

9.  Сбор начальной информации о системе для статической защиты:

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

          максимальные потоки данных в каждом модуле системы

          максимальные показатели производительности (задержки, временные параметры работы конкретных участков кода)

          состояние данных на моменты инициализации каждого модуля системы

          параметры обновления компонент систему

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

10. Политика пользования программой:

          использование сторонних программных продуктов

          политика пользования со стороны пользователей

          определение реакций по умолчанию, обработка критических исключений

11. Определение локализации для системы:

          автономная система

          локальный программный продукт

          сетевой программный продукт

          распределенная система (хранилище данных, параллельные вычисления и т.д.)

          параллельная система и т.д.

12. Совместимость с остальными защитами системы (обфускации кода, шифрование паролей и т.д.)

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

1. Статическая защита позволяет своевременно обнаруживать разрушение компонент системы.

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

3. Внедрение блокировщика поведения позволяет на этапе исполнения системы выявлять неверные и не предусмотренные политикой безопасности действия системы.

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

 

Литература

 

1.      Интернет ресурсы, посвященные защиты от вредоносного кода (лаборатория Касперского, Symantec Сorp и т.д.).

2.      Защита компьютерной информации от несанкционированного доступа - А.Ю. Щеглов. – Санкт-Петербург 2004г. 333с.

3.      Оголюк А.А., Щеглов А.Ю. Технологии построения системы защиты сложных информационных систем//Экономика и производство. - №3. - 2001.