Безопасность
ASP.NET MVC 2 приложений

подготовлено

студентом гр. ПС-10м

Титаренко К. К.

Что такое безопасность?

Устойчивость системы

к наиболее вероятным атакам

Какие атаки наиболее вероятны?

 

OWASP Top 10 (2010):

 

A1: Injection

A2: Cross-Site Scripting (XSS)

A3: Broken Authentication and Session Management

A4: Insecure Direct Object References

A5: Cross-Site Request Forgery (CSRF)

A6: Security Misconfiguration

A7: Insecure Cryptographic Storage

A8: Failure to Restrict URL Access

A9: Insufficient Transport Layer Protection

A10: Unvalidated Redirects and Forwards

Далее рассматриваются

Injection (инжекция)

 

Cross-Site Scripting (XSS, межсайтовый скриптинг)

 

Broken Authentication and Session Management (некорректное управление аутентификацией и сессией)

Injection

В общем: передача инструкций под видом данных.

 

Имеет множество подвидов.

 

Самый распространенный подвид — SQL Injection (SQL инъекция).

SQL Injection

Классический пример уязвимости: построение запроса конкатенацией (форматированием) строк.

SQL Injection

Примеры защиты: использование параметризованных запросов, использование ORM в связке с LINQ провайдером.

Cross-Site Scripting

Похоже на Injection в общем виде — передача команд под видом данных.

 

Более конкретно: к примеру, передача JavaScript кода как текста комментария — если разработчиком не предусмотрена фильтрация ввода или кодирование вывода — код выполнится как только будет передан браузеру.

Cross-Site Scripting

Еще более конкретно: полагаясь на беспечность разработчиков, передача кода

Cross-Site Scripting

Защита:

Broken Authentication and Session Management

Распространенные примеры:

 

передача важных данных по незащищенному каналу (особенно актуально, если используется WiFi);

 

передача важных данных в составе строки GET-запроса (потенциальная возможность утечки через HTTP referrer).

Broken Authentication and Session Management

Защита:

 

запрет на доступ к cookie из JavaScript кода, передача важных cookie только по защищенному каналу:

Broken Authentication and Session Management

Защита:

 

требование обращения к действию контроллера (или ко всему контроллеру) только по защищенному каналу:

Более подробно

OWASP (http://www.owasp.org/index.php/Main_Page)

 

 

MSDN (http://msdn.microsoft.com/en-us/library/dd394709.aspx)

Спасибо за внимание!

Есть вопросы?