51
XVII Международная конференция по вопросам качества программного обеспечения Моделирование угроз для приложений Сергей Атрощенков VIAcode, Санкт- Петербург. Минск, 2015 Уровень сложности: •

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

  • Upload
    sqalab

  • View
    1.708

  • Download
    1

Embed Size (px)

Citation preview

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

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

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

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

Минск, 2015

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

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

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

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

В IT с 2000

Тестирую с 2007

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

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

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

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

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

Цель

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Diagram

Identify Threats

Mitigate

Validate

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

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

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

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

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

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

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

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

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

Внеш

ние

сущ

ност

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

системы Про

цесс • DLL

• Services• Web

Services

Пот

оки

данн

ых • RPC

• Network• Function

call Хран

илищ

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

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

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

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

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

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

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

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

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

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

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

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

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

STRIDE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Взбодримся?

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

Этап: Mitigate

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

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

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

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

Tampering– ACLs (Access control list)– Digital signatures

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

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

Repudiation– Secure logging and auditing

Information Disclosure– Encryption– ACLs

DoS– ACLs– Filtering

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

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

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

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

Этап: Validate

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

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

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

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

Microsoft Threat Modelling tool 2014

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

Microsoft Threat Modelling tool 2014

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

Microsoft Threat Modelling tool 2014

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

Microsoft Threat Modelling tool 2014

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

Microsoft Threat Modelling tool 2014

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

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

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

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

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

Excel Word

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

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

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

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

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

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

Выводы

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

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

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

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

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

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

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

Достигнута?

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

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

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

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

Добра

Сергей Атрощенков[email protected]

http://blog.viacode.com