up
  • Russian

    course language

  • 12 weeks

    course duration

  • about 9 hours per week

    needed to educate

  • 3 credit points

    for credit at your university

Курс охватывает круг вопросов по безопасной разработке программного обеспечения (ПО), способы снижения рисков информационной безопасности, методологии разработки безопасного ПО, тестирование кода.

About

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

Format

В состав курса входят видеолекции, практические работы, самостоятельная работа, опросы, тесты, итоговый тест. Курс рассчитан на 12 недель. Недельная учебная нагрузка обучающегося по курсу - 9 часов. Общая трудоемкость курса в зачетных единицах – 3 з.е.

  1. Ховард М., Лебланк Д. Защищенный код [Электронный ресурс] – Русская редакция, 2005. Режим доступа: https://vk.com/doc10903696_272067042?hash=e2c0b440a2ff552620&dl=5746b6988847513ecc
  2. Common Weakness Enumeration [Электронный ресурс]. Режим доступа: https://cwe.mitre.org/index.html
  3. OWASP Secure Coding Practices-Quick Reference Guide [Электронный ресурс]. Режим доступа: https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/
  4. Шаньгин, В.Ф. Информационная безопасность [Электронный ресурс]: учеб. пособие — Электрон. дан. — Москва: ДМК Пресс, 2014. — 702 с. — Режим доступа: https://e.lanbook.com/book/50578. — Загл. с экрана.
  5. Жигулин, Г.П. Организационное и правовое обеспечение информационной безопасности [Электронный ресурс]: учеб. пособие — Электрон. дан. — Санкт-Петербург: НИУ ИТМО, 2014. — 173 с. — Режим доступа: https://e.lanbook.com/book/70952. — Загл. с экрана.

Requirements

Необходимыми условиями для освоения дисциплины являются: знание основ информатики, английского языка на уровне понимания справочной системы, владение компьютером на уровне пользователя.

Дополнительный инструментарий:

  1. Средства разработки и отладки кода.
  2. Средства тестировании кода.
  3. Офисные пакеты.
  4. Инструментарий для вёрстки документов.
  5. Средства анализа кода.

Course program

  1. Неделя 1. Основные понятия:
    • Понятие «безопасность».
    • Понятия «хакер», «атакующий», «злоумышленник».
    • Понятия «безопасное программирование», «sеcure coding» и «defensive programming».
    • Важность безопасного программирования.
    • Основные принципы разработки безопасного программного обеспечения (ПО).
  2. Неделя 2. Разбор стандарта о разработке безопасного программного обеспечения:
    • Ключевые моменты.
    • Разбор предлагаемых мер по защите.
    • Документы, которые должны быть в наличии: список и содержание.
    • Соответствие другим нормативным актам и стандартам.
    • Аспекты, которые не покрывает стандарт.
    • Аналоги в мире.
  3. Неделя 3. Способы снижения рисков информационной безопасности:
    • Защита инфраструктуры среды разработки ПО.
    • Разработка безопасного ПО на всех этапах жизненного цикла.
    • Организация тестирования ПО.
    • Управление изменениями требований.
    • Обеспечения конфиденциальности информации, получаемой в ходе разработки и анализа кода, тестирования ПО.
    • Дизайн и архитектура ПО.
    • Передача исходного кода ПО третьей стороне  .
  4. Неделя 4. Классификация и виды уязвимостей:
    • Классификаторы уязвимостей.
    • Система подсчета рисков уязвимости.
    • Виды уязвимостей.
  5. Неделя 5. Механизмы для защиты от ошибок в ПО:
    • Встроенные в компилятор и фреймворк.
    • Встроенные в операционную систему.
    • Распространенные ошибки.
  6. Неделя 6. Проектирование безопасных пользовательских интерфейсов:
    • Основные принципы.
    • Распространенные ошибки.
  7. Неделя 7. Тестирование кода:
    • Статический анализ и экспертиза кода.
    • Функциональное тестирование программы.
    • Тестирование на проникновение.
    • Динамический анализ кода.
    • Фаззинг-тестирование.
  8. Неделя 8. Сертификация ПО:
    • Обоснование необходимости.
    • Законодательство в мире.
    • Процедура сертификации ПО в Российской Федерации.
  9. Неделя 9. Что делать, если уже есть приложение:
    • План реагирования на инциденты информационной безопасности.
    • Средства защиты приложений.
    • Моделирование угроз.
    • Проверка на защищенность.
  10. Неделя 10. Информационная безопасность компании:
    • Системы электронного документооборота: защита информации и информационная безопасность.
    • Фильтрация спама как элемент политики информационной безопасности.
  11. Неделя 11. Кибервойны:
    • Немного из истории.
    • Принципы ведения Кибервойн.
    • Основные этапы.
  12. Неделя 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)

Education directions

Отзывы о курсе

Маркина Татьяна Анатольевна

К.т.н.
Position: доцент факультета программной инженерии и компьютерной техники Университета ИТМО

Белозубов Александр Владимирович

К.т.н.
Position: Преподаватель факультета программной инженерии и компьютерной техники Университета ИТМО

course completion certificate

Certificate

По данному курсу возможно получение сертификата Университета ИТМО.

A participant certificate is usually issued upon reaching 60 % of the overall rating, subject to the delivery of works before a hard deadline. The honors certificate is usually issued upon reaching 90 % of the overall rating, subject to the delivery of the work before the soft deadline.

Similar courses