Защита бинарного кода от модификации
StarForce Crypto рекомендуется для защиты Windows-приложений, которые могут распространяться на оптических носителях, флеш-картах и через интернет, в том числе через Steam от анализа, взлома, модификации и реверс-инжиниринга.
Решение помогает нейтрализовать ряд угроз
|
Анализ уникальных программных алгоритмов
|
|
Похищение секретных ключей при использовании стандартных DRM для цифрового аудио и видео контента
|
|
Анализ кода DRM, работающего на стороне конечного пользователя
|
|
Модификация кода корпоративных систем без привлечения компании-разработчика
|
Принцип работы StarForce Crypto
Защита исполняемых файлов
В процессе защиты незащищённый исполняемый файл разбирается на составные части. Составные части исполняемого файла преобразуются с использованием различных технологий защиты. Также файл дополняется вспомогательными частями, служащими для защиты.
Параметры большинства технологий защиты можно настроить на стороне клиента до начала защиты с помощью Protection Studio – толстого клиента, разработанного компанией StarForce для защиты приложений. Для использования некоторых технологий защиты необходимо использовать SDK, т. е. вносить изменения в исходный код подлежащего защите продукта.
В StarForce Crypto применяются следующие технологии защиты
Технология
|
Поддержка native-файлов
|
Поддержка .NET-файлов
|
Шифрование секций исполняемого файла
|
Да
|
Нет
|
Защита вызовов импортируемых функций
|
Да
|
Нет
|
Защита кода внутренних функций
|
Да
|
Да
|
Защита внутренних переходов
|
Да
|
Нет
|
Шифрование строковых констант
|
Нет
|
Да
|
Защита от отладки
|
Да
|
Да
|
Защита от запуска на виртуальных машинах
|
Да
|
Да
|
Защита от запуска в терминальных сессиях
|
Да
|
Да
|
Защита от изменения исполняемого файла на диске
|
Да
|
Нет
|
Защита от изменения образа исполняемого файла в памяти
|
Да
|
Нет
|
Другие технологии защиты
|
Да
|
Частично
|
Защита read-only данных
Существует два метода защиты данных
|
Перенос данных в контейнер (скрытие данных)
|
|
Проверка целостности файлов
|
Перенос в контейнер
Read-only данные защищаются путём помещения отдельных файлов или целых каталогов в защищённый контейнер. Для внешнего мира контейнер выглядит как один большой файл с зашифрованным содержимым. Приложение же может читать файлы из контейнера одним из двух способов:
|
Контейнер как виртуальная файловая система. Для реализации этого способа вместе с приложением в систему автоматически устанавливается специальный драйвер. Он обеспечивает прозрачную для приложения работу с файлами из контейнера: приложение вместо контейнера «видит» файлы внутри него
|
|
Доступ к файлам через API. В этом случае драйвер не требуется, но доступ к файлам должен осуществляться не через стандартные функции операционной система, а через API-функции из состава StarForce SDK
|
Проверка целостности файлов
Read-only данные хранятся в открытом виде на диске. Проверка производится через вызов API-функции. Данная функция сверяет цифровую подпись, зашифрованную в контейнере, с цифровой подписью файла данных. При интеграции защиты файл данных должен быть добавлен в контейнер с опцией «Использовать цифровую подпись вместо файла». Таким образом, усложняется анализ и модификация файлов данных защищённого приложения.
Внешняя привязка
Для облегчения реализации защиты собственной DRM для компании-разработчика в StarForce Crypto имеется поддержка внешней привязки. Она требуется для того, чтобы обеспечить неотделимость функционала по проверке подлинности лицензии от защищаемого приложения, а также для защиты этого функционала от анализа и модификации.
Продукт StarForce Crypto защищает участки кода и данные, которые представляют собой интеллектуальную ценность и которые критично защищать с точки зрения бизнеса. Он обеспечивает надежную защиту, исключая возможные способы понимания логики работы приложения.
Защита реализаций стандартных DRM
для цифрового аудио и видео от анализа
Описание ситуации
Особенностью стандартных DRM для цифровых аудио- и видеопотоков является наличие секретных ключей для каждого устройства или программного компонента. Утечка секретного ключа приводит к возможности для злоумышленников, заполучивших этот ключ, сохранять цифровой поток в файл, лишённый каких-либо средств защиты. Такой файл можно затем свободно распространять, причём качество аудио или видео в этом файле будет практически тем же, что и в исходном потоке (за исключением незначительных потерь на повторную компрессию).
Для уменьшения рисков, связанных с реализацией таких сценариев, разработчики стандартных DRM предусматривают механизм отзыва скомпрометированных ключей. Отзыв ключа крайне нежелателен для разработчика устройства или программного компонента, так как после его осуществления соответствующее устройство или программный компонент перестают работать. Для получения нового ключа разработчику приходится заплатить крупную сумму представителю DRM. Иногда за утечку секретного ключа для разработчика может быть предусмотрен штраф или приостановка лицензии.
В связи с этим предотвращение или снижение вероятности утечки секретного ключа является важной задачей разработчика.
Решение
StarForce Crypto позволяет уменьшить вероятность утечки секретного ключа путём увеличения сложности анализа кода, работающего с ключом. Два простейших подхода к сокрытию ключа таковы:
1
|
Хранение секретного ключа в защищённом коде. Подход основан на следующих принципах:
|
A
|
Секретный ключ устройства хранится не в виде данных, а в виде кода (например, в виде кода поэлементной инициализации массива)
|
B
|
Программные модули, работающие с секретным ключом, защищены StarForce Crypto. Защищать код, работающий с секретным ключом, желательно с помощью технологии «защита кода внутренних функций» продукта
|
|
Данный подход наиболее прост, однако для замены ключа требуется замена части кода
|
2
|
Хранение ключа на устройстве в виде шифрованных данных. Подход основан на следующих принципах:
|
A
|
Секретный ключ хранится на диске в зашифрованном виде
|
B
|
Ключ шифрования для алгоритма шифрования ключа устройства встроен в сам код алгоритма (например, в виде кода поэлементной инициализации массива) и не хранится явно
|
C
|
Функции шифрования секретного ключа устройства защищены с помощью технологии «защита кода внутренних функций» продукта StarForce Crypto
|
D
|
Программные модули, работающие с секретным ключом, защищены StarForce Crypto. Защищать код, работающий с секретным ключом, желательно с помощью технологии «защита кода внутренних функций» продукта
|
Для лучшей защиты следует использовать более сложные подходы, но описанные подходы можно взять за основу при их разработке.
Защита реализации собственной DRM от анализа
Описание ситуации
Разработка собственной DRM требует много времени и ресурсов. При этом помимо базового функционала, заключающегося в обмене ключами, разработчику требуется обеспечить защиту кода DRM, работающего на стороне конечного пользователя.
Решение
Решение позволяет сэкономить время на разработку системы защиты DRM от анализа и модификации. Также StarForce Crypto имеет специальный функционал (внешняя привязка), позволяющий минимизировать трудозатраты на разработку собственной DRM.
Модули DRM, работающие на стороне конечного пользователя, обычно содержат функционал трёх типов:
1
|
Функционал по проверке подлинности лицензии и по привязке защищаемого приложения к носителю лицензии (сложно подделываемому физическому объекту, расположенному на стороне конечного пользователя, либо к серверу)
|
2
|
Функционал по обеспечению неотделимости первого типа функционала от защищаемого приложения
|
3
|
Функционал по защите функционала первого и второго типов от анализа и модификации
|
StarForce Crypto берёт на себя реализацию функционала второго и третьего типов, позволяя клиенту реализовать функционал первого типа самостоятельно.
При использовании StarForce Crypto обеспечивается высокий и известный заранее уровень эффективности. Оценка уровня эффективности производится разработчиком при принятии решения о приобретении StarForce Crypto на основе анализа результатов тестирования продукта.
Защита уникальных авторских алгоритмов от анализа
Описание ситуации
Некоторые программные продукты содержат уникальные алгоритмы. Если они станут известны конкурентам, которые воспроизведут их в своём программном обеспечении, то конкурентное преимущество разработчика будет утеряно.
Решение
StarForce Crypto позволяет защитить программный код приложения от анализа. Для защиты от анализа особо ответственных участков кода рекомендуется использовать технологию «защита кода внутренних функций» продукта StarForce Crypto.
Защита кода корпоративных систем от модификации без привлечения разработчика
Описание ситуации
Компания, заказавшая у разработчика корпоративную систему обработки данных, может впоследствии отказаться от заказа у разработчика дорогостоящих услуг по доработке системы. Это особенно вероятно в случае, если требуемые доработки небольшие. Один квалифицированный программист с навыками реверс-инжиниринга способен разобраться в работе системы и выполнять мелкие доработки своими силами, даже не имея исходных кодов.
Даже если такой сценарий явно запрещён договором, проконтролировать выполнение данного пункта договора крайне затруднительно.
Решение
StarForce Crypto позволяет защитить программные продукты от модификации без ведома разработчика. При модификации защищённого продукта он становится неработоспособным. Это не позволит осуществить модификацию без разработчика – т. е. без повторной пересборки продукта из исходного кода.
Защита самостоятельно
1
|
Скачивается и устанавливается программа StarForce Protection Studio (предоставляется бесплатно).
|
2
|
Используя StarForce Protection Studio, отбираются функции и файлы, которые будут защищены.
|
3
|
Устанавливаются параметры защиты.
|
4
|
Устанавливаются параметры пользовательского интерфейса.
|
5
|
Подготавливается дистрибутив.
|
6
|
Тестируется работа защищенного продукта.
|
7
|
Продукт готов к распространению.
|
Клиент может защищать свои продукты в любое удобное для него время.
Защита силами сотрудников StarForce
Компания StarForce предлагает следующие платные услуги:
Установка защиты специалистами StarForce:
|
С внесением изменений в код специалистами StarForce.
|
|
С внесением изменений в код специалистами клиента.
|
|
Без внесений изменений в код.
|
Анализ защиты, выполненной специалистами клиента.