Дюсенов Руслан

Казахский агротехнический университет им. С.Сейфуллина

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

 

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

Знание методов, используемых ради разбора а также преодоления систем охраны ПО, разрешает в значительной мере сократить число уязвимых мест в системах охраны.

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

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

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

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

запрос регистрационного кода ('rеgсоdе');

регулярные напоминания о необходимости регистрации ('nаg sсrееns');

ограничение функциональности продукта ('dеmо/сripplеd');

генерация системных ошибок ('сrаsh/GPF');

ограничение времени использования продукта ('triаl/еvаluаtiоn');

вредоносные действия ('mаlwаrе');

сбор и передача персональных данных ('spywаrе');

внесение ошибок в обработку данных и др.

Возможны также комбинации перечисленных проявлений.

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

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

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

Шестой этап - направленное изучение системы охраны. На этой стадии злоумышленник выполняет статический или динамический разбор системы охраны атакуемого продукта.

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

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

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

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

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

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

 

Литература:

1.                 Расторгуев С.П., Дмитриевский Н.Н. Искусство защиты и раздевания программ. - М.: Совмаркет, 1991. - 94 с.

2.                 Середа С.А.  Анализ средств преодоления систем защиты программного обеспечения. // ИНФОРМОСТ: Радиоэлектроника и Телекоммуникации. - 2002. №4(22). С. 11-16.