1 / 19

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

Принципы безопасной разработки на Silverlight. Михаил Черномордиков Architect Evangelist, Microsoft http://blogs.msdn.com/mikcher mikcher@microsoft.com. Содержание доклада. Угрозы в Сети Same-origin policy XSS CSRF Silverlight и сетевая безопасность Основы работы Silverlight

tarak
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Принципы безопасной разработки на Silverlight Михаил Черномордиков Architect Evangelist, Microsoft http://blogs.msdn.com/mikcher mikcher@microsoft.com

  2. Содержание доклада • Угрозы в Сети • Same-origin policy • XSS • CSRF • Silverlight и сетевая безопасность • Основы работы Silverlight • Работа в sandbox • Кросс-доменные запросы • Работа с сокетами

  3. Важность безопасности Источник: secunia.com

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

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

  6. CSRF = Cross-Site Request Forgeries • Атакующий сайт делает запрос на атакуемый сервер так, что сервер думает, что это запрос от пользователя • Возможное решение – контрольная сумма • Возможное решение – XDR-запросы в IE8

  7. Содержание доклада • Угрозы в Сети • Same-origin policy • XSS • CSRF • Silverlight и сетевая безопасность • Основы работы Silverlight • Работа в sandbox • Кросс-доменные запросы • Работа с сокетами

  8. Структура Silverlight-проекта Веб-проект,генерируемый Visual Studio для тестирования XAP файл со сборками приложения, библиотеками и ресурсами Тестовая страница HTML Основной проект XAML-файл с глобальными ресурсами и обработчиками событий XAML-файл со страницей, которую видит пользователь

  9. Основы работы Silverlight • Загрузка при инструкции в HTML: • <object type=“application/x-silverlight-3”></object> • XAML • Не содержит код • Может содержать обработчики событий • Нет гарантий по загрузке памяти и ЦП • XAP • Путь указан в source • ZIP-архив • AppManifest.xml • При кросс-доменной загрузке источник = источник XAP-файла

  10. Работа в sandbox • XAP-файл загружается в «песочнице» • Контекст безопасности может не совпадать со страницей • По умолчанию - модель iframe • Если same-origin, взаимодействие со страницей разрешено • Если нет – запрещено • Можно настраивать через параметры • EnableHtmlAccess – доступ к странице • ExternalCallsFromCrossDomain – доступ к XAP

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

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

  13. Кросс-доменные запросы • По умолчанию доступ из Silverlight-приложений с других доменов запрещен • Его можно разрешить явным образом – файл clientaccesspolicy.xml • Есть поддержка crossdomain.xml • Советы по безопасности: • Используйте статические ресурсы • Не используйте состояния • Используйте альтернативную аутентификацию • Используйте субдомены (http://api.flickr.com) • Открывайте доступ всем осознанно

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

  15. Примеры кода • <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>

  16. Полезные ссылки • Онлайн-доклады по безопасности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).aspx • EnableHtmlAccess: http://msdn.microsoft.com/en-us/library/cc838264(VS.95).aspx • ExternalCallersFromCrossDomain: http://msdn.microsoft.com/en-us/library/system.windows.deployment.externalcallersfromcrossdomain(VS.95).aspx

  17. Принципы безопасной разработки на Silverlight Михаил Черномордиков Architect Evangelist, Microsoft http://blogs.msdn.com/mikcher mikcher@microsoft.com

More Related