Бакалавриат
2022/2023
Безопасность компьютерных систем
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Ступин Никита Сергеевич
Язык:
русский
Кредиты:
5
Контактные часы:
60
Программа дисциплины
Аннотация
В этом курсе вы погрузитесь в один из разделов практической информационной безопасности: безопасность веб-приложений. В первом модуле вы изучите уязвимости характерные для клиентской и серверной частей современных веб-приложений: XSS, SQLi, JavaScript Prototype Pollution и другие. Во втором модуле разберетесь с основными криптографическими примитивами и безопасностью технологий, которые объединены под общим названием Web 3.0: Ethereum, IPFS, The Graph и другие. Курс будет сопровождаться примерами реальных уязвимостей из опыта преподавателей и других специалистов. Практика будет проходить в формате CTF. По ходу курса вы также познакомитесь и, при желании, попробуете свои силы в Bug Bounty.
Цель освоения дисциплины
- Уметь анализировать трафик веб-приложения с помощью Burp Suite или аналогичного инструмента (например, Chrome DevTools, Charles Proxy).
- Уметь находить уязвимости клиентской части веб-приложений: XSS, JavaScript Prototype Pollution и другие. Знать как исправлять данные уязвимости в конкретном случае и систематически.
- Уметь находить уязвимости серверной части веб-приложений: уязвимости авторизации, SQLi, RFI / LFI и другие. Знать как исправлять данные уязвимости в конкретном случае и систематически.
Планируемые результаты обучения
- Знать как устроены технологии Web 3.0 и уметь взаимодействовать с ними.
- Знать, что такое Bug Bounty программы, понимать в чем их польза для компаний и специалистов по информационным технологиям.
- Уметь находить уязвимости серверной части веб-приложений: уязвимости авторизации, SQLi, RFI / LFI и другие. Знать как исправлять данные уязвимости в конкретном случае и систематически.
- Уметь читать код на языке Solidity и находить типовые ошибки в смарт-контрактах.
Содержание учебной дисциплины
- Знакомство и обзор курса
- XSS
- JavaScript Prototype Pollution
- Уязвимости авторизации и аутентификации
- LFI / RFI / OS Command Injection
- Получение доступа к платформе CTF
- Консультация по CTF
- Децентрализованные системы
- Ethereum
- Смарт-контракты на языке Solidity
- Уязвимости смарт-контрактов
- The Graph
Промежуточная аттестация
- 2022/2023 учебный год 2 модуль0.3 * Контрольная работа + 0.7 * Домашние задания
Список литературы
Рекомендуемая основная литература
- Zalewski, M. (2012). The Tangled Web : A Guide to Securing Modern Web Applications. San Francisco: No Starch Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=440083
Рекомендуемая дополнительная литература
- Koziol, J., & Anley, C. (2007). The Shellcoder’s Handbook : Discovering and Exploiting Security Holes (Vol. 2nd ed). Indianapolis, IN: Wiley. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=204776