Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Доклад Кирилла Иванова (Positive Technologies) о требованиях по безопасности в архитектуре ПО, принципах построения архитектуры и многом другом на PHDays VII.

695d44581c32d62f5393163739a66846?s=128

Positive Development User Group

September 25, 2017
Tweet

More Decks by Positive Development User Group

Other Decks in Programming

Transcript

  1. Заголовок ptsecurity.com Требования по безопасности в архитектуре ПО Иванов Кирилл

    Архитектор Positive Technologies
  2. Заголовок Цикл жизни ПО Требования Анализ и Проектирование Разработка Тестирование

    Релиз и Поддержка
  3. Заголовок Требования Требования Анализ и Проектирование Разработка Тестирование Релиз и

    Поддержка
  4. Заголовок Архитектурно-значимые требования: • Функциональные требования • Нефункциональные требования (атрибуты

    качества) • Ограничения • Требования цикла жизни ПО Требования
  5. Заголовок • Производительность • Доступность • Надежность • Удобство использования

    • Легкость изменения • Безопасность • Тестируемость • … Нефункциональные требования
  6. Заголовок • Одноразовые • Разработал и забыл • Постоянные •

    Требуют поддержки при новых изменениях Нефункциональные требования
  7. Заголовок • Конфиденциальность • Приватность • Разграничение доступа • Целостность

    • Подлинность данных • Защита от искажения • Доступность • Аудит Требования по безопасности
  8. Заголовок Сценарий нефункционального требования Источник стимула Неизвестный пользователь Артефакт SSO

    Сервис Измерение реакции Не менее 5 секунд Стимул Вводит логин Реакция Валидирует логин Окружение Онлайн, публичная сеть
  9. Заголовок • Источник стимула • Пользователь • Другая система •

    Стимул • Атака на систему • Артефакт • Сервис в целом • Данные Формулировка требования
  10. Заголовок • Окружение • Онлайн или офлайн • Под нагрузкой

    или нет • Подключена ли к сети • Положение: • в ДМЗ, • за сетевым экраном, • в открытой сети. Формулировка требования
  11. Заголовок • Реакция • Аутентификация пользователей • Авторизация действий •

    Аудит действий • Ведение лога транзакций • Нотификация операторов Формулировка требования
  12. Заголовок • Измерение реакции • Время выполнения операции • Сложность

    восстановления после атаки • Вероятность обнаружения атаки • Скорость/вероятность идентификации источника атаки • Процент доступных сервисов после атаки • Процент потерянных данных Формулировка требования
  13. Заголовок Идентифицированный пользователь с правами администратора изменяет содержимое каталога. При

    штатной работе системы в течение дня возможно определить кто изменил каталог. Хакер изменяет пакет данных к Сервису Б, приходящий от Сервиса А из той же сети, Сервис Б не принимает пакет в обработку, 0% данных изменилось. Примеры формулировок
  14. Заголовок • Надо немного знать ИБ • Заказчик их не

    формулирует • Есть стандарты! • ISO/IEC DTR 10181 • ГОСТ Р ИСО/МЭК ТО 13335 • PCI DSS • … • Необходимо думать в негативном ключе Особенность требований по безопасности
  15. Заголовок Пользователь в банкомате снимает деньги. • А если это

    не он? • Пусть карточка его подтвердит • А если карточка не у него? • Пусть введен ПИН, известный ему • А если он не забрал карточку? • Напоминание, удержание • А если… Негативное мышление: Пример
  16. Заголовок Анализ и проектирование Требования Анализ и Проектирование Разработка Тестирование

    Релиз и Поддержка
  17. Заголовок • Все требования не реализуешь • Что делать? •

    Ставим приоритеты в попугаях (Low, Medium, High) • ATAM (Architecture Trade-off Analysis Method) предлагает: • Важность для успеха системы • Сложность разработки (Риск) • Безопасность: Риск атаки для системы и данных Анализ
  18. Заголовок • Защита от атак • Аутентификация пользователей • Авторизация

    пользователей • Поддерживать секретность данных • Поддерживать целостность • Ограничение доступа к ресурсам • Ограничение воздействия • Обнаружение атак • Восстановление после атак • Обнаружение атаки по аудиту • Восстановление данных и работоспособности Проектирование: Тактики
  19. Заголовок • Separation of Concerns • Secured Infrastructure • Hexagonal

    Architecture • Single Sign On • Event Sourcing • GateKeeper (API Gateway) Проектирование: Паттерны и подходы
  20. Заголовок Hexagonal Architecture

  21. Заголовок Hexagonal Architecture: Риски H L H H H M

    M L L L L M L L
  22. Заголовок Single Sign On

  23. Заголовок Single Sign On • OAuth 2.0 • OpenID Connect

    • WS Federation • SAML
  24. Заголовок Event Sourcing Состояние – последовательность примененных событий Событие 1

    Событие 2 Событие 3 Состояние
  25. Заголовок Event Sourcing Событие – результат применения команды к состоянию

    Состояние Команда Событие Состояние
  26. Заголовок Event Sourcing: пример +100р. -50р. +100р. -40р. Состояние счета

    = сумма транзакций
  27. Заголовок Event Sourcing: метаданные +100р. Вася -50р. Петя +100р. Катя

    -40р. Коля Аудит: Добавим пользователей
  28. Заголовок Event Sourcing: исследование истории +100р. Вася -50р. Петя +100р.

    Катя -40р. Коля Обнаружения сбоя/атаки
  29. Заголовок Event Sourcing: компенсация +100р. Вася -50р. Петя +100р. Катя

    -40р. Коля -100р. Админ Восстановление после сбоя/атаки
  30. Заголовок GateKeeper: Gateway protection Клиент GateWay Сервис Сервис Публичное API

    Доверенное API
  31. Заголовок Разработка Требования Анализ и Проектирование Разработка Тестирование Релиз и

    Поддержка
  32. Заголовок • Ревью кода • Используйте готовые крипто-инструменты • Статический

    анализ кода (SAST) Разработка
  33. Заголовок Тестирование Требования Анализ и Проектирование Разработка Тестирование Релиз и

    Поддержка
  34. Заголовок Вспомнить требования… Тестирование

  35. Заголовок Тестирование Источник стимула Неизвестный пользователь Артефакт SSO Сервис Измерение

    реакции Не менее 5 секунд Стимул Вводит логин Реакция Валидирует логин Окружение Онлайн, публичная сеть
  36. Заголовок Цикл жизни ПО Требования Анализ и Проектирование Разработка Тестирование

    Релиз и Поддержка
  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. Заголовок ptsecurity.com Спасибо! Спасибо!