Магистратура
2024/2025
Разработка защищенных программных систем
Статус:
Курс по выбору (Кибербезопасность)
Направление:
10.04.01. Информационная безопасность
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Прогр. обучения:
Кибербезопасность
Язык:
русский
Кредиты:
6
Программа дисциплины
Аннотация
В современном мире остро стоит вопрос безопасности приложений, и специалисты в области разработки защищенных программных систем являются крайне востребованными. Данный курс нацелен на студентов, не обладающих глубокими знаниями программирования, и этот курс позволит им освоить основные парадигмы в разработке. Вместе с тем студенты познакомятся с основными методами разработки защищенных программ, узнают, какие ошибки, совершаемые при создании программ, приводят к возникновению уязвимостей и как избежать таких ошибок, узнают методы и автоматизированные средства для анализа разработанного программного кода с точки зрения безопасности.
Цель освоения дисциплины
- Изучение безопасной разработки приложений
- Научиться применять методы и принципы безопасной разработки приложений на практике
Планируемые результаты обучения
- Знает какие взаимосвязи и отношения между потоками существуют в приложениях
- Знает общие принципы и подходы к моделированию угроз
- Знает как делать декомпозицию приложений
- Знает подходы к оценке субъективных и количественных моделей рисков
- Знает атаки межсайтового скриптинга
- Владеет подходами к устранению уязвимостей к атакам инъекций
- Знает какие проблемы влечет за собой использование уязвимых компонентов
- Знает общие принципы прикладной криптографии
- Знает базовые требования криптографической защиты в программных проектах
- Знает наиболее распространённые атаки и проблемы, связанные с криптографией
- Владеет применением генераторов случайных чисел и функций хэширования в кодовой базе
- Знает архитектуру безопасных приложений
- Знает подходы к тестированию безопасности, может оценить преимущества и ограничения каждого
- Знает как применять практики SSDLC в различных методологиях управления жизненным циклом ПО
- Знает базовые понятия DevOps
- Знает какие существуют инструменты обеспечения безопасности, защита инфраструктуры, защита приложений, архитектура DevSecOps контура, встраивание в pipeline, on-boarding команд разработки
- Знает жизненный цикл безопасной разработки ПО
- Знает нормативные требования, стандарты и лучшие практики по безопасной разработке ПО, умеет оценить эффективность
- Знает архитектуру кластера, основные концепции, единицы, сетевой доступ, хранилища данных, разделение сред, логи и мониторинг
- Знает общие концепты ИБ в средах оркестрации
- Владеет навыками проведения quality assurance, application security
- Знает базовые понятия DevOps.
- Знает какие существуют инструменты обеспечения безопасности, защита инфраструктуры, защита приложений, архитектура DevSecOps контура, встраивание в pipeline, on-boarding команд разработки.
- Знает жизненный цикл безопасной разработки ПО.
- Умеет встраивать контроли ИБ в процесс разработки, смежные процессы, составлять план внедрения практик безопасной разработки.
- Знает нормативные требования, стандарты и лучшие практики по безопасной разработке ПО.
- Умеет оценить эффективность.
- Знает архитектуру кластера, основные концепции, единицы, сетевой доступ, хранилища данных, разделение сред, логи и мониторинг.
- Умеет управлять кластером, управлять ролями, средствами мониторинга, установкой приложений в кластер.
- Знает общие концепты ИБ в средах оркестрации.
- Умеет применять механизмы защиты k8s, расширенные механизмы контроля.
- Владеет навыками проведения quality assurance, application security.
- Знает ролевую модель процесса безопасной разработки ПО, формирование бизнес-процессов, распределение ответственности.
- Познакомился, с представлением приложения в виде информационных потоков.
- Знает какие взаимосвязи и отношения между потоками существуют в приложениях.
- Умеет находить причинно-следственные связи между понятиями безопасности и информационными потоками приложений.
- Знает общие принципы и подходы к моделированию угроз.
- Знает как делать декомпозицию приложений.
- Понимает, как проводить классификацию, анализ и ранжирование угроз.
- Знает подходы к оценке субъективных и количественных моделей рисков.
- Понимает, как формулировать контрмеры.
- Знает формальное определение защищённого приложения, уязвимая машина Тьюринга.
- Понимает неразрешимость задачи поиска уязвимостей.
- Умеет строить формальные модели уязвимостей на основе моделей угроз.
- Знает практическое применение моделей уязвимостей.
- Умеет практически применять модели уязвимостей.
- Знает, что является причиной появления уязвимостей к инъекциям.
- Знает, какие эффективные способы защиты от инъекций существуют.
- Знает атаки межсайтового скриптинга.
- Владеет подходами к устранению уязвимостей к атакам инъекций.
- Познакомился с проблемами небезопасной десериализации, неэффективного контроля доступа и внедрения внешних сущностей XML.
- Знает какие проблемы влечет за собой использование уязвимых компонентов.
- Знает общие принципы прикладной криптографии.
- Умеет выделять ошибки использования криптографических примитивов в кодовой базе.
- Знает базовые требования криптографической защиты в программных проектах.
- Знает наиболее распространённые атаки и проблемы, связанные с криптографией.
- Владеет применением генераторов случайных чисел и функций хэширования в кодовой базе.
- Знает реальные примеры работы с уязвимостями и атаками.
- Знает архитектуру безопасных приложений.
- Умеет составлять требования к проектированию.
- Знает типовые подходы, инструкции, типологии проектирования и разработки безопасных приложений.
- Знает подходы к тестированию безопасности, может оценить преимущества и ограничения каждого.
- Умеет применять ручное тестирование.
- Знает средства автоматизации тестирования безопасности и специфику их использования.
- Знает как применять практики SSDLC в различных методологиях управления жизненным циклом ПО.
Содержание учебной дисциплины
- 1. Введение в DevOps и DevSecOps
- 2. Жизненный цикл безопасной разработки
- 3. Методология безопасной разработки
- 4. Работа в кластере kubernetes
- 5. Средства защиты devops инфраструктуры
- 6. Средства защиты приложений
- 7. Выстраивание бизнес-процесса безопасной разработки
- 8. Основы безопасности приложений. Базовые понятия
- 9. Моделирование угроз и оценка рисков
- 10. Формализация уязвимостей
- 11. Уязвимости и атаки
- 12. Проблемы безопасности прикладной криптографии
- 13. Реальные кейсы уязвимостей и атак
- 14. Проектирование и разработка безопасных приложений.
- 15. Тестирование безопасности
- 16. Управление разработкой безопасных приложений
Элементы контроля
- Домашние задания с самопроверкой по темам 4,5,9,11,12,15Процедура сдачи: 1. Студент выполняет все предлагаемые этапы задания. 2. Студент прикрепляет ссылку на выполненное задание в LMS. По ссылке есть доступ. 3. Название файла содержит фамилию и имя студента и номер ДЗ
- Домашние задания с проверкой преподавателем 6,7,14Процедура сдачи: 1. Студент выполняет все предлагаемые этапы задания (для каждого задания предусмотрены индивидуальные требования). 2. Студент прикрепляет ссылку на выполненное задание в LMS. По ссылке есть доступ. 3. Преподаватель в LMS оставляет обратную связь на выполненную работу
- Тесты по лекциямПроцедура сдачи: Студенты выполняют тест в LMS. Тест содержит 5 вопросов. При ответе на вопрос нужно выбрать один или несколько правильных ответов. В этом случае в тексте вопроса будет дано особое указание. Время выполнения теста - 20 минут. Студент может пройти тест 2 раз.
- ЭкзаменПроцедура сдачи экзамена: Итоговый экзамен по дисциплине проводится в форме решения итогового практического задания. 1. Студент выполняет все этапы итогового задания в соответствии с требованиями и поставленной задачей. 2. Прикрепляет ссылку в LMS на выполненное задание, доступ по ссылке открыт для комментирования. 3. Название файла содержит ФИО студента и название ДЗ (Итоговое практическое задание) 4. Подготовлена презентация для защиты своего итогового практического задания. 5. Студент приходит на экзамен и защищает проект перед преподавателем и одногруппниками в режиме онлайн 6. Преподаватель оценивает работу и дает обратную связь в режиме онлайн
Промежуточная аттестация
- 2024/2025 2nd module0.45 * Домашние задания с проверкой преподавателем 6,7,14 + 0.2 * Домашние задания с самопроверкой по темам 4,5,9,11,12,15 + 0.15 * Тесты по лекциям + 0.2 * Экзамен
Список литературы
Рекомендуемая основная литература
- Ачилов, Р. Н. Построение защищенных корпоративных сетей : учебное пособие / Р. Н. Ачилов. — Москва : ДМК Пресс, 2013. — 250 с. — ISBN 978-5-94074-884-7. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/66472 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Бабушкин, В. М. Разработка защищенных программных средств информатизации производственных процессов предприятия : учебное пособие / В. М. Бабушкин. — Казань : КНИТУ-КАИ, 2020. — 256 с. — ISBN 978-5-7579-2463-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/193486 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Защита информации и информационная безопасность - Сычев Ю.Н. - НИЦ ИНФРА-М - 2023 - https://znanium.com/catalog/product/1912987 - 911225 - ZNANIUM