+ All Categories
Home > Documents > Принципы безопасной разработки на Silverlight

Принципы безопасной разработки на Silverlight

Date post: 04-Feb-2016
Category:
Upload: tarak
View: 62 times
Download: 0 times
Share this document with a friend
Description:
Принципы безопасной разработки на Silverlight. Михаил Черномордиков Architect Evangelist, Microsoft http://blogs.msdn.com/mikcher [email protected]. Содержание доклада. Угрозы в Сети Same-origin policy XSS CSRF Silverlight и сетевая безопасность Основы работы Silverlight - PowerPoint PPT Presentation
Popular Tags:
19
Transcript
Page 1: Принципы безопасной разработки на  Silverlight
Page 2: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Принципы безопасной разработки на SilverlightМихаил ЧерномордиковArchitect Evangelist, Microsofthttp://blogs.msdn.com/[email protected]

Page 3: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Содержание докладаУгрозы в Сети

Same-origin policyXSSCSRF

Silverlight и сетевая безопасностьОсновы работы SilverlightРабота в sandboxКросс-доменные запросыРабота с сокетами

Page 4: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Важность безопасности

Источник: secunia.com

Page 5: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Same-origin policy= site-of-origin policyТот же источник = доменное имя, портwww.testsite.ru, www.testsite2.ru:8080Если HTML-страница загружает iframe (или другой объект) с тем же источником, то открыт доступ к DOM-модели другой страницыHTML-страница может делать HTTP-запросы к источнику (обычно через XmlHttpRequest)

Page 6: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

XSS = Cross-Site ScriptingМежсайтовый скриптингЗапуск кода (обычно JavaScript) от имени атакуемого сервераПорядка 15% всех обнаруженных уязвимостей*Основная поверхность атаки – серверная частьВозможное решение для пользователей – XSS-фильтр в IE8

* Источник: wikipedia.org

Page 7: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

CSRF = Cross-Site Request Forgeries

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

Возможное решение – контрольная суммаВозможное решение – XDR-запросы в IE8

Page 8: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Содержание докладаУгрозы в Сети

Same-origin policyXSSCSRF

Silverlight и сетевая безопасностьОсновы работы SilverlightРабота в sandboxКросс-доменные запросыРабота с сокетами

Page 9: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Структура Silverlight-проектаВеб-проект,генерируемый Visual Studio для тестирования

Основной проект

Тестовая страница HTML

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

XAP файл со сборками приложения, библиотеками и ресурсами

Page 10: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Основы работы SilverlightЗагрузка при инструкции в HTML:

<object type=“application/x-silverlight-3”></object>

XAMLНе содержит кодМожет содержать обработчики событийНет гарантий по загрузке памяти и ЦП

XAPПуть указан в sourceZIP-архивAppManifest.xmlПри кросс-доменной загрузке источник = источник XAP-файла

Page 11: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Работа в sandboxXAP-файл загружается в «песочнице»Контекст безопасности может не совпадать со страницейПо умолчанию - модель iframe

Если same-origin, взаимодействие со страницей разрешеноЕсли нет – запрещено

Можно настраивать через параметрыEnableHtmlAccess – доступ к страницеExternalCallsFromCrossDomain – доступ к XAP

Page 12: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

EnableHtmlAccessПо умолчанию falseEnableHtmlAccess = true

Доступ управляемогокода к DOM-моделиЭквивалентно элементу<script> в серединедокументаЕсли вредоносный XAP – XSS-уязвимость + чтение cookies + CSRFПомните, что домен может сменить хозяина

Про безопасность нужно помнить, учитывать, не бояться

Page 13: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

ExternalCallersCrossDomainПо умолчанию NoAccess= ScriptableOnlyоткрывает доступ к [Scriptable]-объектамв коде XAP-файлаЛюбая HTML-страница может вызывать метод из XAP-файла с домена Х и возможно получить данные из домена ХЗадается в AppManifest.xml

Page 14: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Кросс-доменные запросыПо умолчанию доступ из Silverlight-приложений с других доменов запрещенЕго можно разрешить явным образом – файл clientaccesspolicy.xmlЕсть поддержка crossdomain.xmlСоветы по безопасности:

Используйте статические ресурсыНе используйте состоянияИспользуйте альтернативную аутентификациюИспользуйте субдомены (http://api.flickr.com)Открывайте доступ всем осознанно

Page 15: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Работа с сокетамиВ Silverlight возможно сетевое взаимодействие через TCP-сокетыЗадается в clientaccesspolicy.xmlНет CSRF-угрозы – нет HTTP и cookies Угроза – перехват трафика другими внутренними утилитами или приложениямиОграничение на порты – 4502-4534

Page 16: Принципы безопасной разработки на  Silverlight

Примеры кода

<object ...>   <param name="enablehtmlaccess" value=“true"/>   ... </object>

<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" ExternalCallersFromCrossDomain="ScriptableOnly" .../>

<?xml version="1.0" encoding="utf-8"?><access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="http://contoso.com"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access></access-policy>

Page 17: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Полезные ссылкиОнлайн-доклады по безопасностиhttp://www.techdays.ru/Category.aspx?Tag=Security

Руководство “Security Guidance for Writing and Deploying Silverlight Applications”http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7cef15a8-8ae6-48eb-9621-ee35c2547773

Онлайн-доклыды по Silverlighthttp://www.techdays.ru/Category.aspx?Tag=Silverlight

Центр разработки Silverlight на MSDNhttp://msdn.microsoft.com/ru-ru/Silverlight

Making a Service Available Across Domain Boundaries: http://msdn.microsoft.com/en-us/library/cc197955(VS.95).aspxEnableHtmlAccess: http://msdn.microsoft.com/en-us/library/cc838264(VS.95).aspxExternalCallersFromCrossDomain: http://msdn.microsoft.com/en-us/library/system.windows.deployment.externalcallersfromcrossdomain(VS.95).aspx

Page 18: Принципы безопасной разработки на  Silverlight

Microsoft TechDayshttp://www.techdays.ru

Принципы безопасной разработки на SilverlightМихаил ЧерномордиковArchitect Evangelist, Microsofthttp://blogs.msdn.com/[email protected]

Page 19: Принципы безопасной разработки на  Silverlight

Recommended