Моделирование угроз для приложений

Preview:

Citation preview

XVII Международная конференция по вопросам качества программного обеспечения

Моделирование угроз для приложений

Сергей Атрощенков VIAcode, Санкт-Петербург.

Минск, 2015

Уровень сложности: •

Здравствуйте

Сергей Атрощенков

В IT с 2000

Тестирую с 2007

Учусь, тестирую и учу

1. Формат Мастер-класс2. Что вы уже умеете делать3. Введение4. Построение моделей угроз5. Поговорим про STRIDE6. Пройдемся по процессу моделирования угроз

О содержании и «магии»

Цель

После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое

STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.

Image by http://crestfallencelestia.deviantart.com/art/Target-spotted-497499019

Что вы уже знаете о моделировании угроз?

Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187

Что вы уже знаете о моделировании угроз?

Что такое угроза?

Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187

Что вы уже знаете о моделировании угроз?

Что такое угроза?

Что знаете о STRIDE?

Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187

Что вы уже знаете о моделировании угроз?

Что такое угроза?

Что знаете о STRIDE?

Кого стоит привлекать?

Что вы уже знаете о моделировании угроз?

Что такое угроза?

Что знаете о STRIDE?

Кого стоит привлекать?

С помощью чего это делаете?

Image by http://shamanau.deviantart.com/art/A-Wizard-Discovers-Kyptonite-389133187

Введение

1. Проблемы с безопасностью приложений2. Основные термины

Проблемы с безопасностью приложений

1. Заинтересованные лица не знают, какая безопасность нужна

2. Разные участники проекта думают о безопасности в разных терминах

3. Безопасноть меняется со временем4. Обеспечение безопасности вслепую5. Решения принимаются на ходу, без системы

Image by http://ursulav.deviantart.com/art/Dark-Wizard-Revis-68168629

О чем полезно задуматься?

1. Стоимость данных, информации2. Зона интересов злоумышленника3. События и причины

Image by http://ironshod.deviantart.com/art/Pirate-skeleton-wallpaper-40903517

Основные термины

Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)

Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229

Основные термины

Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)

Что связано со стоимостью?

Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229

Основные термины

Threat (угроза)Vulnerability (уязвимость)Attack (хм... )Assets (ресурсы)

Ресурсы –> стоимость атаки, стоимость защиты, стоимость потери

Image by http://www.deviantart.com/art/For-the-magic-of-books-206213229

Моделирование угроз

Что это такое?Для чего оно?

Кто это делает?

Image by http://camarolp.deviantart.com/art/Threat-479211704

Что такое моделирование угроз?

Моделирование угроз – повторяемый процесс, помогающий найти и уменьшить угрозы вашей системе

Image by http://www.deviantart.com/morelikethis/artists/102956467?view_mode=2

Для чего моделирование угроз?

1. Недостатки дизайна безопасности распространены2. Ошибки дизайна исправлять дорого3. Позволяет найти ошибки тогда, когда есть время их

исправлять4. Моделирование угроз – отличный способ оценки

безопасности проекта (привет, тестировщик! )5. Часть Security Development Lifecycle (

https://www.microsoft.com/en-us/sdl/)

http://www.deviantart.com/art/Money-96992348

• Команда разработки– Project Lead, PM – Тестировщики (использование модели для планирования)– Разработчики – создают диаграмму

• Те, кто будут использовать модель угроз– Команда– Если большой проект – то другие продуктовые команды– Заказчики (если безопасность требует обучения пользователей)– Сторонние специалисты по тестированию безопасности

Участники моделирование угроз?

Процесс как есть

Diagram

Identify Threats

Mitigate

Validate

1. Внешние для системы взаимодейтсвующих объектов2. Процессов3. Xранилища данных4. Потоки данных между элементами5. Доверительные границы

Как создавать диаграмму

Как проверить себя

http://firesquiiids.deviantart.com/art/Pokemon-PRINTABLE-Mega-Evolution-Checklist-481577300

1. Можно рассказать сценарий без редактирования диаграммы?2. Это реальное поведение?

Элементы диаграммы

Внеш

ние

сущ

ност

и • Люди• Другие

системы Про

цесс • DLL

• Services• Web

Services

Пот

оки

данн

ых • RPC

• Network• Function

call Хран

илищ

а • База• Файл• Память• Реестр

Доверительные границы• Границы между процессами• Файловая система

• Они должны пересекать потоки данных• Места где злоумышленник может влезть– Границы прав пользователей– Потоки – часто внутри доверительных границ, т.к. в нём общие

привелегии, права, доступ• Процессы которые задействуют сеть

Немного про Trust Boundaries

Пройдитесь по процессам, хранилищам – можно увидеть места, требующие детализации

1. Оракул EQ (легкое беспокойство) – когда много деталей необходимо чтобы объяснить влияние безопасности на дизайн системы

2. Объекты пересекают доверительные границы3. Стоп-слова аналитиков-тестировщиков:• Например «иногда этот аккаунт используется для...» Предполагаю, что этот аккаунт может использовать и для других целей. Необходимо дополнить диаграмму.

Работа с диаграммой

• Spoofing (аутентификация)• Tampering (подделка)• Repudiation (отрицание)• Information Disclosure (раскрытие информации)• Denial of Service (отказ в обслуживании)• Elevation of Privilege (доступ к защищенным ресурсам)

STRIDE

Свойство: АутентификацияЧто происходит: Представление кем-то или чем-то другимПример: прикинуться сервером, с которого мы получаем данные

Тип угрозы: Spoofing (подмена)

Image by http://bevelframeulon.deviantart.com/art/Evil-Jester-Spoofing-414974040

Тип угрозы: Tampering (подделка)

http://www.deviantart.com/art/Tampering-Strictly-Prohibited-333744218

Свойство: ЦелостностьЧто происходит: Модификация данных или кодаПример: модифицировать DLL на диске, подменить сетевой пакет

Тип угрозы: Repudiation (отрицание)

Свойство: неотречениеЧто происходит: Сообщаем о том, что действие не выполнилось.Пример: Я не изменял этот файл! Т.е. сообщаем о том, что операция не прошла, хотя...

http://urbinator17.deviantart.com/art/I-Lied-logo-312638429

Тип угрозы: Information Disclosure (раскрытие информации)

Свойство: КонфиденциальностьЧто происходит: Кто-то видит информацию, которую он видеть не авторизованПример: позволить кому-то увидеть список пользователей, когда авторизации на это не было

Тип угрозы: Denial of Service (отказ в обслуживании)

Свойство: ДоступностьЧто происходит: Или полностью запрещен доступ или доступ затруднен пользователюПример: Запросы на сервер и «отжирать» CPU (DoS или DDoS)

Image by http://moofinseeker.deviantart.com/art/DDoS-Comin-328985019

Тип угрозы: Elevation of Privilege (доступ к защищенным ресурсам)

Свойство: АвторизацияЧто происходит: Получение “силы” без соответствующей авторизацииПример: Получить права администратора обычному «смертному»

• Применяем релевантную угрозу STRIDE– Процесс: STRIDE– Хранилища и потоки данных: TID• Если есть логирование у базы данных: TRID

– Внешние сущности: SR– Поток данных внутри процесса:• Нам не интересны TID

Для каждого элемента диаграммы

К какому типу уязвимостей можно

отнести SQL Injection и XSS?

Взбодримся?

Этап: Mitigate

Обработайте каждую угрозу1. Поменять дизайн элемента2. Приминить стандартные подходы к уменьшению

угрозы3. Изобрести велосипед4. Понять и простить (принять угрозу в дизайне)

Spoofing – Cookie authentication– Kerberos authentication– SSL– Digital signature

Tampering– ACLs (Access control list)– Digital signatures

Стандартные пути обработки угроз

Repudiation– Secure logging and auditing

Information Disclosure– Encryption– ACLs

DoS– ACLs– Filtering

Elevation of Privilege– ACLs– Grouping or roles membership– Input validation

Стандартные пути обработки угроз

1. Диаграмма соответствует последнему коду?2. Все угрозы учтены?3. Есть STRIDE в случаях доверительных границ?4. Тестировщики, а вы посмотрели диаграмму?5. Каждая угроза обработана?6. Обработка угроз выполнена правильно?

Этап: Validate

1. Бесплатная (https://www.microsoft.com/en-us/sdl/adopt/threatmodeling.aspx)

2. Поддерживается и развивается Microsoft, как инструмент SDL

3. Автогенерация угроз по моделе STRIDE4. Генерирует отчет в HTML формате

Microsoft Threat Modelling tool 2014

Microsoft Threat Modelling tool 2014

Microsoft Threat Modelling tool 2014

Microsoft Threat Modelling tool 2014

Microsoft Threat Modelling tool 2014

Детали угроз. Обработка.

Генерируем отчет (HTML формат)

Excel Word

Mind Mapshttp://mozilla.github.io/seasponge

Альтернативы

1. Моделирование угроз - командная работа2. Начинайте как можно раньше3. Никогда не удаляйте модели, это история4. Правильно определяйте ресурсы5. Не копайте слишком глубоко6. Старайтесь не изобретать велосипеды, это слишком

рисковано– эксперты по безопасности тоже люди

7. Здравый смысл никто не отменял

Выводы

Вспомним цель

После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое

STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.

Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154

Вспомним цель

Достигнута?

После этого мастер-класса, вы узнаете о том, что такое модерирование угроз, зачем оно применяется, что такое

STRIDE, кто вовлечен в моделирование. Узнаете, как можно построить модель угроз.

Image by http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154http://daisy7.deviantart.com/art/SOP-entry-Red-Panda-198819154

Добра

Сергей Атрощенковinfo@barbaricqa.com

http://blog.viacode.com