Безопасность компьютерных систем 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) Атаки на блочные шифры.
  13. (12.12) [[Безопасность_компьютерных_систем_2017/RSA|Атаки на 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

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

Контакты