Методы обнаружения вирусов

Разработка ПО: защита от промышленного шпионажа

16 сентября, 2011

 

Автор: Дмитрий Гусев
 

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

Для того, чтобы модернизировать программу или на основе сторонней программы сделать новый продукт, нужно досконально изучить исполняемый код приложения. Различают два вида анализа программ: статический и динамический. Под статическим анализом понимается исследование исполняемого кода приложения (реверс-инжиниринг), под динамическим – изучение алгоритмов работы программы. Именно на предотвращение этих видов анализа и направлена защита программ от исследования.

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

Сегодня реверс-инжиниринг становится наиболее популярным способом анализа приложений. Международная организация производителей банкоматов ATMIA называет именно реверс-инжиниринг как основную угрозу для программной среды банкоматов.

В его основе лежит постулат «Запретный плод сладок». Этот принцип на практике выражается в том, что взлом программы, исходный код которой тебе не известен, - самый интересный и мотивирующий тип взлома. Может быть много причин, чтобы начать исследовать чужую программу. Другое дело, что иногда требуется защитить собственную программу от исследования, чтобы никто не смог ее повторить, изменить или дополнить в кратчайшие сроки. Ведь помимо потери уникальных наработок, вы рискуете снизить прибыль или вообще сделать разработку невыгодной. Кроме того, возможно испортить себе репутацию - кто знает для чего и как будут использованы модифицированные компоненты программы.

Эффективным способом решения проблемы представляется защита исполняемого кода приложения от анализа и модификации.

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

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

С помощью запутывания можно перемешать в программе куски кода или действия так, что логика работы становится совершенно непонятной. Кроме того, при запутывании идентификаторы меняются с читаемых на индексные, вставляются новые куски неисполняемого кода. Иногда при защите программного продукта используется архивация данных программы, которые находятся в стеке (область памяти, где хранятся данные программы). Для предотвращения пошагового выполнения программы, а соответственно и отладки, стек определяют в ее тело. А если там находятся данные для работы, то процесс анализа усложняется еще больше. Для усложнения работы взломщиков в исполняемый код встраиваются «пустышки», которые выполняют некоторую сложную и на первый взгляд важную работу, но на самом деле не имеют никакого отношения к логике работы. Еще один вариант запутывания исполняемого кода – шифрование содержимого файлов данных, сами защищенные файлы при этом переносятся в защищенный контейнер. Особенностью защищенного контейнера является то, что к нему можно обращаться только из защищенного приложения.

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

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

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

НОВОЕ НА САЙТЕ

23 апреля 2024 года

Обращаем внимательность на дальнейшее обновление пасмурной версии песочницы Dr.Web vxCube, в взаимоотношения с чем 24 апреля с 13:00 перед началом 14:00 по столичному времени обслуживание будет недоступен для использования.

В составе песочницы будет обновлена документация — описание работы обслуживания будет снова на... Антивирус Dr.Web

Бизнес-школа «БИЗНЕС ИНСАЙТ» и проект «ЭКСПЕРТЫ» приглашают на III Всероссийский онлайн-форум «БИЗНЕС. ВЕСНА 2024». Бизнес-форум — важнейшее событие в мире бизнеса. На одной площадке соберутся действующие предприниматели, эксперты-практики, чтобы поделиться […]

The post 25-26.05.24г. 10.00-15.00. III Всероссийский форум «БИЗН... Новости Безопастности

17 апреля 2024 года

В 2023 году самыми всераспространенными Android-угрозами стали троянские программы, демонстрирующие рекламу. Шпионские троянские приложения по уподоблению с прошлым годом понизили свою энергичность таково словно стали вторыми по числу детектирований на защищаемых антивирусом Dr.Web устройствах. невзирая на то, словн... Вирусные новости

11 апреля 2024 года

Компания «Доктор Веб» 4 апреля сообщила о выпуске обновления для продуктов линейки Dr.Web Enterprise Security Suite, сертифицированных ФСТЭК России.

Обновление ориентировано н... Антивирус Dr.Web

4 апреля 2024 года

Компания «Доктор Веб» информирует о выпуске обновления Dr.Web Desktop Security Suite (для Windows), Dr.Web Server Security Suite (для Windows), Dr.Web Mail Security Suite (для MS Exchange) так как Агента Dr.Web для Windows в составе сертифицированного ФСТЭК нашей родины Dr.Web Enterprise Security Suite (сертификат соответствия №3509). В рамках ... Антивирус Dr.Web