-
12 weeks
-
about 9 hours per week
-
3 credit points
Курс охватывает круг вопросов по безопасной разработке программного обеспечения (ПО), способы снижения рисков информационной безопасности, методологии разработки безопасного ПО, тестирование кода.
About
Курс посвящен безопасному программированию. Цель курса – дать студентам представление о полном цикле разработки безопасного программного обеспечения. В результате обучения происходит формирование базовой системы знаний и навыков, позволяющей понимать принципы безопасного программирования, выбирать средства и технологии разработки, оценивать риски информационной безопасности.
В курсе используются следующие инновационные технологии обучения: электронный конспект; контрольные опросы; презентации лекций; задания на лабораторные работы в электронной форме; задания, направленные на развитие творческого мышления; проблемное обучение.
Безопасное программирование – ваш разумный выбор.
В состав курса входят видеолекции, практические работы, самостоятельная работа, опросы, тесты, итоговый тест. Курс рассчитан на 12 недель. Недельная учебная нагрузка обучающегося по курсу - 9 часов. Общая трудоемкость курса в зачетных единицах – 3 з.е.
Information resources
- Ховард М., Лебланк Д. Защищенный код [Электронный ресурс] – Русская редакция, 2005. Режим доступа: https://vk.com/doc10903696_272067042?hash=e2c0b440a2ff552620&dl=5746b6988847513ecc
- Common Weakness Enumeration [Электронный ресурс]. Режим доступа: https://cwe.mitre.org/index.html
- OWASP Secure Coding Practices-Quick Reference Guide [Электронный ресурс]. Режим доступа: https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/
- Шаньгин, В.Ф. Информационная безопасность [Электронный ресурс]: учеб. пособие — Электрон. дан. — Москва: ДМК Пресс, 2014. — 702 с. — Режим доступа: https://e.lanbook.com/book/50578. — Загл. с экрана.
- Жигулин, Г.П. Организационное и правовое обеспечение информационной безопасности [Электронный ресурс]: учеб. пособие — Электрон. дан. — Санкт-Петербург: НИУ ИТМО, 2014. — 173 с. — Режим доступа: https://e.lanbook.com/book/70952. — Загл. с экрана.
Requirements
Необходимыми условиями для освоения дисциплины являются: знание основ информатики, английского языка на уровне понимания справочной системы, владение компьютером на уровне пользователя.
Дополнительный инструментарий:
- Средства разработки и отладки кода.
- Средства тестировании кода.
- Офисные пакеты.
- Инструментарий для вёрстки документов.
- Средства анализа кода.
Course program
- Неделя 1. Основные понятия:
- Понятие «безопасность».
- Понятия «хакер», «атакующий», «злоумышленник».
- Понятия «безопасное программирование», «sеcure coding» и «defensive programming».
- Важность безопасного программирования.
- Основные принципы разработки безопасного программного обеспечения (ПО).
- Неделя 2. Разбор стандарта о разработке безопасного программного обеспечения:
- Ключевые моменты.
- Разбор предлагаемых мер по защите.
- Документы, которые должны быть в наличии: список и содержание.
- Соответствие другим нормативным актам и стандартам.
- Аспекты, которые не покрывает стандарт.
- Аналоги в мире.
- Неделя 3. Способы снижения рисков информационной безопасности:
- Защита инфраструктуры среды разработки ПО.
- Разработка безопасного ПО на всех этапах жизненного цикла.
- Организация тестирования ПО.
- Управление изменениями требований.
- Обеспечения конфиденциальности информации, получаемой в ходе разработки и анализа кода, тестирования ПО.
- Дизайн и архитектура ПО.
- Передача исходного кода ПО третьей стороне .
- Неделя 4. Классификация и виды уязвимостей:
- Классификаторы уязвимостей.
- Система подсчета рисков уязвимости.
- Виды уязвимостей.
- Неделя 5. Механизмы для защиты от ошибок в ПО:
- Встроенные в компилятор и фреймворк.
- Встроенные в операционную систему.
- Распространенные ошибки.
- Неделя 6. Проектирование безопасных пользовательских интерфейсов:
- Основные принципы.
- Распространенные ошибки.
- Неделя 7. Тестирование кода:
- Статический анализ и экспертиза кода.
- Функциональное тестирование программы.
- Тестирование на проникновение.
- Динамический анализ кода.
- Фаззинг-тестирование.
- Неделя 8. Сертификация ПО:
- Обоснование необходимости.
- Законодательство в мире.
- Процедура сертификации ПО в Российской Федерации.
- Неделя 9. Что делать, если уже есть приложение:
- План реагирования на инциденты информационной безопасности.
- Средства защиты приложений.
- Моделирование угроз.
- Проверка на защищенность.
- Неделя 10. Информационная безопасность компании:
- Системы электронного документооборота: защита информации и информационная безопасность.
- Фильтрация спама как элемент политики информационной безопасности.
- Неделя 11. Кибервойны:
- Немного из истории.
- Принципы ведения Кибервойн.
- Основные этапы.
- Неделя 12. Финальный тест.
Education results
- Знания общих принципов проектирования и разработки безопасного программного обеспечения, виды уязвимостей, способы защиты от ошибок в программном обеспечении (РО-1)
- Владеть навыками моделирования угроз (РО-2)
- Владеть способами снижения рисков информационной безопасности (РО-3)
- Владеть навыками тестирования кода (РО-4)
- Знание законодательной базы Российской Федерации в области информационной безопасности (РО-5)
Formed competencies
09.03.01 Информатика и вычислительная техника
09.03.02 Информационные системы и технологии
09.03.04 Программная инженерия
10.03.01 Информационная безопасность
- Планирует разработку или восстановление требований к системе (ПК-2.1)
- Разрабатывает техническое задание на систему (ПК-2.5)
- Управляет безопасностью сетевых устройств и программного обеспечения (ПК-3.3)
- Диагностирует отказы и ошибки сетевых устройств и программного обеспечения (ПК-3.4)