В этом посте я хочу рассказать о системе IEEE Software Taggant, которую разработала рабочая группа IEEE по вредоносным программам в сотрудничестве с ведущими компаниями по информационной безопасности.
В планы команды разработчиков Guardant давно входило добавить поддержку IEEE Software Taggant в протектор Guardant Armor, и вот наконец мы это сделали. Краткий обзор системы и практические выводы перед вами.
Читать полностью »
Рубрика «обфускатор»
Система IEEE Software Taggant: защита от ложных срабатываний антивируса
2017-08-23 в 8:03, admin, рубрики: антивирус, Блог компании «Актив», информационная безопасность, касперский, ложные срабатывания, обфускатор, Программирование, протектор, псевдокод, упаковщикиIntel® Tamper Protection Toolkit — обфусцирующий компилятор и средства проверки целостности кода
2015-12-23 в 6:04, admin, рубрики: C, c/c++, c++, Блог компании Intel, Компиляторы, обфускатор, обфускация, проверка целостности кода, Программирование
Совсем недавно компания Intel выпустила очень интересный набор инструментов для разработчиков программного обеспечения, позволяющий добавить защиту программного кода от взлома и существенно усложнить жизнь взломщикам программ. Этот набор включает в себя обфусцирующий компилятор, средство для создания файла подписи, используемого для проверки целостности загружаемых динамических библиотек, а также библиотеку функций проверки целостности и дополнительные полезные инструменты. Intel Tamper Protection Toolkit beta можно совершенно бесплатно скачать на сайте Intel.
Читать полностью »
Неявные предикаты
2013-11-14 в 12:01, admin, рубрики: .net, control flow, obfuscation, информационная безопасность, криптография, обфускатор, обфускация, метки: control flow, obfuscation, обфускатор, обфускация Речь здесь пойдёт о некоторых аспектах компьютерной безопасности, связанных с запутыванием кода программы. Именно это мне было интересно в связи с разработкой обфускатора .NET приложений – программы для защиты .NET кода от взлома. Есть и другая – тёмная сторона: запутыванием кода очень интересуются разработчики вирусов и других нехороших штук, но нам они неинтересны.
Эмуляторы
Итак, Вы придумали супер алгоритм для запутывания кода программы. При декомпиляции код выглядит просто вырвиглазно и никто точно такое анализировать не будет. Казалось: победа! Но нет. Естественно обфусцированный код никто анализировать не будет… руками. Хакер поймёт как вы код запутывали и напишет «распутывалку». Если Ваш алгоритм был достаточно силён, то хакеру придётся писать собственный эмулятор, но и это не такая проблема как может показаться на первый взгляд – в сети есть доступные эмуляторы и даже специально написанные именно для целей взлома.
Из теории компьютерных наук известно, что не существует и никогда не будет существовать алгоритма, определяющего остановится ли программа или будет работать вечно – так называемая «проблема останова». Это гарантирует, что хакерский эмулятор, распутывающий обфусцированную программу, будет делать это как бы «локально»: он не сможет узнать состояние и значение всех переменных, задействованных в каждом участке кода и поэтому в точках условного ветвления часто будет полагать, что возможны все варианты хода программы. Вот тут-то на ум и приходит решение: запутанный код будет наполнен переходами по условиям, которые будут всегда истинны, но проэмулировать и понять это будет трудно. Примерно вот так:
if ((x*x & 1) == 0)
good_code
else
мусор
«Но это же как раз одна из тех запутывалок, которые хакер и собирается обходить с помощью эмулятора» — скажете Вы и будете правы. А что если придумать тысячу подобных фокусов? О, это решение, если у Вас есть легион программистов, каждый из которых придумывает трюки не похожие на трюки других. В реальности это не так. В реальности Вы думаете неделю и придумываете тридцать трюков, а хакер смотрит на код один день и находит все тридцать трюков, потому что тридцать – это не так уж много.
AppFuscator — облачная защита .NET
2013-02-15 в 13:02, admin, рубрики: .net, защита, информационная безопасность, обфускатор, обфускация, я пиарюсь, метки: .net, защита, информационная безопасность, обфускатор, обфускацияПривет! Мы плодотворно трудились над нашим продуктом, и сегодня я хочу поделиться новостями. Для тех, кто не читал предыдущих топиков (1 и 2), напомню, что мы разрабатываем онлайн сервис для защиты .NET приложений. Процесс обфускации происходит непосредственно в облаке по модели SaaS.
Расскажу немного о нововведениях.
Программа-клиент
Для тех кто обфусцирует свои программы постоянно мы существенно упростили этот процесс — теперь Вы можете воспользоваться специальной программой-клиентом для работы с нашим сервисом. Созданную конфигурацию можно сохранить в проект, и затем обфусцировать Ваши программы в один клик.
Программа распространяется как OpenSource (лицензия MIT), все желающие могут ознакомиться с исходниками. В дальнейшем, мы планируем вынести API в отдельный модуль, для легкой интеграции с другими программами.
Программа пока бета, заранее приносим извинения за возможные баги.
Control flow obfuscation
В AppFuscator добавлен новый алгоритм защиты Control flow obfuscation — запутывание потока управления. Суть этого метода заключается в разделении алгоритма программы на отдельные компоненты и построение из них сложно-связанного графа переходов. В итоге логику работы кода понять становиться весьма не просто.
Читать полностью »
Защита в облаках: AppFuscator 2.0
2012-11-14 в 15:56, admin, рубрики: .net, .net 4.5, unity, unity3d, wpf, информационная безопасность, обфускатор, обфускация, статический анализ кода, я пиарюсь, метки: .net, .net 4.5, unity, unity3d, wpf, обфускатор, обфускация, статический анализ кодаИ вот минуло уже почти три месяца с момента нашего первого анонса облачная защита для .NET приложений. Все это время мы не теряли времени даром и активно работали над улучшением нашего продукта. В выявлении приоритетных направлений и обнаружении наиболее острых проблем нам очень помогло активно включившееся в испытания первой публичной версии хабросообщество. Большое спасибо Вам, от лица нашей команды!
В новой версии
Новое ядро WPF обфускации
- Теперь классы, задействованные в WPF, не исключаются, а обфусцируются наравне со всеми остальными. WPF ресурсы при этом пересобираются
- Поддерживается линкинг сборок содержащих WPF (что невозможно сделать в ILMerge)
- Умные автоматические исключения классов и полей недопустимых к переименованию, в том числе для сложных выражений типа PropertyPath
- BAML ресурсы переименовываются
Поддержка Unity 3D
- Переименовываются все внутренние методы, поля и классы
- Поддерживаются все режимы, включая String Encryption, External Method Call Hiding, Decomposition
Для того, чтобы защитить Unity 3D приложение, достаточно отправить на обфускацию сборки с пользовательским кодом из папки Managed, и затем заменить их на защищенные версии.
Полная совместимость с .NET Framework 4.5
- Теперь обфускатор одинаково хорошо работает с .NET 2.0, 3.0, 3.5, 4.0, 4.5.
- Корректно обфусцируется код с async/await
- Осуществлен переход на последнюю версию Mono Cecil
Защита .NET приложений в облаках
2012-08-23 в 13:47, admin, рубрики: .net, Mono, защита, информационная безопасность, обфускатор, обфускация, протектор, метки: .net, Mono, защита, обфускатор, обфускация, протектор
Пожалуй, защита ПО всегда была для меня одной из самых любимых тем. Я обожал придумывать сложные хитроумные проверки лицензионности программы, и с упоением реализовывал их. Я всегда держался принципа, что хакер, чтобы взломать защиту, должен изучить максимум технологий использующихся в программе. Пусть думает о синхронизации потоков, если ему захотелось поставить бряк в алгоритме проверки ключа. Пусть изучает вопросы подсчета COM ссылок, если он хочет вмешаться в мой алгоритм. Пусть думает о том, как представлены битовые карты изображений в памяти, если он решил разобраться, как я сохранил данные ключа.
Да, C++ был почти идеальным языком в этом плане. Но времена меняются, старые технологии уходят и на их место приходят новые более продуктивные и удобные. Так наша команда перешла на .NET. Но в обмен на простоту разработки и удобство отладки, мы в придачу получили в довесок и простоту декомпиляции нашего ПО. Теперь хакер мог не просто обойти лицензионные ограничения, но и получить почти полный исходник нашей программы просто скормив ее рефлектору.
Разумеется, в качестве решения этой проблемы на рынке было представлено множество различных обфускаторов. Но, как ни странно, большинство из них разочаровывали меня сразу с двух сторон: и ценовой политикой (даже минимальная лицензия некоторых превосходила стоимость нашего ПО в несколько раз), и «интеллектуальностью» алгоритма. Так, после некоторых обфускаторов, умудрялись падать даже простые WinForms приложения. Что же касалось WPF, то без долгого-долгого черного шаманства над эксклудами, запустить среднего размера программу не представлялось возможным в принципе.
Так сформировалось понимание проблемы и четкое желание создать свой продукт, сводящий озвученные выше проблемы к минимуму. И появился SaaS обфускатор и протектор .NET кода AppFuscator.com
[recovery mode] Против лома нет приёма: OpenJDK hack vs. Class Encryption
2012-05-31 в 10:46, admin, рубрики: java, obfuscator, информационная безопасность, обфускатор, метки: java, obfuscator, обфускатор Цель этой статьи предостеречь разработчиков от использования обфускаторов с функцией шифрования class-файлов для защиты своих приложений и от бессмысленной траты денег на них.
Вопросы защиты байт-кода от реверс-инжиниринга и обхода этой защиты подробно рассмотрены в фундаментальной работе Дмитрия Лескова — Protect Your Java Code — Through Obfuscators And Beyond.
Механизм шифрования class-файлов предполагает, что содержимое классов хранится в зашифрованном виде, а при старте приложения через специализированный СlassLoader или JVMTI-интерфейс, расшифрованный байт-код грузится в виртуальную машину Java.
Читать полностью »
Stringer Java Obfuscation Toolkit: защита Java и Android-приложений
2012-05-23 в 10:43, admin, рубрики: android, java, obfuscation, security, безопасность, информационная безопасность, обфускатор, Разработка под android, метки: android, java, obfuscation, security, безопасность, обфускатор Уважаемое Хабр-сообщество, хотел бы рассказать об одном из продуктов, который мы разрабатываем — Stringer Java Obfuscation Toolkit (https://jfxstore.com/stringer). Думаю многим Android и Java-разработчикам будет интересно, особенно, в свете подобных публикаций: habrahabr.ru/post/141522/.
Сразу скажу, что решение коммерческое, чтобы сэкономить кому-то, из читающих этот пост, время.
За прошлый, почти полный, год, мы сделали довольно много интересных вещей:
- У нас появилась поддержка платформы Android