
- •Архитектуры и модели программ и знаний
- •Классическая “водопадная” схема жизненного цикла разработки программы (1970е – 1980е гг.)
- •Водопадная модель: Требования и цели
- •Водопадная модель: Спецификация
- •Водопадная модель: Проектирование
- •Водопадная модель: Реализация (кодирование)
- •Водопадная модель: Тестирование (верификация)
- •Водопадная модель: Производство и выпуск
- •Водопадная модель: Сопровождение (поддержка)
- •Водопадная модель: Достоинства и недостатки
- •Быстрое прототипирование (1980е – 1990е гг.)
- •Общая схема SDLC и его связь с “водопадной” моделью
- •SDLC и "водопадная модель"
- •STRIDE – классификация угроз
- •Оценка атак на программное обеспечение:
- •Вопросы и домашнее задание к лекции 3

Быстрое прототипирование (1980е – 1990е гг.)
Данная модель предложена как альтернатива чисто водопадной схеме, как более реалистичная
Направлена на быстрое получение рабочего прототипа
1.Требования и цели
2.Спецификация прототипа
3.Проектирование прототипа
4.Реализация прототипа
5.Тестирование прототипа
6.Представление прототипа заказчику; получение рекомендаций
7.Далее – циклический процесс постепенного(C) СафоновулучшенияВ.О. 2012 прототипа

Общая схема SDLC и его связь с “водопадной” моделью
(C) Сафонов В.О. 2012

SDLC и "водопадная модель"
На каждом этапе водопадной модели SDLC вводит дополнительные действия, направленные на улучшение безопасности системы (моделирование атак, анализ рисков, тестирование на безопасность и др.)
Проект реализации подсистемы безопасностиИспользование инструментов разработки безопасных программ (например, Microsoft FxCop)
Тестирование на безопасностьРазработка находится под постоянным контролем эксперта
или экспертной группы по безопасности (security buddy), без одобрения которых ни один этап не принимаетсяНеобходимо обучение каждого разработчика принципам разработки безопасных программ (выполняется экспертом по безопасности)
(C) Сафонов В.О. 2012

Принципы SD3+C
Безопасность как результат проектирования (Secure by Design)
Защита приложения и его данных
Безопасность по умолчанию (Secure by Default)
Разработчики должны предполагать, что возможны уязвимые места в системе безопасности.
Принципы: наименьшие привилегии и предотвращение отказов системы.
Может привести к замедлению работы системы, необходимости дополнительных действий пользователя (например, подтверждению необходимости загрузки файлов из сети), однако это оправдано, с точки зрения безопасности (предотвращает многие разновидности атак)
Безопасность при развертывании (Secure in Deployment)
Документация и инструменты для пользователей и администраторов. Простота инсталляции обновлений безопасности
Коммуникации
(Communications)
Открытая и оперативная коммуникация с системными администраторами и пользователями с целью помочь им в настройке и улучшении безопасности
(C) Сафонов В.О. 2012

STRIDE – классификация угроз
Spoofing – букв.: пародирование, розыгрыш
Например, воспроизведение транзакции, выполняющей аутентификацию пользователя (“подделка” под пользователя)
Tampering – Несанкционированное изменение
Изменение данных с целью атаки Например, модификация аутентификационных файлов с целью
добавления нового пользователя
Repudiation – букв.: категорическое несогласие, отрицание, отказ
Пример из повседневной жизни: отрицание того, что Вы купили товары, которые Вы на самом деле купили.
Драйвер может быть подвержен repudiation-угрозе, если он не выполняет журналирование (logging) действий, которые могут привести к нарушению безопасности.
Например, драйвер видеоустройства, который не фиксирует запросы на изменение фокуса и уменьшение размеров изображения
(который могут привести к его искажению) Information disclosure – Несанкционированный доступ к конфиденциальной информации
Например: Получение списка номеров кредитных карт клиентов банка
Denial of service – Отказ в обслуживании
Например: сознательное достижение эффекта излишней загрузки процессора, используя недостатки хеш-алгоритма; генерация
миллиона фиктивных запросов к Web-серверу и т.д.
Elevation of privilege – Увеличение привилегий
(C) Сафонов В.О. 2012
Например: Запуск привилегированной программы для выполнения

Оценка атак на программное обеспечение:
Схема DREAD
Damage - Ущерб
Reproducibility - Воспроизводимость
Как часто происходит и можен ли быть
воспроизведена (смоделирована)
Exploitability – здесь: Квалификация
(уровень)
Опыт и квалификация (хакера), необходимые
для атаки
Affected users – Против каких
пользователей направлена
Discoverability – Может ли быть
обнаружена
(C) Сафонов В.О. 2012

Вопросы и домашнее задание к лекции 3
1.Разработайте простую учебную программу (например,
для решения вычислительной задачи), сначала следуя
водопадной схеме, затем – следуя схеме быстрой разработки прототипа. Проанализируйте достоинства и
недостатки каждой из двух схем на основе Вашего опыта
2.Введите в Вашу разработку элементы SDLC: на каждом
этапе учитывайте требования безопасности; составьте проект подсистемы безопасности; выполните
тестирование подсистемы безопасности
3.Проанализируйте, в какой степени используемое Вами программное обеспечение (браузер, редакторы, ОС и др.) следует принципам SD3C
(C) Сафонов В.О. 2012