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.

Требования по безопасности в архитектуре ПО

342 views

Published on

Разработка любого софта так или иначе базируется на требованиях. Полный перечень составляют бизнес-цели приложения, различные ограничения и ожидания по качеству (их еще называют NFR). Требования к безопасности ПО относятся к последнему пункту. В ходе доклада будут рассматриваться появление этих требований, управление ими и выбор наиболее важных.
Отдельно будут освещены принципы построения архитектуры приложения, при наличии таких требований и без, и продемонстрировано, как современные (и хорошо известные) подходы к проектированию приложения помогают лучше строить архитектуру приложения для минимизации ландшафта угроз.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Требования по безопасности в архитектуре ПО

  1. 1. Заголовок ptsecurity.com Требования по безопасности в архитектуре ПО Иванов Кирилл Архитектор Positive Technologies
  2. 2. ЗаголовокЦикл жизни ПО Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  3. 3. ЗаголовокТребования Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  4. 4. Заголовок Архитектурно-значимые требования: • Функциональные требования • Нефункциональные требования (атрибуты качества) • Ограничения • Требования цикла жизни ПО Требования
  5. 5. Заголовок • Производительность • Доступность • Надежность • Удобство использования • Легкость изменения • Безопасность • Тестируемость • … Нефункциональные требования
  6. 6. Заголовок • Одноразовые • Разработал и забыл • Постоянные • Требуют поддержки при новых изменениях Нефункциональные требования
  7. 7. Заголовок • Конфиденциальность • Приватность • Разграничение доступа • Целостность • Подлинность данных • Защита от искажения • Доступность • Аудит Требования по безопасности
  8. 8. ЗаголовокСценарий нефункционального требования Источник стимула Неизвестный пользователь Артефакт SSO Сервис Измерение реакции Не менее 5 секунд Стимул Вводит логин Реакция Валидирует логин Окружение Онлайн, публичная сеть
  9. 9. Заголовок • Источник стимула • Пользователь • Другая система • Стимул • Атака на систему • Артефакт • Сервис в целом • Данные Формулировка требования
  10. 10. Заголовок • Окружение • Онлайн или офлайн • Под нагрузкой или нет • Подключена ли к сети • Положение: • в ДМЗ, • за сетевым экраном, • в открытой сети. Формулировка требования
  11. 11. Заголовок • Реакция • Аутентификация пользователей • Авторизация действий • Аудит действий • Ведение лога транзакций • Нотификация операторов Формулировка требования
  12. 12. Заголовок • Измерение реакции • Время выполнения операции • Сложность восстановления после атаки • Вероятность обнаружения атаки • Скорость/вероятность идентификации источника атаки • Процент доступных сервисов после атаки • Процент потерянных данных Формулировка требования
  13. 13. Заголовок Идентифицированный пользователь с правами администратора изменяет содержимое каталога. При штатной работе системы в течение дня возможно определить кто изменил каталог. Хакер изменяет пакет данных к Сервису Б, приходящий от Сервиса А из той же сети, Сервис Б не принимает пакет в обработку, 0% данных изменилось. Примеры формулировок
  14. 14. Заголовок • Надо немного знать ИБ • Заказчик их не формулирует • Есть стандарты! • ISO/IEC DTR 10181 • ГОСТ Р ИСО/МЭК ТО 13335 • PCI DSS • … • Необходимо думать в негативном ключе Особенность требований по безопасности
  15. 15. Заголовок Пользователь в банкомате снимает деньги. • А если это не он? • Пусть карточка его подтвердит • А если карточка не у него? • Пусть введен ПИН, известный ему • А если он не забрал карточку? • Напоминание, удержание • А если… Негативное мышление: Пример
  16. 16. ЗаголовокАнализ и проектирование Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  17. 17. Заголовок • Все требования не реализуешь • Что делать? • Ставим приоритеты в попугаях (Low, Medium, High) • ATAM (Architecture Trade-off Analysis Method) предлагает: • Важность для успеха системы • Сложность разработки (Риск) • Безопасность: Риск атаки для системы и данных Анализ
  18. 18. Заголовок • Защита от атак • Аутентификация пользователей • Авторизация пользователей • Поддерживать секретность данных • Поддерживать целостность • Ограничение доступа к ресурсам • Ограничение воздействия • Обнаружение атак • Восстановление после атак • Обнаружение атаки по аудиту • Восстановление данных и работоспособности Проектирование: Тактики
  19. 19. Заголовок • Separation of Concerns • Secured Infrastructure • Hexagonal Architecture • Single Sign On • Event Sourcing • GateKeeper (API Gateway) Проектирование: Паттерны и подходы
  20. 20. ЗаголовокHexagonal Architecture
  21. 21. ЗаголовокHexagonal Architecture: Риски H L H H HM M L L L L ML L
  22. 22. ЗаголовокSingle Sign On
  23. 23. ЗаголовокSingle Sign On • OAuth 2.0 • OpenID Connect • WS Federation • SAML
  24. 24. ЗаголовокEvent Sourcing Состояние – последовательность примененных событий Событие 1 Событие 2 Событие 3 Состояние
  25. 25. ЗаголовокEvent Sourcing Событие – результат применения команды к состоянию Состояние Команда СобытиеСостояние
  26. 26. ЗаголовокEvent Sourcing: пример +100р. -50р. +100р. -40р. Состояние счета = сумма транзакций
  27. 27. ЗаголовокEvent Sourcing: метаданные +100р. Вася -50р. Петя +100р. Катя -40р. Коля Аудит: Добавим пользователей
  28. 28. ЗаголовокEvent Sourcing: исследование истории +100р. Вася -50р. Петя +100р. Катя -40р. Коля Обнаружения сбоя/атаки
  29. 29. ЗаголовокEvent Sourcing: компенсация +100р. Вася -50р. Петя +100р. Катя -40р. Коля -100р. Админ Восстановление после сбоя/атаки
  30. 30. ЗаголовокGateKeeper: Gateway protection Клиент GateWay Сервис Сервис Публичное API Доверенное API
  31. 31. ЗаголовокРазработка Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  32. 32. Заголовок • Ревью кода • Используйте готовые крипто-инструменты • Статический анализ кода (SAST) Разработка
  33. 33. ЗаголовокТестирование Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  34. 34. Заголовок Вспомнить требования… Тестирование
  35. 35. ЗаголовокТестирование Источник стимула Неизвестный пользователь Артефакт SSO Сервис Измерение реакции Не менее 5 секунд Стимул Вводит логин Реакция Валидирует логин Окружение Онлайн, публичная сеть
  36. 36. ЗаголовокЦикл жизни ПО Требования Анализ и Проектирование РазработкаТестирование Релиз и Поддержка
  37. 37. Заголовок • Software Architecture in Practice (Лен Басс, Пол Клементс, и Рик Казман) • ATAM (http://www.sei.cmu.edu/architecture/tools/evaluate/atam.cfm) • Event Sourcing (https://martinfowler.com/eaaDev/EventSourcing.html) • Hexagonal Architecture (http://fideloper.com/hexagonal-architecture) • SOA Pattens (http://arnon.me/soa-patterns/) Что почитать?
  38. 38. Заголовок ptsecurity.com Спасибо! Спасибо!

×