Безопасность в ASP.NET приложениях ДокладчикMicrosoft.

Презентация:



Advertisements
Похожие презентации
Обеспечение безопасности данных. Управление доступом к данным. Управление доступом к данным. Управление пользователями БД. Управление пользователями БД.
Advertisements

Тестирование безопасности или Security and Access Control Testing.
Защита баз данных. Повестка дня Реалии сегодняшнего дня … Источники атак Уязвимости СУБД Что делать ? Кто поможет ? DbProtect – новое предлагаемое решение.
Top 10 возможностей ASP.NET 2.0. Выбор сделан на основе опросов разработчиков Top 10 – горячая десятка возможностей.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – проверка подлинности, олицетворение Из.
Проф. В.К.Толстых, WCF-службы Понятие безопасности Из цикла лекций «Internet-технологии разработки приложений» для студентов 4-го курса.
Особенности проведения тестов на проникновение в организациях банковской сферы © , Digital Security Илья Медведовский, к.т.н. Директор Digital.
Безопасность СУБД СУБД имеет свои собственные: Пользовательские бюджеты Механизм ведения аудита Механизм разграничения доступа Язык программирования Механизм.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Архитектура IIS 5, IIS 6, исполняющая среда ASP.NET в IIS 7, конфигурирование.
Веб-технологии и современные средства разработки УЦ ВГТУ & SoftLine Academy.
Единая система аутентификации Обзор решения Москва, 2012г.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – обработка ошибок страниц и приложения, Global.aspx.
Использование возможностей.NET Framework при построении системы безопасности приложения ДокладчикMicrosoft.
Департамент образования и науки Тюменской области Государственное автономное профессиональное образовательное учреждение Тюменской области «Западно-Сибирский.
Java Database Connectivity (JDBC) Универсальное API для доступа к данным.
ДонНУ, кафедра КТ, проф.В.К.Толстых Технологии разработки Internet- приложений ASP.NET приложения: Безопасность – аутентификация Из цикла лекций «Технологии.
Аутентификация пользователей, базирующаяся на мобильных профилях (на примере bugtracking system). Выполнил: Коренков М.И. Руководитель: Губин В.А.
Корпоративные системы Лекция 5. Механизмы доступа к БД через Web-интерфейс.
Авторское право © BIT Impulse. Все права защищены. Инструмент для бизнес-анализа Архитектура системы.
Тамбовский государственный университет имени Г.Р. Державина Институт математики, физики и информатики Кафедра информатики и информационных технологий Иванова.
Транксрипт:

Безопасность в ASP.NET приложениях ДокладчикMicrosoft

Основа безопасности Web-приложений АутентификацияАвторизацияАудит Сохраннении конфиденциальности Доступность

Что надо знать о безопасности Web-приложений Что защищать Архитектура Web-приложений и сервисов Устройство платформы ASP.NET Инфраструктура (IIS) От чего защищать Основные виды атак на Web-приложения Как защищать Методы защиты

Безопасность и разработка Анализ требований Проектирование Кодирование Ревью архитектуры Ревью кода Тестирование Развертывание Сопровождение Ревью развертывания Part II. Threat modeling and Designing Secure Web Applications Part III. Building Secure Web Applications Part V. Accessing your security Part IV. Securing your Network, Host and Application Improving Web Application Security: Threats and Countermeasures

Методы нападения Исследование и оценка Проникновение Повышение привелегий Сохранение доступа (после проникновения) Отказ в обслуживании

Принципы безопасности Уменьшение опасной области Наименьшие привилегии Не доверять вводу пользователя Проверка на ранней стадии Безопасно обрабатывать сбои Защита наиболее слабого звена Безопасность по умолчанию Запретить неиспользуемое

Архитектура Web-приложений Бизнес-логика База Данных Сервисы Уровень представления Web-сервис «Тонкий» клиент«Толстый» клиент HTTPSOAP

ASP.NET Internet Information Services 5.0 inetinfo.exe Web-приложение Изолированный/Смешанный режим dllhost.exe Web-приложение Internet Information Services 6.0 inetinfo.exe Пул приложений w3p.exe Приложение Windows Server 2000 Windows Server 2003

ASP.NET Взаимодействие IIS и ASP.NET IIS Клиент Старт ASP.NET приложения Access Denied Права пользователя Access Granted IP адрес и домен? Аутентификация? Нет Да Нет Да ASP.NET имперсонация? Нет Проверка доступа? (NTFS) Нет Права процесса Да

Что предоставляет IIS АутентификацияAnonymousBasic Windows Integrated СертификатАвторизацияNTFS Ограничение по домену и IP-адресу Изоляция приложений (App pool) SSL

Что предоставляет ASP.NET АутентификацияFormsPassport Windows (IIS) Собственный вариант АвторизацияURLРоли Доступ к коду Изоляция приложений (AppDomain)

Безопасность доступа к коду Использование web.config

Процесс Взаимодействие с базой данных СоединениеПараметры Бизнес-логика База Данных Сервисы Поток

Бизнес-логика Проверка параметров АудитИсключения Наименьшие привилегии Бизнес-логика Уровень представления Web-сервис

Взаимодействие с клиентом SSLАутентификация Не доверять клиенту! Бизнес-логика Уровень представления Web-сервис «Тонкий» клиент«Толстый» клиент HTTPSOAP

Два типа атак Уровня системы Уязвимость Web-серверов Переполнение буфера (Code Red/Nimda) Как бороться: Установка обновлений! Уровня приложения Уязвимость в коде Как бороться: Безопасный код!

SQL Параметры Нефильтрованным ввод/вывод Поля форм Строки запросов Могут вызвать серьезные проблемы

Public Sub OnLogon(ByVal Src As Object, ByVal E As EventArgs) Dim conn As New _ SqlConnection("server=(local);database=formsdb;uid=sa;pwd;") Dim query As String = _ String.Format("SELECT count(*) FROM userinfo WHERE _ username='{0}' AND password='{1}'", _ txtUser.Text, txtPassword.Text) Dim cmd As New SqlCommand(query, conn) conn.Open() Dim rdr As SqlDataReader = cmd.ExecuteReader() Try If rdr.HasRows() Then IssueAuthenticationTicket() Else TryAgain() End If Finally rdr.Close() conn.Close() End Try End Sub Пример

Хакер: Username: hacked' or '1' = 1 Password: hacked' or '1' = 1 SELECT count(*) FROM userinfo WHERE username = hacked' or '1' = '1' and password = hacked' or '1' = '1' Что не так? Ожидается: Username: dima Password: SELECT count(*) FROM userinfo WHERE username=dima and password=123456

Демонстрация SQL параметры Демонстрация SQL параметры

Защита Правило #1: Проверка ввода Правило #2: Хранимые процедуры Параметризированный SQL - OK Правило #3: Никогда (НИКОГДА!) не использовать sa

Кросс-сайт скриптинг (XSS) Нефильтрованный ввод отображаемый на странице Поля форм Строки запросов

Как XSS работает … Запрос содержит JavaScript который перенаправляет на другую страницу и передает туда cookie URL указывает на атакуемый сайт

Демонстрация Кросс-сайт скриптинг Демонстрация Кросс-сайт скриптинг

Как бороться Правило #1: Проверка ввода Ограничение диапазона значений,, и т.п.,, и т.п. Правило #2: HTML-кодировать ввод " " -> "<script>" Server.HtmlEncode ASP.NET 1.1 встроенная ValidateRequest=true

Повышение привилегий Если процесс имеет высокие привилегии Если удалось попасть на сайт Например, используя переполнение буфера Если выполняется зловредный код

Демонстрация Повышение привилегий в ASP.NET Демонстрация Повышение привилегий в ASP.NET

Web-приложения Основные рекомендации Проверка ввода на стороне сервера Учетная запись для доступа к ресурсам Защита имени пользователя/пароля Корректная обработка ошибок и сбоев Уровень модульности авторизации User & Web элементы управления в разных сборках Код доступа к ресурсам в отдельных сборках

Будущее Веб-приложения Membership API Login, LoginStatus, LoginView, PasswordRecovery Role Manager Веб-сервисы Web Services Enhancement 2.0 (WSE 2.0) Реализация WS-Security Indigo Доступ к данным в Yukon CLR внутри сервера БД Политика паролей

Ресурсы OpenHack us/dnnetsec/html/openhack.asp us/dnnetsec/html/openhack.asp us/dnnetsec/html/openhack.asphttp://msdn.microsoft.com/security/