• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2024/2025

Разработка защищенных программных систем

Статус: Маго-лего
Когда читается: 1, 2 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 48

Программа дисциплины

Аннотация

В современном мире остро стоит вопрос безопасности приложений, и специалисты в области разработки защищенных программных систем являются крайне востребованными. Данный курс нацелен на студентов, не обладающих глубокими знаниями программирования, и этот курс позволит им освоить основные парадигмы в разработке. Вместе с тем студенты познакомятся с основными методами разработки защищенных программ, узнают, какие ошибки, совершаемые при создании программ, приводят к возникновению уязвимостей и как избежать таких ошибок, узнают методы и автоматизированные средства для анализа разработанного программного кода с точки зрения безопасности.
Цель освоения дисциплины

Цель освоения дисциплины

  • Изучение безопасной разработки приложений
  • Научиться применять методы и принципы безопасной разработки приложений на практике
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает какие взаимосвязи и отношения между потоками существуют в приложениях
  • Знает общие принципы и подходы к моделированию угроз
  • Знает как делать декомпозицию приложений
  • Знает подходы к оценке субъективных и количественных моделей рисков
  • Знает атаки межсайтового скриптинга
  • Владеет подходами к устранению уязвимостей к атакам инъекций
  • Знает какие проблемы влечет за собой использование уязвимых компонентов
  • Знает общие принципы прикладной криптографии
  • Знает базовые требования криптографической защиты в программных проектах
  • Знает наиболее распространённые атаки и проблемы, связанные с криптографией
  • Владеет применением генераторов случайных чисел и функций хэширования в кодовой базе
  • Знает архитектуру безопасных приложений
  • Знает подходы к тестированию безопасности, может оценить преимущества и ограничения каждого
  • Знает как применять практики 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 module
    0.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

Авторы

  • Аксенова Ольга Вениаминовна
  • Яганова Мадина Владимировна
  • Евсютин Олег Олегович