Безопасность компьютерных систем 2017

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Безопасность компьютерных систем

Курс по выбору для студентов 3 и 4 курса ФКН ВШЭ, осень 2017 года (1 и 2 модуль). Курс состоит из лекций и семинаров. Основной акцент сделан на безопасности приложений и разработке безопасного программного обеспечения.

План курса

Лекции:

  1. (05.09) Вводная лекция. Безопасность приложений как фактор технологической конкуренции. Уязвимости программного обеспечения и атаки на них.
  2. (12.09) Основные понятия и определения. Модель нарушителя.
  3. (19.09) Безопасность приложений. Мобильные приложений и их уязвимости.
  4. (26.09) Безопасность приложений. Уязвимости веб-приложений ч. 1.
  5. (03.10) Безопасность приложений. Уязвимости веб-приложений ч. 2.
  6. (10.10) Безопасность приложений. Исполнение программ на процессоре, стек, подпрограммы и функции, передача аргументов, возврат значения. Системные вызовы. Размещение объектов в памяти: статическое, динамическое, автоматическое. Загрузчик программных модулей. Формат исполняемых файлов ELF. Зависимости модулей. Символы. Уязвимости, связанные с переполнением буфера.Уязвимости, связанные с подменой программных модулей. Уязвимости, связанные с некорректной проверкой прав доступа, TOCTOU.
  7. (17.10) Безопасность приложений. Уязвимости переполнения кучи. Механизмы защиты в современных операционных систем. ASLR, защита стека. Методы обхода.
  8. (31.10) Безопасность приложений. Secure Development Life Cycle ч. 1
  9. (7.11) Безопасность приложений. Secure Development Life Cycle ч. 2
  10. (14.11) Механизмы безопасности приложений в операционных системах.
  11. (21.11) Криптография. Введение и история
  12. (28.11) Криптография. Симметричные шифры и атаки на них.
  13. (5.12) Криптография, Асимметричные шифры и атаки на них.
  14. (12.12) Криптография. Приложения - PKI, WoT, Блокчейн.
  15. (19.12) Криптография. Пост-квантовая криптография. Заключение.

Семинары:

  1. (12.09) Уязвимости мобильных приложений ч. 1
  2. (19.09) Уязвимости мобильных приложений ч. 2
  3. (26.09) Веб-уязвимости. Обзор, инструменты.
  4. (03.10) Веб-уязвимости. XSS.
  5. (10.10) Веб-уязвимости. SQLi.
  6. (17.10) Веб-уязвимости. XXE, прочее интересное.
  7. (31.10) Бинарные программы. Инструменты.
  8. (07.11) Бинарные программы. Обнаружение уязвимостей и эксплуатация.
  9. (14.11) Уязвимости в бинарных программах. Advanced.
  10. (21.11) Безопасная разработка.
  11. (28.11) Механизмы безопасности операционных систем на примере Linux Seccomp
  12. (05.12) Атаки на блочные шифры. CBC.
  13. (12.12) Атаки на RSA.

Материалы лекций

Лекционные материалы публикуются по мере продвижения по курсу.


Практические задания

В рамках курса нужно выполнять домашние задания, выдаваемые на семинарах. Всего запланировано 4 задания.

Задание по теме "Уязвимости мобильных приложений"

Задание по теме "Веб-уязвимости"

Задание по теме "Бинарные уязвимости"

Задание по теме "Криптографические уязвимости"

Результаты выполнения заданий

Общее

Итоговый тест

Оценки

Расчет оценки

Вклад в оценку:

  • Практические задания (4 штуки) - 80%
  • Итоговый тест (на экзамене) - 20%

Литература

Основная литература:

  • Michał Zalewski. The Tangled Web: A Guide to Securing Modern Web Applications.
  • Chris Anley, John Heasman, Felix Lindner, Gerardo Richarte. The Shellcoder's Handbook: Discovering and Exploiting Security Holes.
  • Dafydd Stuttard, Marcus Pinto. The Web Application Hacker's Handbook: Detecting and Exploiting Security Flaws.
  • Christopher Swenson, Modern Cryptanalysis: Techniques for Advanced Code Breaking.
  • Æleen Frisch. Essential system administration.
  • Dominic Chell, Tyrone Erasmus, Shaun Colley, Ollie Whitehouse. The Mobile Application Hacker's Handbook

Дополнительная литература:

Контакты