Visual Basic, .NET, ASP, VBScript
 

   
 
Описание для автора не найдено
 
     
   
 

Применение Spices.Obfuscator как инструмента для защиты и оптимизации .net приложений.

 

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

 

 

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

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

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

Хакеры и конкуренты имеют неплохой инструментарий для декомпиляции, деобфускации, подделки байт-кода и необходимо противостоять подобного рода уязвимостям.

Современные обфускаторы расширяют сферу применения до более широкой.

Давайте рассмотрим набор сервисов предлагаемых Spices.Obfuscator (одного из продуктов семейства Spices.Net) разработанного компанией 9Rays.Net, Inc.

 

Автоматизация build-process

Немало компаний имеют достаточно сложные build-процессы, требующие гибкости и определенных сценариев. Компания Microsoft предлагает для автоматизации build процесса свое решение – MSBuild, которое подразумевает использование своего решения в build-скриптах или сценариях. Поддержка MSBuild, входящая в состав Spices.Obfuscator позволяет достаточно легко интегрировать процесс обфускации в build процесс. Кроме этого Spices.Obfuscator можно использовать и более гибче – примеры кода, входящие в Spices.Obfuscator доказывают это – вы можете написать свой сценарий обфускации на C# или Vb.Net интегрировав Spices.Obfuscator в свои собственные build-решения.

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

Поддержка Debug

Spices.Obfuscator имеет возможность поддержки отладки приложений после обфускации. Имеющиеся средства, а именно – глубокая интеграция с Visual Studio 2003/2005 позволяют обфусцировать приложения непосредственно в процессе сборки (build) приложения и запуска обфусцированного приложения в режиме отладки.

Кроме этого Spices.Obfuscator предлагает средства для трассировки exceptions, позволяющие получить оригинальный стек вызова методов( граф вызова методов, stack trace), и быстро проанализировать и справить место ошибки или некорректности.

 

Поддержка крупных проектов и различных конфигураций проектов

Многие производители софта подготавливают для выпуска несколько комбинаций сборок - например для evaluation , pro, light версий одного и того же продукта. Для различных версий им необходимы различные режимы обфускации. Эту проблему поможет решить использование Spices.Solution. Spices.Solution – это коллекция проектов Spices.Project (каждый из которых содержит одну из конфигураций продукта) позволяющая обфусцировать различные конфигурации продукта за один раз.

Анонимизация

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

Средства технологии Spices.Anonymizer фактически превращают монолит кода защищаемого приложения в песок, значительно усложняя процесс анализа приложений, поиска уязвимости для взлома, а также защищающих приложения от ILASM/ILDASM roundtrip.

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

Безопасность

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

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

Технология StringEncryption используемая Spices.Obfuscator, предлагает несколько уровней секретности – от удаления строк из кода до шифрования их по алгоритму TripleDes. Кроме этого в технологии Spices.Anonymizer предусмотрена возможность анонимизировать код, отвечающий за шифрование информации, для того чтобы программа декомпиляции не смогла опознать методов-дешифраторе.

Оптимизация

Да, обфускаторы занимаются не только перименовыванием членов сборки(assembly members), но и оптимизируют сборку по размеру и производительности. Сам эффект обфускации с переименованием членов сборки к очень коротким именам приводит к повышению производительности приложений, однако это не все. Сборки могут содержать код и метаданные, которые нет необходимости держать в обфусцированной сборке, эти данные излишни и их требуется удалить, тем самым уменьшив размер сборки. Постоянно совершенствуемая технология Spices.Obfuscator, используемая в Spices.Obfuscator позволяет уменьшить размер метаданных в сборке до 50%. Уменьшение размера также приводит к более быстрой инициализации сборки, увеличению производительности, некторые методы используемые Spices.Optimizer усложняют задачи взлома и исследования сборки, усложняют ILDASM/ILASM roundtrip

Локализация.

Локализация в том привычном виде, которую вы можете встретить в таких средствах разработки как Visual Studio, не позволяет локализовать абсолютно все строковые ресурсы и ресурсы приложений, и локализованную информацию необходимо постоянно пересматривать, пересмотрев процесс разработки приложения с учетом локализации.

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

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

Tamper-proof /antiSpoofing

Если первые версии .net не привлекали хакеров, то обстановке растущей популярности .Net, хакеры обратили внимание на .Net софт. В .Net используется технология подписания сборок, превращающая файл в strong-named assembly, подобные файлы проверяются при запуски на подпись, хранящуюся в сборке и подтверждают что с момента подписания сборки ее содержимое не изменилось. Это хорошее решение, позволяющее избежать заражения и модификации сборки, но технология подписания имеет свои уязвимости.

Например хакер может «сбросить» подпись в сборке(assembly), модифицировать сборку и переподписать ее свои ключом, тем самым подделав сборку – это сейчас один из распространенных способов взлома .Net кода.

Spices.Obfuscator предлагает свои решения для защиты кода от подобных методов взлома – генерируя tamper-proof сборки, которые крайне сложно подделать (это также patent pending технология) и специалисты 9Rays.Net занимаются усовершенствованием этой технологии.

 

Верификация сборок

Для того чтобы быть уверенным что сборка обфусцирована корректно, в Spices.Obfuscator включена также возможность верификации сборок после обфускации и оптимизации.

Дополнительные средства для анализа и просмотра(browse) и поиска

Выгодно отличающей чертой Spices.Obfuscator является то что этот продукт включает себя дополнительные средства для анализа, просмотра и верификации сборок. В пакет включен дизассемблер, анализатор графа вызовов, наследования(inheritance) и имплементации интерфейсов(interface implementation), пользователь при просмотре членов сборке может получать полную контекстную информацию о текущем члене сборки(assembly member) о существлять поиск как по названию, так и по токену(токен). В пакет включены также средства для низкоуровневого просмотра и анализа метададанных – от структуры таблицы метаданных до структуры PE-файла(portable executable format). В пакет также включены средства для получения диаграмм, отражающих различные взаимоотношения между сборками и их членами. Другими словами – Spices.Obfuscator предоставляет не только средства для защиты, но и служит средством для анализа архитектуры сборок и поставщиком практически любой информации о сборке.

 

Манипуляции с классами и сборками (Assembly, classes merging & linking).

В ближайших версиях Spices.Obfuscator компания 9Rays.Net планирует выпуск Class/Assembly Linker, который повзолит производить манипуляции со сборками – обьединением, внедрением классов, экстрагированием классов из сборки. Подобные сервисы также востребованы, и, как видите, расширяют функциональность обфускатора.

Выводы (Conclusion)

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

 

 
     

   
   
     
  VBNet рекомендует