Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,055 views

Published on

Доклад Сергея Атрощенкова на конференции SQA Days-17,
29-30 мая 2015 г., Минск
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

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

×