От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Моделирование угроз для приложений
1. XVII Международная конференция
по вопросам качества программного обеспечения
Моделирование
угроз для приложений
Сергей Атрощенков
VIAcode, Санкт-Петербург.
Минск, 2015
Уровень сложности: •
3. 1. Формат Мастер-класс
2. Что вы уже умеете делать
3. Введение
4. Построение моделей угроз
5. Поговорим про STRIDE
6. Пройдемся по процессу моделирования угроз
О содержании и «магии»
4. Цель
После этого мастер-класса, вы узнаете о том, что такое
модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно
построить модель угроз.
Image by http://crestfallencelestia.deviantart.com/art/Target-spotted-497499019
5. Что вы уже знаете о моделировании угроз?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
6. Что вы уже знаете о моделировании угроз?
Что такое угроза?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
7. Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
8. Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Кого стоит привлекать?
9. Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Кого стоит привлекать?
С помощью чего это делаете?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
11. Проблемы с безопасностью приложений
1. Заинтересованные лица не знают, какая безопасность
нужна
2. Разные участники проекта думают о безопасности в
разных терминах
3. Безопасноть меняется со временем
4. Обеспечение безопасности вслепую
5. Решения принимаются на ходу, без системы
Image by http://ursulav.deviantart.com/art/Dark-Wizard-Revis-68168629
12. О чем полезно задуматься?
1. Стоимость данных, информации
2. Зона интересов злоумышленника
3. События и причины
Image by http://ironshod.deviantart.com/art/Pirate-skeleton-wallpaper-40903517
14. Основные термины
Threat (угроза)
Vulnerability (уязвимость)
Attack (хм... )
Assets (ресурсы)
Что связано со стоимостью?
Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229
15. Основные термины
Threat (угроза)
Vulnerability (уязвимость)
Attack (хм... )
Assets (ресурсы)
Ресурсы –> стоимость атаки, стоимость защиты, стоимость потери
Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229
16. Моделирование угроз
Что это такое?
Для чего оно?
Кто это делает?
Image by http://camarolp.deviantart.com/art/Threat-479211704
17. Что такое моделирование угроз?
Моделирование угроз – повторяемый
процесс, помогающий найти и
уменьшить угрозы вашей системе
Image by http://www.deviantart.com/morelikethis/artists/102956467?view_mode=2
18. Для чего моделирование угроз?
1. Недостатки дизайна безопасности распространены
2. Ошибки дизайна исправлять дорого
3. Позволяет найти ошибки тогда, когда есть время их
исправлять
4. Моделирование угроз – отличный способ оценки
безопасности проекта (привет, тестировщик! )
5. Часть Security Development Lifecycle
(https://www.microsoft.com/en-us/sdl/)
http://www.deviantart.com/art/Money-96992348
19. • Команда разработки
– Project Lead, PM
– Тестировщики (использование модели для планирования)
– Разработчики – создают диаграмму
• Те, кто будут использовать модель угроз
– Команда
– Если большой проект – то другие продуктовые команды
– Заказчики (если безопасность требует обучения пользователей)
– Сторонние специалисты по тестированию безопасности
Участники моделирование угроз?
21. 1. Внешние для системы взаимодейтсвующих объектов
2. Процессов
3. Xранилища данных
4. Потоки данных между элементами
5. Доверительные границы
Как создавать диаграмму
23. Элементы диаграммы
Внешниесущности
• Люди
• Другие
системы
Процесс
• DLL
• Services
• Web
Services
Потокиданных
• RPC
• Network
• Function
call
Хранилища
• База
• Файл
• Память
• Реестр
Доверительные границы
• Границы между процессами
• Файловая система
24. • Они должны пересекать потоки данных
• Места где злоумышленник может влезть
– Границы прав пользователей
– Потоки – часто внутри доверительных границ, т.к. в нём общие
привелегии, права, доступ
• Процессы которые задействуют сеть
Немного про Trust Boundaries
25. Пройдитесь по процессам, хранилищам – можно увидеть
места, требующие детализации
1. Оракул EQ (легкое беспокойство) – когда много деталей
необходимо чтобы объяснить влияние безопасности на дизайн
системы
2. Объекты пересекают доверительные границы
3. Стоп-слова аналитиков-тестировщиков:
• Например «иногда этот аккаунт используется для...»
Предполагаю, что этот аккаунт может использовать и для других целей.
Необходимо дополнить диаграмму.
Работа с диаграммой
26. • Spoofing (аутентификация)
• Tampering (подделка)
• Repudiation (отрицание)
• Information Disclosure (раскрытие информации)
• Denial of Service (отказ в обслуживании)
• Elevation of Privilege (доступ к защищенным ресурсам)
STRIDE
27. Свойство: Аутентификация
Что происходит: Представление кем-то или чем-то другим
Пример: прикинуться сервером, с которого мы получаем
данные
Тип угрозы: Spoofing (подмена)
Image by http://bevelframeulon.deviantart.com/art/Evil-Jester-Spoofing-414974040
28. Тип угрозы: Tampering (подделка)
http://www.deviantart.com/art/Tampering-Strictly-Prohibited-333744218
Свойство: Целостность
Что происходит: Модификация данных или кода
Пример: модифицировать DLL на диске, подменить сетевой пакет
29. Тип угрозы: Repudiation (отрицание)
Свойство: неотречение
Что происходит: Сообщаем о том, что действие не выполнилось.
Пример: Я не изменял этот файл! Т.е. сообщаем о том, что операция
не прошла, хотя...
http://urbinator17.deviantart.com/art/I-Lied-logo-312638429
30. Тип угрозы: Information Disclosure (раскрытие информации)
Свойство: Конфиденциальность
Что происходит: Кто-то видит информацию, которую он видеть не
авторизован
Пример: позволить кому-то увидеть список пользователей, когда
авторизации на это не было
31. Тип угрозы: Denial of Service (отказ в обслуживании)
Свойство: Доступность
Что происходит: Или полностью запрещен доступ или доступ
затруднен пользователю
Пример: Запросы на сервер и «отжирать» CPU (DoS или DDoS)
Image by http://moofinseeker.deviantart.com/art/DDoS-Comin-328985019
32.
33. Тип угрозы: Elevation of Privilege (доступ к защищенным ресурсам)
Свойство: Авторизация
Что происходит: Получение “силы” без соответствующей
авторизации
Пример: Получить права администратора обычному
«смертному»
34. • Применяем релевантную угрозу STRIDE
– Процесс: STRIDE
– Хранилища и потоки данных: TID
• Если есть логирование у базы данных: TRID
– Внешние сущности: SR
– Поток данных внутри процесса:
• Нам не интересны TID
Для каждого элемента диаграммы
36. Этап: Mitigate
Обработайте каждую угрозу
1. Поменять дизайн элемента
2. Приминить стандартные подходы к уменьшению
угрозы
3. Изобрести велосипед
4. Понять и простить (принять угрозу в дизайне)
37. Spoofing
– Cookie authentication
– Kerberos authentication
– SSL
– Digital signature
Tampering
– ACLs (Access control list)
– Digital signatures
Стандартные пути обработки угроз
38. Repudiation
– Secure logging and auditing
Information Disclosure
– Encryption
– ACLs
DoS
– ACLs
– Filtering
Elevation of Privilege
– ACLs
– Grouping or roles membership
– Input validation
Стандартные пути обработки угроз
39. 1. Диаграмма соответствует последнему коду?
2. Все угрозы учтены?
3. Есть STRIDE в случаях доверительных границ?
4. Тестировщики, а вы посмотрели диаграмму?
5. Каждая угроза обработана?
6. Обработка угроз выполнена правильно?
Этап: Validate
48. 1. Моделирование угроз - командная работа
2. Начинайте как можно раньше
3. Никогда не удаляйте модели, это история
4. Правильно определяйте ресурсы
5. Не копайте слишком глубоко
6. Старайтесь не изобретать велосипеды, это слишком
рисковано
– эксперты по безопасности тоже люди
7. Здравый смысл никто не отменял
Выводы
49. Вспомним цель
После этого мастер-класса, вы узнаете о том, что такое
модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно
построить модель угроз.
Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154
50. Вспомним цель
Достигнута?
После этого мастер-класса, вы узнаете о том, что такое
модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно
построить модель угроз.
Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154