ПРИМЕНЕНИЕ ТОЧЕЧНОГО РЕЗЕРВИРОВАНИЯ ДАННЫХ ДЛЯ ЗАЩИТЫ ЦИФРОВОЙ ИНФОРМАЦИИ ОТ ПРОГРАММНЫХ И АППАРАТНЫХ СБОЕВ

Research article
Issue: № 7 (7), 2012
PDF

Пигарев А.Г.,

Магистр, кафедра информатики и программного обеспечения вычислительных систем

Национальный исследовательский университет «МИЭТ»

ПРИМЕНЕНИЕ ТОЧЕЧНОГО РЕЗЕРВИРОВАНИЯ ДАННЫХ ДЛЯ ЗАЩИТЫ ЦИФРОВОЙ ИНФОРМАЦИИ ОТ ПРОГРАММНЫХ И АППАРАТНЫХ СБОЕВ

  Аннотация В статье рассмотрено - принцип работы программного модуля, позволяющего осуществлять автоматическое резервирование дисковых файлов пользовательских приложений для восстановления работы, создания бэкапа пользовательского приложения на одной машине и автоматического развертывания его на другой пользовательской машине. Ключевые слова: автоматизация, резервирование, WinAPI. Keywords: automation, backup, WinAPI.   В настоящий момент неотъемлемой частью всех бизнес процессов, осуществляемых любой фирмой, является использование специализированного программного обеспечения для создания, обработки, передачи, хранения данных первостепенной важности, доступность которой имеет огромное значение для непрерывности бизнес-процессов фирмы. Соответственно, основной задачей является создание информационной среды (или модификации существующей), гарантирующей максимальную степень сохранности вводимой в нее информации и доступности  ее в случае программных и аппаратных сбоев. Эта задача разделяется на множество подзадач, среди которых будет рассмотрена необходимость получения доступа к данным, хранимым во внутреннем формате программы, установленной на операционной системе, которая стала неработоспособной. Существуют следующие пути решения данной проблемы: периодическое создание полного бэкапа данных, хранимых на носителе информации (а) (например, с использованием Acronis True Image); создание частичного бэкапа данных (различные утилиты для автоматического  резервирования определенных файлов, запускающие процесс сохранения с указанным периодом) (б); использование программ, разработанных для точечного резервирования конкретных программных продуктов (в)(Handy Backup). Стоит заметить, что первые два решения используются только для создания периодических бэкапов, которые не учитывают последних изменений.  Последнее решение лишено этого недостатка, но подходит только для узкого круга программ, определенного разработчиками. Предлагаемым альтернативным решением, является автоматическое определение положения на носителе данных, с которыми оперирует  наблюдаемая программа, к которой предъявляются повышенные требования к надежности, с последующим точечным резервированием этих данных. Это не только снижает размер создаваемого файла бэкапа, но и экономит время на его создание, позволяет восстановить самые последние данные, с которыми оперировала наблюдаемая программа, а также позволяет осуществить безболезненное обновление информационной среды (переустановку ОС) без потери важных данных. Так, если средний размер программы на равен 2 Гб и размер логического диска равен 40 Гб, использование предложенного решения позволит снизить размер файла резервирования и время на его создание в 20 раз. Кроме того в некотором ряде случаев становится возможным свободный перенос наблюдаемой программы на другую машину. Стоит заметить, что помимо цели предотвратить потерю важных данных, предложенное решение становится для целого ряда программ для обработки финансовых данных единственным возможным способом создания локальной транспортируемой копии, хранимой в наблюдаемой программе информации. Реализовать предложенное решение можно путем использования методики перехвата обращения к системным API-функциям. Реализация предполагает перехват к функциям, осуществляющим модификацию содержимого носителя данных, с целью определения положения данных, с которыми оперирует наблюдаемая программа. Соответственно, при перехвате такой функции добавляется запись в файл, содержащий в определенном формате информацию о расположении необходимых данных. Это позволяет в любой момент времени создать резервный бэкап этих данных и развернуть его в  подготовленной для этого информационной среде. Наиболее трудной частью реализации является осуществление прорыва за границы процессов и доступ к адресному пространству другого процесса, чтобы заменить вызов одной функции на вызов другой функции. Это можно осуществить посредством внедрения какого-либо специально спроектированного DLL в адресное пространство другого процесса. Данный способ позволяет поместить код своей процедуры в адресное пространство другого процесса и затем подменить вызов системной функции обращения к файловой системе на вызов свой функции, которая предварительно выполнит операции по определению имени запрашиваемого файла или ключа реестра и сохранению его в какой-либо заранее определенный список. Для этого можно разработать модули, обладающие требуемой функциональностью, с нуля или использовать одну из существующих библиотек (например, Microsoft Detours[2] для некоммерческих решений). Готовые библиотеки содержат средства как для создания необходимой DLL, так и встроенные утилиты для ее внедрения. В случае реализации функциональности по перехвату с нуля можно использовать один из следующих методов, описанных в книге “Windows для профессионалов”[1]: внедрение DLL с использованием реестра (путем добавления адреса внедряемой DLL в качестве ключа специальной записи в реестре); внедрение DLL с помощью ловушек (метод, который позволяет отслеживать все вызовы указанной функции); внедрение DLL с помощью удаленных потоков (принудительная загрузка необходимой DLL “изнутри” процесса); внедрение DLL как отладчика (запуск процесса в режиме отладки); внедрение кода через функцию CreateProcess (модификация адресного пространства потока дочернего процесса) Соответственно перехват в этом случае можно осуществить: с использованием раздела импорта (изменение адреса перехвачиваемой функции в разделе импорта модуля процесса); перехват API-вызовов подменой кода (вставка команды JUMP на месте первых нескольких байт функции) Использование точечного резервирования позволяет значительно сузить список причин потери важной информации (в том числе и финансовой), при которых для ее восстановления потребуются значительные временные и денежные затраты. Кроме того нужно заметить, что работоспособность это механизма не зависит от работоспособности ОС, что значительно увеличивает степень его применения. Благодаря этому, точечное резервирование может использоваться для создания файлов базы данных программы, собственные средства резервирования которой работают некорректно.

Литература

  1. Джеффри РИХТЕР. Windows для профессионалов
  2. Официальный сайт компании Microsoft, посвященный библиотеке Microsoft Detours: http://research.microsoft.com/en-us/projects/detours/