Моделирование угроз для приложений
Post on 11-Aug-2015
1.709 Views
Preview:
TRANSCRIPT
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
top related