Эффективность обфускации
От: itslave СССР  
Дата: 27.10.11 12:34
Оценка:
Не знаю сюда или в безопасность...
Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.
Идут нешуточные споры, надо ли обфусцировать клиента.
Аргументы "за", надо обфусцировать потому что:
— враги декомпилируют, просто и быстро сделают такой же точно продукт, но ворующий данные(пароли) пользователя.
— сумеют наш код использовать в своих проектах
— будут искать дыры в нашемкоде и использовать их для взлома сервера
Аргументы "против", обфусцировать не надо потому что:
— капитальный гемор с сериализацией, рефлексией, сетевым взаимодействием и т.д.
— дополнительные баги, привнесенные обфускацией
— гемор с интеграцией этого хозяйства в билд систему, в частности — создание патчей для обновлений
— ничего уникального у нас нет, проще самому написать чем разбираться в написанном
— обфускация всего лишь создает видимость защиты и для хакера средней квалификации серьезных проблем не представляет.
Для определенности, обфускатор: http://www.eziriz.com/dotnet_reactor.htm
Re: Эффективность обфускации
От: Angler Россия  
Дата: 28.10.11 09:13
Оценка:
Здравствуйте, itslave, Вы писали:


Если деньги берутся за взаимодействие с сервером, то точно такой же клиент, сделанный вашими врагами лишь принесет вам прибыль
Re: Эффективность обфускации
От: k.o. Россия  
Дата: 28.10.11 09:49
Оценка: 1 (1) +1
Здравствуйте, itslave, Вы писали:

I>Не знаю сюда или в безопасность...

I>Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.

Забавно, у нас тоже такая ситуация была, причём описание продукта совпадает один в один. В итоге все сошлись на том, что в клиентском коде защищать нечего, а возни с обфускацией слишком много, и перестали её использовать.
Re[2]: Эффективность обфускации
От: Аноним  
Дата: 28.10.11 11:23
Оценка: -1 :)
Здравствуйте, k.o., Вы писали:
KO>Забавно, у нас тоже такая ситуация была, причём описание продукта совпадает один в один. В итоге все сошлись на том, что в клиентском коде защищать нечего, а возни с обфускацией слишком много, и перестали её использовать.

ну ежели приложение — просто приложеньице — конечно ничего защищать не стоит, а к примеру, если это приложение работающее с финансами или продукт для работы на фондовом рынке или инструмент страхового брокера — думаю, что тут будет преступлением не обфусцировать — облегчать работу хаккерам — преступление!
Из виденных мною обфускаторов — недорогой и эффективный — Eziriz
Re: Эффективность обфускации
От: Pavel_Agurov Россия  
Дата: 28.10.11 11:39
Оценка:
Здравствуйте, itslave, Вы писали:

I>Не знаю сюда или в безопасность...

I>Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.
I>Идут нешуточные споры, надо ли обфусцировать клиента.
I>Аргументы "за", надо обфусцировать потому что:
I> — враги декомпилируют, просто и быстро сделают такой же точно продукт, но ворующий данные(пароли) пользователя.
I> — сумеют наш код использовать в своих проектах
I> — будут искать дыры в нашемкоде и использовать их для взлома сервера
I>Аргументы "против", обфусцировать не надо потому что:
I> — капитальный гемор с сериализацией, рефлексией, сетевым взаимодействием и т.д.
I> — дополнительные баги, привнесенные обфускацией
I> — гемор с интеграцией этого хозяйства в билд систему, в частности — создание патчей для обновлений
I> — ничего уникального у нас нет, проще самому написать чем разбираться в написанном
I> — обфускация всего лишь создает видимость защиты и для хакера средней квалификации серьезных проблем не представляет.
I>Для определенности, обфускатор: http://www.eziriz.com/dotnet_reactor.htm

Опят реклама и сам с собой разговариваем?
Re[2]: Эффективность обфускации
От: itslave СССР  
Дата: 28.10.11 12:19
Оценка:
Здравствуйте, Pavel_Agurov, Вы писали:

P_A>Здравствуйте, itslave, Вы писали:


I>>Не знаю сюда или в безопасность...

I>>Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.
I>>Идут нешуточные споры, надо ли обфусцировать клиента.
I>>Аргументы "за", надо обфусцировать потому что:
I>> — враги декомпилируют, просто и быстро сделают такой же точно продукт, но ворующий данные(пароли) пользователя.
I>> — сумеют наш код использовать в своих проектах
I>> — будут искать дыры в нашемкоде и использовать их для взлома сервера
I>>Аргументы "против", обфусцировать не надо потому что:
I>> — капитальный гемор с сериализацией, рефлексией, сетевым взаимодействием и т.д.
I>> — дополнительные баги, привнесенные обфускацией
I>> — гемор с интеграцией этого хозяйства в билд систему, в частности — создание патчей для обновлений
I>> — ничего уникального у нас нет, проще самому написать чем разбираться в написанном
I>> — обфускация всего лишь создает видимость защиты и для хакера средней квалификации серьезных проблем не представляет.
I>>Для определенности, обфускатор: http://www.eziriz.com/dotnet_reactor.htm

P_A>Опят реклама и сам с собой разговариваем?

Везде реклама с ботами мерещатся. Потер бы ссылку, но кнопки "едит" не вижу. Модераторы, потрите плз ссылку в стартпосте, чтобы параноикам спокойней жилось.
Re[3]: Эффективность обфускации
От: itslave СССР  
Дата: 28.10.11 12:22
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, k.o., Вы писали:

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

А>ну ежели приложение — просто приложеньице — конечно ничего защищать не стоит, а к примеру, если это приложение работающее с финансами или продукт для работы на фондовом рынке или инструмент страхового брокера — думаю, что тут будет преступлением не обфусцировать — облегчать работу хаккерам — преступление!

Если хакер за 2-3 часа сумеет деобфусцировать с приемлимымкачеством, то ет не усложнение работы хакера. Полазил в тырнете, вменяемых статей "насколько сложно деобфусцировать" не нашел. От и спрашиваю у народа.
Re[2]: Эффективность обфускации
От: itslave СССР  
Дата: 28.10.11 12:23
Оценка:
Здравствуйте, Angler, Вы писали:

A>Здравствуйте, itslave, Вы писали:



A>Если деньги берутся за взаимодействие с сервером, то точно такой же клиент, сделанный вашими врагами лишь принесет вам прибыль

А если он будет "с невидимыми изменениями"?
Re[2]: Эффективность обфускации
От: itslave СССР  
Дата: 28.10.11 12:24
Оценка:
Здравствуйте, k.o., Вы писали:

KO>Здравствуйте, itslave, Вы писали:


I>>Не знаю сюда или в безопасность...

I>>Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.

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

У начальства параноя что "стырят отдельно взятые компоненты и НАЧНУТ ПРОДАВАТЬ". Как убедить что обфускатор не поможет — хз.
Re[3]: Эффективность обфускации
От: k.o. Россия  
Дата: 28.10.11 13:10
Оценка:
Здравствуйте, itslave, Вы писали:

I>Здравствуйте, Angler, Вы писали:


A>>Здравствуйте, itslave, Вы писали:



A>>Если деньги берутся за взаимодействие с сервером, то точно такой же клиент, сделанный вашими врагами лишь принесет вам прибыль

I>А если он будет "с невидимыми изменениями"?

Для невидимых изменений декомпилировать необязательно, так что тут всё равно есть обфускация или нет.
Re[3]: Эффективность обфускации
От: k.o. Россия  
Дата: 28.10.11 13:13
Оценка:
Здравствуйте, itslave, Вы писали:

I>Здравствуйте, k.o., Вы писали:


KO>>Здравствуйте, itslave, Вы писали:


I>>>Не знаю сюда или в безопасность...

I>>>Продукт: клиент-серверная софтина, клиент WPF, общается с сервером по WCF, софтина сама бесплатная — деньги берутся за взаимодействие с сервером.

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

I>У начальства параноя что "стырят отдельно взятые компоненты и НАЧНУТ ПРОДАВАТЬ". Как убедить что обфускатор не поможет — хз.

Ты же говоришь, что продаётся взаимодействие с сервером, что тут можно "стырить и продать"?
Re[4]: Эффективность обфускации
От: itslave СССР  
Дата: 28.10.11 13:18
Оценка:
Здравствуйте, k.o., Вы писали:

KO>Ты же говоришь, что продаётся взаимодействие с сервером, что тут можно "стырить и продать"?

Едиторы и прочие визуальные компоненты, которые достаточно долго дотачивались напильником под задачу.
Re[5]: Эффективность обфускации
От: k.o. Россия  
Дата: 28.10.11 14:16
Оценка:
Здравствуйте, itslave, Вы писали:

I>Здравствуйте, k.o., Вы писали:


KO>>Ты же говоришь, что продаётся взаимодействие с сервером, что тут можно "стырить и продать"?

I>Едиторы и прочие визуальные компоненты, которые достаточно долго дотачивались напильником под задачу.

И вы думаете эти компоненты можно будет где-то ещё переиспользовать? А, если вдруг у них, всё-таки, получится эти компоненты хорошо раскрутить, можно будет всегда заявить, что это ваши компоненты и содрать со всех покупателей кучу денег.
Re[3]: Эффективность обфускации
От: AlexNek  
Дата: 28.10.11 17:56
Оценка:
Здравствуйте, itslave, Вы писали:

I>Как убедить что обфускатор не поможет — хз.

Пусть дадут защищенную обфускатором программу, а после принести им код.
Cообщение написано в << RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461>>
Re: Эффективность обфускации
От: hi_octane Беларусь  
Дата: 28.10.11 21:02
Оценка: +1
I> — обфускация всего лишь создает видимость защиты и для хакера средней квалификации серьезных проблем не представляет.
Тема защиты тут всплывает в среднем раз в месяц. На вот почитай мой пост про лом защиты чем-то там 2-х летней давности
Автор: hi_octane
Дата: 25.06.09
— ничего с тех пор особо не изменилось

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

Вы просто определитесь, что конкретно и от чего защищаете. Потому что перехватить просто общение по WCF можно не меняя вашу прогу вообще. Если вы свели общение со своим сервером к обмену шифрованными блоками, и при этом используете стандартные функции шифрования — то опять-таки заинтересованные лица получат дампы вашего протокола просто перехватив функции шифрования. И так во всём. Используете какой-нить SecureString, а его бац и целиком пересобрали , и теперь он всё в файлик складывает. Готовы от такого защищаться?

Если вы планируете защищать контролы просто из жадности — чтоб кто-то не склонировал — то в этом смысла вообще нету . Большинство контролов — это куча мелких перехватчиков каких-то стандартных событий. У таких как граф вызовов не запутывай, но если он состоит из пары ифов и пары присваиваний — то его распутают даже просто глядя в дизассемблер. Но если очень хочется — вытащите контролы строго в отдельную сборку и загоняйтесь вокруг неё. Обфусцировать всё одним махом — это сам себе злобный буратина.

Да, сейчас модный китайский трэнд вообще не декомпилировать Клонируют сайт целиком и честно продают ваше как скачалось. Дёшево и беспощадно, зато без саппорта

Чтобы написать защищённую прогу нужно её изначально проектировать с учётом всех векторов атаки на которые денег хватит. Но в целом отламывают даже решения покер-румов и всяких ММОРПГ, которые доходят до того что при каждом соединении с их сервером скачивается уникальная прожка проверяющая чексуммы загруженного в память кода. Причём там обычно одноразовый основанный на виртуальной машине скрипт, но люди и ему бошку скручивают. Так что если лом вашего клиента может быть интересен реальным перцам — считайте что он уже сломан и скопрометирован и займитесь строго сервером. Защищены будете сильнее.
Re[4]: Эффективность обфускации
От: Аноним  
Дата: 29.10.11 12:30
Оценка: :)
Здравствуйте, itslave, Вы писали:
А>>ну ежели приложение — просто приложеньице — конечно ничего защищать не стоит, а к примеру, если это приложение работающее с финансами или продукт для работы на фондовом рынке или инструмент страхового брокера — думаю, что тут будет преступлением не обфусцировать — облегчать работу хаккерам — преступление!
I>Если хакер за 2-3 часа сумеет деобфусцировать с приемлимымкачеством, то ет не усложнение работы хакера. Полазил в тырнете, вменяемых статей "насколько сложно деобфусцировать" не нашел. От и спрашиваю у народа.

Поэтому и писал вам про Eziriz — посмотрите — там и нэтивный код и другие неломаемые защиты
Re[4]: Эффективность обфускации
От: MozgC США http://nightcoder.livejournal.com
Дата: 29.10.11 16:08
Оценка:
Здравствуйте, itslave, Вы писали:

I>Если хакер за 2-3 часа сумеет деобфусцировать с приемлимымкачеством, то ет не усложнение работы хакера. Полазил в тырнете, вменяемых статей "насколько сложно деобфусцировать" не нашел. От и спрашиваю у народа.


Скажем так, некоторые обфускаторы приведут к тому, что инструменты типа Reflector и ILDASM, не только будут показывать кривые имена классов и методов, но и перестанут показывать код методов вообще. Т.е. рефлектор будет писать что-то типа "This method is obfuscated, oblom, sorry" и смотреть код метода можно будет только в виде IL. Смотря в IL конечно тоже можно поломать что нужно, но уже не так быстро и просто, как если бы код был декомпилирован в C#.
Реальный пример: я вчера хотел пропатчить одну библиотечку, так чтобы она работала лучше (не взломать, а именно улучшить работу), открыл в Reflector'е, а она обфусцирована, код не показывается, мне стало влом разбираться с ней смотря только в IL, и я забил.
Re[3]: Эффективность обфускации
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.10.11 16:25
Оценка:
Здравствуйте, itslave, Вы писали:

A>>Если деньги берутся за взаимодействие с сервером, то точно такой же клиент, сделанный вашими врагами лишь принесет вам прибыль

I>А если он будет "с невидимыми изменениями"?

Это не сложно будет сделать и на угроханных сборках. Закрыть доступ к функциям фрэймворка вы не сможете. А значит всегда кто-то сможет вставить между этими вызовами и вашим кодом какую-нибудь закладку.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Эффективность обфускации
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.10.11 16:28
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>ну ежели приложение — просто приложеньице — конечно ничего защищать не стоит, а к примеру, если это приложение работающее с финансами или продукт для работы на фондовом рынке или инструмент страхового брокера — думаю, что тут будет преступлением не обфусцировать — облегчать работу хаккерам — преступление!


Лучше потратить время на организацию нормальной защиты. Ломают все. Даже нэйтив код. Если у вас есть сервер, то защита на нем будет куда эффективнее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Эффективность обфускации
От: enCobalt  
Дата: 29.10.11 18:32
Оценка: +1
VD>Лучше потратить время на организацию нормальной защиты. Ломают все. Даже нэйтив код. Если у вас есть сервер, то защита на нем будет куда эффективнее.

Я бы назвал это скорее организацией изначального факторинга кода (или рефакторинга если уже жопа) так, чтобы исполняемый код у штатного клиента не содержал интерфейсов и методов вызова админских функций, типа "DeleteSomeAccount". Ато фигачат весь WCF в одну прокси-либу, и она что юзерам что админам в билд.
А потом плачутся "Ай-ай-ай, деобфусцировали либу гады, нас взломали, номера кредиток украли".
Хочу инвайт на хабру :)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.