Эволюция защиты .Net-программ: теперь ничем не хуже Native-защиты

Не секрет, что защита .Net-программ представляет собой значительную трудность из-за их большой открытости. Во-первых, из них совсем просто восстановить исходный текст программы на языке высокого уровня C# или Visual Basic. Даже имена классов и методов будут точно как писал разработчик этой программы! Во-вторых, такие программы не содержат коды команд процессора х86, Pentium, AMD и т.п. Там совсем другие команды на языке MSIL (Microsoft Intermediate Language — промежуточный язык, разработанный фирмой Microsoft для платформы.NET Framework).

В процессе работы они преобразуются так называемым JIT-компилятором в команды процессора и затем выполняются с обычной скоростью. В результате, применение таких методов защиты как для обычных программ (их еще называют Native-программами, программами на родном языке процессоров) невозможно в принципе. Т.е. все предыдущие технологии защиты исполняемых файлов абсолютно неприемлемы для .Net и необходимо создавать новые!

Когда два года назад мы осознали необходимость создания простого (автоматического) средства защиты .Net-программ, мы не сразу поняли, что придется начинать все заново. В результате проведенного в 2006 году исследования этого рынка было выяснено, что хороших защит таких программ электронными ключами просто не существует! Очень легко снимается дамп памяти, и они восстанавливаются в незащищенном виде.

Сделать защиту оказалось так сложно и трудоемко, что до сих пор нет ни одной защиты .Net-программ с привязкой к электронным ключам, чтобы они не взламывались за 10-20 минут работы специалиста по взлому! Точнее не было, пока мы не выпустили новую версию защиты .Net-программ в нашем релизе версии 5.3. Теперь взлом по настоящему трудоемок, особенно, если защищать с помощью новых электронных ключей Guardant Sign, которые шифруют трафик обмена между защищенной программой и ключом на сеансовых ключах.

Новая версия программы защиты .Net-программ обладает мощными возможностями. Вот их краткий список:

  • Обфускация имен
  • Обфускация классов
  • Шифрование строк через электронный ключ
  • Перемещения кода методов в защищенный контейнер, откуда они берутся только когда должны быть исполнены, при этом они ненадолго остаются в памяти т.н. домена в доступном виде. Теперь невозможно «сдампить» все приложение целиком.
  • Защита не только EXE, но и DLL — файлов
  • Защита сложных проектов, которые включают в себя множество DLL-файлов.
  • Максимальное применение принципов защиты Native-кода там, где это возможно. Поскольку методы защиты Native-кода гораздо лучше проработаны, анализ и взлом такого кода более трудоемок.

Конечно, всегда есть что совершенствовать, но можно утверждать, что на данный момент это самая совершенная автозащита для .Net-программ электронными ключами. Мы будем стараться ее совершенствовать и всегда идти на шаг впереди взломщиков.

Вернуться в ленту


Комментарии к статье

14-12-2008 12:14:18 # Комментировал backdoorman Я думаю, что здесь узким местом будет перехват событий JIT. Дело в том, что MS предоставляет целый набор Native интерфейсов для этих целей. Или вы предусмотрели такое развитие событий в свой защите ?
16-12-2008 16:10:58 Ответил Константин Черников Традиционно мы не комментируем [strong]детали[/strong] реализации, поскольку это может облегчить влом. Да и моя должность не позволяет знать их все :-). Слишком много сложных технических деталей в наших разработках и самих разработок очень много. Могу сказать точно только одно: по нашему опыту для каждого слабого места всегда можно придумать сильную проблему. Иногда на это требуется много времени и нет возможности сделать в первом же релизе, но придумать всегда можно. Главное совершенствовать защиту от релиза к релизу, все сразу никогда невозможно сделать.

Мы считаем перспективы роста популярности программ на .Net очень хорошими, со временем все больше и больше программ делового назначения будут создаваться на этой платформе (так дешевле и быстрее). Поэтому и стараемся делать не просто защиту для галочки, а продукт, который заметно выделяется среди конкурентов.
14-12-2008 12:55:46 # Комментировал backdoorman Кстати очень рекомендую ознакомится с вот этой статьей
24-01-2009 23:49:50 Ответил Константин Черников Нам, конечно, давно известна приведенная по ссылке информация. Мы много и подробно изучали платформу .Net, а некоторые детали предоставляли сами разработчики Microsoft. Ведь корпорация очень заинтересована в популяризации платформы и защиты ее от взломщиков, сотрудничает со многими Компаниями, которые повышают безопасность ее технологий. Даже не смотря на наличие у нее самой похожих продуктов. Прошли те времена, когда Microsoft пыталась доминировать во всех нишах – теперь это невозможно. Бизнес-модель Google, основанная на открытых технологиях и сотрудничестве с теми, кому они нужны, тоже дает большой эффект.
Необходима авторизация!

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

Адрес офиса: город Москва, Брошевский переулок, дом 6, строение 1
Многоканальный телефон:
+7 (495) 925-77-90

1994-2016 © Компания «Актив».

Авторизация в системе

Логин:
Пароль:

больше не спрашивать
 
Зарегистрироваться · Вспомнить пароль