2022/2023



Разработка защищенных программных систем
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Когда читается:
1-й курс, 2, 3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
6
Контактные часы:
60
Программа дисциплины
Аннотация
В современном мире остро стоит вопрос безопасности приложений, и специалисты в области разработки защищенных программных систем являются крайне востребованными. Данный курс нацелен на студентов, не обладающих глубокими знаниями программирования, и этот курс позволит им освоить основные парадигмы в разработке. Вместе с тем студенты познакомятся с основными методами разработки защищенных программ, узнают, какие ошибки, совершаемые при создании программ, приводят к возникновению уязвимостей и как избежать таких ошибок, узнают методы и автоматизированные средства для анализа разработанного программного кода с точки зрения безопасности.
Цель освоения дисциплины
- Изучение безопасной разработки приложений
- Научиться применять методы и принципы безопасной разработки приложений на практике
Планируемые результаты обучения
- Знает какие взаимосвязи и отношения между потоками существуют в приложениях
- Знает общие принципы и подходы к моделированию угроз
- Знает как делать декомпозицию приложений
- Знает подходы к оценке субъективных и количественных моделей рисков
- Знает атаки межсайтового скриптинга
- Владеет подходами к устранению уязвимостей к атакам инъекций
- Знает какие проблемы влечет за собой использование уязвимых компонентов
- Знает общие принципы прикладной криптографии
- Знает базовые требования криптографической защиты в программных проектах
- Знает наиболее распространённые атаки и проблемы, связанные с криптографией
- Владеет применением генераторов случайных чисел и функций хэширования в кодовой базе
- Знает архитектуру безопасных приложений
- Знает подходы к тестированию безопасности, может оценить преимущества и ограничения каждого
- Знает как применять практики SSDLC в различных методологиях управления жизненным циклом ПО
- Знает базовые понятия DevOps
- Знает какие существуют инструменты обеспечения безопасности, защита инфраструктуры, защита приложений, архитектура DevSecOps контура, встраивание в pipeline, on-boarding команд разработки
- Знает жизненный цикл безопасной разработки ПО
- Знает нормативные требования, стандарты и лучшие практики по безопасной разработке ПО, умеет оценить эффективность
- Знает архитектуру кластера, основные концепции, единицы, сетевой доступ, хранилища данных, разделение сред, логи и мониторинг
- Знает общие концепты ИБ в средах оркестрации
- Владеет навыками проведения quality assurance, application security
Содержание учебной дисциплины
- Раздел 1. Основы безопасности приложений. Базовые понятия
- Раздел 2. Моделирование угроз и оценка рисков
- Раздел 3. Формализация уязвимостей
- Раздел 4. Уязвимости и атаки
- Раздел 5. Проблемы безопасности прикладной криптографии
- Раздел 6. Проектирование и разработка безопасных приложений
- Раздел 7. Тестирование безопасности
- Раздел 8. Управление разработкой безопасных приложений
- Раздел 9. Реальные кейсы уязвимостей и атак
- Раздел 10. Введение в DevOps и DevSecOps
- Раздел 11. Жизненный цикл безопасной разработки
- Раздел 12. Методология безопасной разработки
- Раздел 13. Работа в кластере kubernetes
- Раздел 14. Средства защиты devops инфраструктуры
- Раздел 15. Средства защиты приложений
- Раздел 16. Выстраивание бизнес-процесса безопасной разработки
Элементы контроля
- Домашнее задание с автоматической проверкойПроцедура сдачи домашних заданий: Для выполнения задания студент создаёт Google Doc и заполняет информацию по полученному заданию в нём Студент прикрепляет ссылку на Google Doc. Проверяет, что открыт доступ на комментирование. Название файла содержит фамилию и имя студента и номер ДЗ (ДЗ по Теме 2) Файл прикреплен в личный кабинет и отправлен на проверку. Для заданий к темам: 2,4,5,7 (1 модуля) и 5,6 (2 модуля) предусмотрен чеклист и автоматический ответ для самопроверки студентом своего задания 6, 10 (1 модуля) и 4,7 (2 модуля) предусмотрена проверка преподавателем. Он оставляет обратную связь на выполненную работу в LMS
- Домашнее задание с проверкой преподавателемПроцедура сдачи домашних заданий: Для выполнения задания студент создаёт Google Doc и заполняет информацию по полученному заданию в нём Студент прикрепляет ссылку на Google Doc. Проверяет, что открыт доступ на комментирование. Название файла содержит фамилию и имя студента и номер ДЗ (ДЗ по Теме 2) Файл прикреплен в личный кабинет и отправлен на проверку. Для заданий к темам: 2,4,5,7 (1 модуля) и 5,6 (2 модуля) предусмотрен чеклист и автоматический ответ для самопроверки студентом своего задания 6, 10 (1 модуля) и 4,7 (2 модуля) предусмотрена проверка преподавателем. Он оставляет обратную связь на выполненную работу в LMS
- ТестыСтуденты выполняют тест в LMS. Тест содержит 5 вопросов. При ответе на вопрос нужно выбрать один или несколько правильных ответов. В этом случае в тексте вопроса будет дано особое указание. Время выполнения теста - 1 час. Студент может пройти тест 1 раз.
- ЭкзаменПроцедура сдачи экзамена: Для выполнения задания студент создаёт Google Doc и заполняйте информацию по заданию в нём. Дополнительно студент готовит речь и, по желанию, презентацию о проекте в Google Презентациях. Студент приходит на экзамен и защищает проект перед преподавателем и одногруппниками в режиме онлайн Преподаватель оценивает работу и дает обратную связь в режиме онлайн