Создание безопасных Веб-приложений Алексей Кирсанов ведущий разработчик

реклама
Создание безопасных
Веб-приложений
Алексей Кирсанов
ведущий разработчик
компании «Битрикс»
Ошибки безопасности
•
Существенные и не
существенные ошибки
•
Ошибки безопасности
всегда существенные
•
Результаты взлома
приложения
Понятие безопасности
•
•
•
•
•
•
Конфиденциальность - данные доступны только тем людям,
для которых они предназначены
Целостность - данные и системные ресурсы изменяются только
надлежащим способом и только надлежащими людьми
Доступность - системы готовы к работе по требованию и
обеспечивают приемлемую производительность
Аутентификация - устанавливается подлинность пользователя
(кто есть пользователь)
Авторизация - пользователям явным образом предоставляется
(или не предоставляется) доступ к ресурсам
Невозможность аннулирования - пользователи не могут
выполнить действие и впоследствии отказаться признать его
выполнение
Уязвимость Веб-приложений
•
Протокол HTTP очень простой и не поддерживает сохранение
состояния
•
•
•
•
•
•
Нет необходимости прибегать к сложным специализированным средствам
для отправки пакетов
Каждый запрос к веб-приложению содержит все необходимые данные, а
значит можно формировать запрос за запросом без необходимости
подготовки чего-либо типа сессии
Пользователь имеет полный контроль над навигацией по приложению
Пользователю доступна часть исходного кода приложения (HTML,
JavaScript)
Почти все веб-приложения допускают анонимный доступ, по
крайней мере, к странице входа. Эта страница может быть
использована для атаки
Веб-приложения являются последним бастионом между
Интернетом и внутренними ресурсами (например, базой данных).
Значит, они являются целью нападения
Основные ошибки
•
Использование входных данных (ввода) без
проверки
•
•
•
•
•
•
Недостаточный контроль доступа
Ошибки аутентификации
Недостаточная проверка выходных данных
•
•
•
•
SQL Injection
Cross-Site Scripting
Directory Traversal
Cross-Site Scripting
Недостаточная обработка ошибок
Небезопасное хранение секретов
Dental of service (DoS)
Основные принципы
• Разработка механизмов безопасности должна
быть включена в весь цикл разработки
приложения
• Определение потенциальных проблем.
Моделирование угроз.
• Минимально необходимые привилегии
• Надежный код
• Отслеживание и сохранение действий
пользователя
• Разумное использование криптографии
• Развертывание приложения
Моделирование угроз - STRIDE
Моделирование угроз – изучение архитектуры приложения и его
составных частей с целью обнаружения и устранения проблем
безопасности
Spoofing identity - подмена идентификации
Аутентификация
Tampering – подделка
Целостность
Repudiation – отказ
Невозможность
аннулирования
Конфиденциальность
Information disclosure - раскрытие
информации
Dental of service - отказ в обслуживании
Доступность
Elevation of privilege - повышение
полномочий
Авторизация
Моделирование угроз - компоненты
Магазин 1
Процесс
По
то
ки
сбора данных
Магазин 2
Магазин N
•
База
данных
Разделение приложения на
компоненты
•
•
•
•
Потоки данных – передача
данных между компонентами
Хранилища данных
Процессы
Посредники – конечные
точки (люди, веб-службы,…)
Хра
ни
ли
ща
Подмена
идентификации
Подделка
Отказ
+
+
Про
цес
сы
Пос
ред
ни
ки
+
+
+
+
+
Раскрытие
информации
+
+
+
Отказ в обслуживании
+
+
+
Повышение
полномочий
+
Аудит безопасности
• Для обеспечения высокого уровня
защищенности необходимо заказать
независимый аудит информационной
безопасности у сторонних компаний
• Непрерывный аудит обеспечит
независимый экспертный надзор и
сохранит уровень безопасности
приложения на высоком достигнутом
уровне
Скачать