Магистратура
2024/2025





Разработка защищенных программных систем
Статус:
Курс обязательный (Информационная безопасность и технологии искусственного интеллекта)
Направление:
10.04.01. Информационная безопасность
Когда читается:
1-й курс, 1-4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Матвеев Николай Валентинович
Прогр. обучения:
Информационная безопасность и технологии искусственного интеллекта
Язык:
русский
Кредиты:
12
Программа дисциплины
Аннотация
В современном мире остро стоит вопрос безопасности приложений, и специалисты в области разработки защищённых программных систем являются крайне востребованными. Данный курс нацелен на студентов, не обладающих глубокими знаниями программирования, и этот курс позволит им освоить основные парадигмы в разработке. Вместе с тем студенты познакомятся с основными методами разработки защищённых программ, узнают, какие ошибки, совершаемые при создании программ, приводят к возникновению уязвимостей и как избежать таких ошибок, узнают методы и автоматизированные средства для анализа разработанного программного кода с точки зрения безопасности. В данном курсе будет сделан акцент на программировании на языке С++, однако рассматриваются аспекты безопасной разработки программных средств на разных языках программирования.
Цель освоения дисциплины
- Изучение основ объектно-ориентированного программирования.
- Изучение основ программирования на С++.
- Изучение безопасной разработки приложения.
Планируемые результаты обучения
- Владеет основными понятиями объектно-ориентированного программирования.
- Умеет создавать и использовать паттерны проектирования.
- Знает историю развития программирования.
- Называет основные понятия из области разработки программного обеспечения.
- Знает назначение разработки защищённых приложений.
- Знает отличительные особенности языка С++.
- Умеет использовать базовые конструкции языка С++.
- Умеет использовать базовые конструкции языка С++
- Называет основные угрозы безопасности программного обеспечения для разных систем: переполнение буфера, SQL-инъекции, межсайтовый скриптинг и д.р.
- Знает методы обеспечения безопасности приложений: аутентификация, авторизация, криптография, контроль переполнения буфера.
- Формулирует требования к безопасности ПО и оценивает риски несоблюдения таких требований.
- Владеет инструментами для автоматического анализа программного кода.
- Реализует защищённые приложения.
Содержание учебной дисциплины
- 1. Введение в дисциплину
- 2. Синтаксис С++. Примитивы и объекты
- 3. Объектно-ориентированное программирование
- 4. Библиотека STL и основные структуры данных
- 5. Файловый ввод\вывод
- 6. Потоки и синхронизация
- 7. Паттерны проектирования
- 8. Безопасность приложений
- 9. Разработка защищённых приложений
Элементы контроля
- Лабораторные работы 1
- Экзамен 1Промежуточный контроль по дисциплине проводится в форме устного экзамена в конце изучения курса в присутствии преподавателя. На экзамене студент выбирает экзаменационный билет, который составляется с учетом пройденного материала. После ответа студента преподаватель может ему задать уточняющие вопросы по тематике билета.
- Лабораторные работы 2
- Экзамен 2Итоговый контроль по дисциплине проводится в форме устного экзамена в конце изучения курса в присутствии преподавателя. На экзамене студент выбирает экзаменационный билет, который составляется с учетом пройденного материала. После ответа студента преподаватель может ему задать уточняющие вопросы по тематике билета.
Промежуточная аттестация
- 2024/2025 2nd module0.5 * Лабораторные работы 1 + 0.5 * Экзамен 1
- 2024/2025 4th module0.5 * 2024/2025 2nd module + 0.25 * Лабораторные работы 2 + 0.25 * Экзамен 2
Список литературы
Рекомендуемая основная литература
- C++: базовый курс, Шилдт, Г., 2015
- Язык программирования C++, Страуструп, Б., 2012
- Язык программирования С++ : специальное издание, Страуструп, Б., 2015
Рекомендуемая дополнительная литература
- Программирование : принципы и практика с использованием С++, Страуструп, Б., 2018
- Энтони, У. Параллельное программирование на C++ в действии. Практика разработки многопоточных программ : учебное пособие / У. Энтони , перевод с английского А. А. Слинкин. — Москва : ДМК Пресс, 2012. — 672 с. — ISBN 978-5-94074-448-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/4813 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.