Разработка любого софта так или иначе базируется на требованиях. Полный перечень составляют бизнес-цели приложения, различные ограничения и ожидания по качеству (их еще называют NFR). Требования к безопасности ПО относятся к последнему пункту. В ходе доклада будут рассматриваться появление этих требований, управление ими и выбор наиболее важных.
Отдельно будут освещены принципы построения архитектуры приложения, при наличии таких требований и без, и продемонстрировано, как современные (и хорошо известные) подходы к проектированию приложения помогают лучше строить архитектуру приложения для минимизации ландшафта угроз.
8. ЗаголовокСценарий нефункционального требования
Источник стимула
Неизвестный пользователь Артефакт
SSO Сервис
Измерение реакции
Не менее 5 секунд
Стимул
Вводит логин
Реакция
Валидирует логин
Окружение
Онлайн, публичная сеть
9. Заголовок
• Источник стимула
• Пользователь
• Другая система
• Стимул
• Атака на систему
• Артефакт
• Сервис в целом
• Данные
Формулировка требования
10. Заголовок
• Окружение
• Онлайн или офлайн
• Под нагрузкой или нет
• Подключена ли к сети
• Положение:
• в ДМЗ,
• за сетевым экраном,
• в открытой сети.
Формулировка требования
11. Заголовок
• Реакция
• Аутентификация пользователей
• Авторизация действий
• Аудит действий
• Ведение лога транзакций
• Нотификация операторов
Формулировка требования
12. Заголовок
• Измерение реакции
• Время выполнения операции
• Сложность восстановления после атаки
• Вероятность обнаружения атаки
• Скорость/вероятность идентификации источника атаки
• Процент доступных сервисов после атаки
• Процент потерянных данных
Формулировка требования
13. Заголовок
Идентифицированный пользователь с правами
администратора изменяет содержимое каталога. При штатной
работе системы в течение дня возможно определить кто изменил
каталог.
Хакер изменяет пакет данных к Сервису Б, приходящий от
Сервиса А из той же сети, Сервис Б не принимает пакет в
обработку, 0% данных изменилось.
Примеры формулировок
14. Заголовок
• Надо немного знать ИБ
• Заказчик их не формулирует
• Есть стандарты!
• ISO/IEC DTR 10181
• ГОСТ Р ИСО/МЭК ТО 13335
• PCI DSS
• …
• Необходимо думать в негативном ключе
Особенность требований по безопасности
15. Заголовок
Пользователь в банкомате снимает деньги.
• А если это не он?
• Пусть карточка его подтвердит
• А если карточка не у него?
• Пусть введен ПИН, известный ему
• А если он не забрал карточку?
• Напоминание, удержание
• А если…
Негативное мышление: Пример
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)
Проектирование: Паттерны и подходы