Моделирование угроз для приложений
TRANSCRIPT
![Page 1: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/1.jpg)
XVII Международная конференция по вопросам качества программного обеспечения
Моделирование угроз для приложений
Сергей Атрощенков VIAcode, Санкт-Петербург.
Минск, 2015
Уровень сложности: •
![Page 2: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/2.jpg)
Здравствуйте
Сергей Атрощенков
В IT с 2000
Тестирую с 2007
Учусь, тестирую и учу
![Page 3: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/3.jpg)
1. Формат Мастер-класс2. Что вы уже умеете делать3. Введение4. Построение моделей угроз5. Поговорим про STRIDE6. Пройдемся по процессу моделирования угроз
О содержании и «магии»
![Page 4: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/4.jpg)
Цель
После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.
Image by http://crestfallencelestia.deviantart.com/art/Target-spotted-497499019
![Page 5: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/5.jpg)
Что вы уже знаете о моделировании угроз?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
![Page 6: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/6.jpg)
Что вы уже знаете о моделировании угроз?
Что такое угроза?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
![Page 7: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/7.jpg)
Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
![Page 8: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/8.jpg)
Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Кого стоит привлекать?
![Page 9: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/9.jpg)
Что вы уже знаете о моделировании угроз?
Что такое угроза?
Что знаете о STRIDE?
Кого стоит привлекать?
С помощью чего это делаете?
Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187
![Page 10: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/10.jpg)
Введение
1. Проблемы с безопасностью приложений2. Основные термины
![Page 11: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/11.jpg)
Проблемы с безопасностью приложений
1. Заинтересованные лица не знают, какая безопасность нужна
2. Разные участники проекта думают о безопасности в разных терминах
3. Безопасноть меняется со временем4. Обеспечение безопасности вслепую5. Решения принимаются на ходу, без системы
Image by http://ursulav.deviantart.com/art/Dark-Wizard-Revis-68168629
![Page 12: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/12.jpg)
О чем полезно задуматься?
1. Стоимость данных, информации2. Зона интересов злоумышленника3. События и причины
Image by http://ironshod.deviantart.com/art/Pirate-skeleton-wallpaper-40903517
![Page 13: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/13.jpg)
Основные термины
Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)
Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229
![Page 14: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/14.jpg)
Основные термины
Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)
Что связано со стоимостью?
Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229
![Page 15: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/15.jpg)
Основные термины
Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)
Ресурсы –> стоимость атаки, стоимость защиты, стоимость потери
Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229
![Page 16: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/16.jpg)
Моделирование угроз
Что это такое?Для чего оно?
Кто это делает?
Image by http://camarolp.deviantart.com/art/Threat-479211704
![Page 17: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/17.jpg)
Что такое моделирование угроз?
Моделирование угроз – повторяемый процесс, помогающий найти и уменьшить угрозы вашей системе
Image by http://www.deviantart.com/morelikethis/artists/102956467?view_mode=2
![Page 18: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/18.jpg)
Для чего моделирование угроз?
1. Недостатки дизайна безопасности распространены2. Ошибки дизайна исправлять дорого3. Позволяет найти ошибки тогда, когда есть время их
исправлять4. Моделирование угроз – отличный способ оценки
безопасности проекта (привет, тестировщик! )5. Часть Security Development Lifecycle (
https://www.microsoft.com/en-us/sdl/)
http://www.deviantart.com/art/Money-96992348
![Page 19: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/19.jpg)
• Команда разработки– Project Lead, PM – Тестировщики (использование модели для планирования)– Разработчики – создают диаграмму
• Те, кто будут использовать модель угроз– Команда– Если большой проект – то другие продуктовые команды– Заказчики (если безопасность требует обучения пользователей)– Сторонние специалисты по тестированию безопасности
Участники моделирование угроз?
![Page 20: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/20.jpg)
Процесс как есть
Diagram
Identify Threats
Mitigate
Validate
![Page 21: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/21.jpg)
1. Внешние для системы взаимодейтсвующих объектов2. Процессов3. Xранилища данных4. Потоки данных между элементами5. Доверительные границы
Как создавать диаграмму
![Page 22: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/22.jpg)
Как проверить себя
http://firesquiiids.deviantart.com/art/Pokemon-PRINTABLE-Mega-Evolution-Checklist-481577300
1. Можно рассказать сценарий без редактирования диаграммы?2. Это реальное поведение?
![Page 23: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/23.jpg)
Элементы диаграммы
Внеш
ние
сущ
ност
и • Люди• Другие
системы Про
цесс • DLL
• Services• Web
Services
Пот
оки
данн
ых • RPC
• Network• Function
call Хран
илищ
а • База• Файл• Память• Реестр
Доверительные границы• Границы между процессами• Файловая система
![Page 24: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/24.jpg)
• Они должны пересекать потоки данных• Места где злоумышленник может влезть– Границы прав пользователей– Потоки – часто внутри доверительных границ, т.к. в нём общие
привелегии, права, доступ• Процессы которые задействуют сеть
Немного про Trust Boundaries
![Page 25: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/25.jpg)
Пройдитесь по процессам, хранилищам – можно увидеть места, требующие детализации
1. Оракул EQ (легкое беспокойство) – когда много деталей необходимо чтобы объяснить влияние безопасности на дизайн системы
2. Объекты пересекают доверительные границы3. Стоп-слова аналитиков-тестировщиков:• Например «иногда этот аккаунт используется для...» Предполагаю, что этот аккаунт может использовать и для других целей. Необходимо дополнить диаграмму.
Работа с диаграммой
![Page 26: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/26.jpg)
• Spoofing (аутентификация)• Tampering (подделка)• Repudiation (отрицание)• Information Disclosure (раскрытие информации)• Denial of Service (отказ в обслуживании)• Elevation of Privilege (доступ к защищенным ресурсам)
STRIDE
![Page 27: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/27.jpg)
Свойство: АутентификацияЧто происходит: Представление кем-то или чем-то другимПример: прикинуться сервером, с которого мы получаем данные
Тип угрозы: Spoofing (подмена)
Image by http://bevelframeulon.deviantart.com/art/Evil-Jester-Spoofing-414974040
![Page 28: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/28.jpg)
Тип угрозы: Tampering (подделка)
http://www.deviantart.com/art/Tampering-Strictly-Prohibited-333744218
Свойство: ЦелостностьЧто происходит: Модификация данных или кодаПример: модифицировать DLL на диске, подменить сетевой пакет
![Page 29: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/29.jpg)
Тип угрозы: Repudiation (отрицание)
Свойство: неотречениеЧто происходит: Сообщаем о том, что действие не выполнилось.Пример: Я не изменял этот файл! Т.е. сообщаем о том, что операция не прошла, хотя...
http://urbinator17.deviantart.com/art/I-Lied-logo-312638429
![Page 30: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/30.jpg)
Тип угрозы: Information Disclosure (раскрытие информации)
Свойство: КонфиденциальностьЧто происходит: Кто-то видит информацию, которую он видеть не авторизованПример: позволить кому-то увидеть список пользователей, когда авторизации на это не было
![Page 31: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/31.jpg)
Тип угрозы: Denial of Service (отказ в обслуживании)
Свойство: ДоступностьЧто происходит: Или полностью запрещен доступ или доступ затруднен пользователюПример: Запросы на сервер и «отжирать» CPU (DoS или DDoS)
Image by http://moofinseeker.deviantart.com/art/DDoS-Comin-328985019
![Page 32: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/32.jpg)
![Page 33: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/33.jpg)
Тип угрозы: Elevation of Privilege (доступ к защищенным ресурсам)
Свойство: АвторизацияЧто происходит: Получение “силы” без соответствующей авторизацииПример: Получить права администратора обычному «смертному»
![Page 34: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/34.jpg)
• Применяем релевантную угрозу STRIDE– Процесс: STRIDE– Хранилища и потоки данных: TID• Если есть логирование у базы данных: TRID
– Внешние сущности: SR– Поток данных внутри процесса:• Нам не интересны TID
Для каждого элемента диаграммы
![Page 35: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/35.jpg)
К какому типу уязвимостей можно
отнести SQL Injection и XSS?
Взбодримся?
![Page 36: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/36.jpg)
Этап: Mitigate
Обработайте каждую угрозу1. Поменять дизайн элемента2. Приминить стандартные подходы к уменьшению
угрозы3. Изобрести велосипед4. Понять и простить (принять угрозу в дизайне)
![Page 37: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/37.jpg)
Spoofing – Cookie authentication– Kerberos authentication– SSL– Digital signature
Tampering– ACLs (Access control list)– Digital signatures
Стандартные пути обработки угроз
![Page 38: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/38.jpg)
Repudiation– Secure logging and auditing
Information Disclosure– Encryption– ACLs
DoS– ACLs– Filtering
Elevation of Privilege– ACLs– Grouping or roles membership– Input validation
Стандартные пути обработки угроз
![Page 39: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/39.jpg)
1. Диаграмма соответствует последнему коду?2. Все угрозы учтены?3. Есть STRIDE в случаях доверительных границ?4. Тестировщики, а вы посмотрели диаграмму?5. Каждая угроза обработана?6. Обработка угроз выполнена правильно?
Этап: Validate
![Page 40: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/40.jpg)
1. Бесплатная (https://www.microsoft.com/en-us/sdl/adopt/threatmodeling.aspx)
2. Поддерживается и развивается Microsoft, как инструмент SDL
3. Автогенерация угроз по моделе STRIDE4. Генерирует отчет в HTML формате
Microsoft Threat Modelling tool 2014
![Page 41: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/41.jpg)
Microsoft Threat Modelling tool 2014
![Page 42: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/42.jpg)
Microsoft Threat Modelling tool 2014
![Page 43: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/43.jpg)
Microsoft Threat Modelling tool 2014
![Page 44: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/44.jpg)
Microsoft Threat Modelling tool 2014
![Page 45: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/45.jpg)
Детали угроз. Обработка.
![Page 46: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/46.jpg)
Генерируем отчет (HTML формат)
![Page 47: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/47.jpg)
Excel Word
Mind Mapshttp://mozilla.github.io/seasponge
Альтернативы
![Page 48: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/48.jpg)
1. Моделирование угроз - командная работа2. Начинайте как можно раньше3. Никогда не удаляйте модели, это история4. Правильно определяйте ресурсы5. Не копайте слишком глубоко6. Старайтесь не изобретать велосипеды, это слишком
рисковано– эксперты по безопасности тоже люди
7. Здравый смысл никто не отменял
Выводы
![Page 49: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/49.jpg)
Вспомним цель
После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.
Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154
![Page 50: Моделирование угроз для приложений](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55c9bbf7bb61eb753d8b460e/html5/thumbnails/50.jpg)
Вспомним цель
Достигнута?
После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое
STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.
Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154