Silverlight безопасен? - PullRequest
       8

Silverlight безопасен?

4 голосов
/ 31 декабря 2008

Нам нужно приложение, которое запускается на компьютере конечного пользователя и предоставляет нам результаты оценки, и нам нужно, чтобы результаты были точными (то есть не подделаны). В настоящее время между Flash и Silverlight идут споры, и похоже, что Silverlight станет победителем.

Помимо того, что все, что на компьютере конечного пользователя должно в конечном итоге считаться компрометированным, насколько сложно атаковать приложение SilverLight? Я знаю, что это зависит от того, как написан код и т. Д., И мой вопрос на самом деле заключается в том, насколько сложно атаковать базовую платформу. Есть ли какие-нибудь статьи о том, как легко сделать что-то вроде начальной загрузки приложения silverlight и изменить работающий код (или какой-либо другой метод)? Я думаю что-то вроде атаки переполнения буфера, чтобы вставить другой исполняемый код?

Я также слышал, что приложение Flash довольно сложно атаковать память и выполнять произвольный код. Это правда?

Ответы [ 8 ]

7 голосов
/ 31 декабря 2008

Насколько я понимаю, Silverlight работает в версии Common Language Runtime (CLR), называемой CoreCLR. Как и любое приложение, запущенное в браузере, основной сценарий безопасности не позволяет вредоносному коду атаковать другие экземпляры приложения или приложения / данные на компьютере пользователя.

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

Вы можете попытаться смягчить эти атаки:

  • Запрет доступа к сложным средствам отладки (невозможно, если вы не управляете клиентскими машинами).
  • Генерация запутанного или случайного кода Silverlight для каждого отдельного пользователя или даже для сеанса. Теоретически это может помешать пользователям делиться взломом. Если вы сможете установить тайм-аут кода, сделав его устаревшим через 30 минут, вы сделаете его более сложным.
  • Сокращение объема логики в вашем приложении и обеспечение его на стороне сервера веб-сервисами.

Опытному злоумышленнику так же легко атаковать приложения, работающие на Flash VM, как и атаковать Silverlight.

5 голосов
/ 31 декабря 2008

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

Существует бесчисленное множество уроков о том, как "взломать" флеш-игры, если вы хотите найти несколько примеров.

2 голосов
/ 31 декабря 2008

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

2 голосов
/ 31 декабря 2008

Какой бы механизм вы ни предоставили для связи между клиентом и вашим сервером, он может быть взломан. Даже если вы используете SSL, пользователь может выполнить атаку «человек посередине» (безопасность обеспечивается браузером, поэтому, если пользователь перезаписывает сертификат SSL, это будет разрешено), чтобы получить доступ к вашему протоколу данных .

0 голосов
/ 15 мая 2009

Загрузите этот документ по безопасности Silverlight. говорит вам все, что вам нужно знать:

Руководство по безопасности для написания и развертывания приложений Silverlight.docx: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7cef15a8-8ae6-48eb-9621-ee35c2547773

если вы не можете открыть документ, просто удалите 'x', и он откроется в Word 2003;

Asa

0 голосов
/ 31 декабря 2008

Я согласен с foxxtrot, что обмен данными между приложением Silverlight и вашим сервером будет таким же безопасным, как и любая другая архитектура веб-сервисов. Это ваш основной вектор атаки, поскольку вредоносное ПО на стороне клиента вряд ли вызовет проблему в случае Silverlight, по крайней мере, не так, как кража данных.

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

0 голосов
/ 31 декабря 2008

Я думаю, что Silverlight довольно хорош с точки зрения песочницы, но он довольно новый, поэтому маловероятно, что он был исследован почти так же глубоко, как Flash с точки зрения безопасности.

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

0 голосов
/ 31 декабря 2008

Если честно, я думаю, что обе платформы безопасны. До сих пор я не знаю Silverlight (1.0 или 2.0), когда-либо имевших какие-либо уязвимости безопасности. Тем не менее, если бы они были обнаружены на какой-либо платформе, я уверен, что обе проблемы будут решены быстро.

Один вопрос для вас, однако. Почему вы хотите хранить что-либо на клиентском компьютере, а не на размещенном сервере? Silverlight 2.0 имеет специальную «урезанную» реализацию платформы .NET, и, насколько мне известно, весь доступ к файловой системе был удален из соображений безопасности.

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