Есть ли способ предотвратить анализ или инъекцию нашего приложения? (C #) - PullRequest
2 голосов
/ 21 мая 2009

Существует множество профилировщиков и статических анализаторов кода для сборок C #.

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

Я искал по всему Интернету и через stackoverflow. Кажется, нет ничего для моего удивления.

У меня есть только еще более страшные названия (извините, новый пользователь не может размещать гиперссылки, пожалуйста, гуглите их):

«Манипуляция сборкой и внедрение кода C # / VB.NET»

«Как внедрить управляемую сборку .NET (DLL) в другой процесс»

Просто я слишком переживаю или как?

Кстати, с помощью C # мы создаем нового клиента winform для клиентов банка, которые могут совершать онлайн-транзакции. Разве мы не должны делать это способом winform или мы должны использовать какой-то другой язык, такой как Delphi, C ++? В настоящее время у нас есть клиент winform, созданный с помощью C ++ Builder.

Ответы [ 6 ]

3 голосов
/ 21 мая 2009

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

3 голосов
/ 21 мая 2009

Если под анализом вы подразумеваете, что кто-то декомпилирует код и просматривает его, то Dotfucstor, поставляемый с VS Pro и выше, является простым (бесплатным) инструментом, который может помочь здесь. Существует более функциональная (но платная) версия, которая может сделать больше.

Чтобы никто не вмешивался в ваши развернутые ассембли, используйте Сильные имена .

2 голосов
/ 21 мая 2009

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

2 голосов
/ 21 мая 2009

Первое, что вам нужно решить против того, что вы пытаетесь защитить? Обфускаторы полезны только для защиты алгоритмов «секретного соуса», но злоумышленник может просто извлечь код и использовать его как черный ящик. В 99% случаев обфускаторы - пустая трата денег. Если у злоумышленника есть физический доступ, вы мало что можете сделать.

2 голосов
/ 21 мая 2009

Практически любое приложение может быть «проанализировано и введено». Некоторые больше, чем другие. Вот почему вы никогда не доверяете пользователю ввода. Вы полностью проверяете запросы вашего пользователя на стороне сервера, убеждаясь, что вы не уязвимы для переполнения буфера, внедрения SQL и других векторов атак.

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

1 голос
/ 21 мая 2009

Безопасность возможна только в тех системах, к которым вы физически контролируете доступ, и даже тогда, когда это не гарантировано, просто достижимо. Вы должны предполагать, что любой код, не выполняющийся в системе, которой вы управляете, может и будет скомпрометирован. Как заявил Роуланд Шоу, лучшая ставка для финансового учреждения - это своего рода физический токен, который эффективно добавляет автономный уникальный компонент ко всем транзакциям, которые не могут (легко) быть заранее известны злоумышленнику, действующему из скомпрометированной системы. Даже в этом случае вам следует помнить о том факте, что, если компьютер пользователя был скомпрометирован и он входит в систему со своим безопасным токеном с этого момента и до конца сеанса, злоумышленник может выполнять любые действия, на которые у него есть разрешение, но по крайней мере в этом случае пользователь с большей вероятностью заметит мошенническую деятельность.

...