Магистратура
2026/2027





Программирование на Python
Статус:
Курс обязательный (Кибербезопасность)
Когда читается:
1-й курс, 1, 2 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
6
Контактные часы:
60
Программа дисциплины
Аннотация
В рамках дисциплины студенты научатся описывать алгоритмы для решения задач и работы с данными. Разберут, как улучшить и упростить программу с помощью модулей, итераторов, декораторов. Изучат технологии для тестирования кода, разбора текста и веб-страниц.
По завершению дисциплины студенты будут обладать теоретическими знаниями и профессиональными компетенциями программирования на языке Python, такими как работа с файлами, работа с внешними API: работа с разными форматами данных, работа с библиотекой requests, http-запросы, работа с классами на примере API VK. GIT — система контроля версий: внедрение системы контроля версий; история работы и ветки; командная работа. Профессиональная работа с Python: модули, пакеты, импорты в Python, итераторы, генераторы, декораторы. Применение Python на практике: разработка тестов, регулярные выражения, веб-скрапинг.
Цель освоения дисциплины
- Получение навыка программирования для автоматизации процессов защиты систем.
Планируемые результаты обучения
- Умеет писать код, используя условные конструкции; выполнять операции сравнения
- Умеет различные объекты записывать в файл Python и читать их обратно, умеет объединять аналитические данные из разных систем в одну структуру
- Знает типичные проблемы со временем, ведущие к ошибкам при обработке и интерпретации данных
- Знает, как работать с ошибками в Python: чтение ошибок, обработка информации, как запрашивать помощь при работе с ошибками
- Умеет работать с датами в Datetime: знает как из строк получать полноценный объект даты и времени, как импортировать библиотеку, как заполнять datetime, как сравнивать, вычитать и прибавлять даты
- Знает формат Unixtime как альтернативой Datetime
- Знает в каких случаях эффективнее применять функции, а в каких классы. С какими проблемами можно столкнуться при применении функции и как применение классов может решить проблемы
- Умеет объявить класс в Python
- Знает существующие системы контроля версий, архитектуру работы git и svn, понятие CI/CD
- Знает как отправлять HTTP-запросы с помощью Python, используя соответствующие библиотеки
- Знает базовые понятия языка Python, его преимущества, принципы работы в Jupyter Notebook.
- Знает почему обязательно нужно писать комментарии в коде и в чём особенности простых арифметических операций в Python 3.
- Познакомился с переменными и знает как их называть.
- Знает применение переменных, условных конструкций и логических операторов, написание кода.
- Умеет реализовывать поставленные задачи, используя типы данных и циклы; создавать собственные функции и умеет работать со встроенными.
- Умеет создавать HTTP-запросы на Python.
- Умеет создавать простой GET-запрос и POST-запрос на Python.
- Умеет устанавливать библиотеки для работы Requests, Beautiful Soup, Scapy.
- Умеет создавать и отправлять собственные пакеты с помощью Scapy.
- Знает типы API, как работать с различными форматами данных, библиотеки для работы с API.
- Умеет выполнять предварительную обработку данных с помощью библиотеки pandas (применять функции для dataframe).
- Умеет фильтровать данные и применять различные способы индексирования (вебинар).
- Владеет навыками использования некоторых простых функций библиотек для визуализации данных.
- Владеет навыками использования некоторых простых функций библиотек для статистического анализа данных и применять их к задачам ИБ.
- Знает понятие, классификацию, характеристики и принципы разработки эксплойтов.
- Знает инструменты для автоматизации задач, связанных с разработкой и тестированием эксплойтов (включая инструменты для поиска уязвимостей).
- Умеет использовать requests и BeautifulSoup для для обнаружения уязвимостей (в частности, обнаружение SQL-инъекции, парсинг HTML-страниц, извлечение определенных элементов и атрибутов).
- Умеет использовать некоторые возможности инструментов PyCrypto и PyCryptodom.
- Умеет использовать некоторые возможности библиотеки Pexpect, в том числе для автоматизации входа в систему.
- Умеет загружать датасет botsv1 и подготовить его к работе.
- Умеет работать с датасетом botsv1 с использованием библиотеки Pandas и оптимизировать работу датасета при большом объеме данных.
- Умеет работь с данными Windows Security Log с помощью Pandas.
- Умеет выполнять поиск подозрительных событий автоматически.
- Умеет выявлять подозрительные домены.
- Умеет загружать и нормализуем данные JSON в объект Pandas.
- Умеет анализировать данные логов Nessus и Suricata.
- Умеет устанавливать фреймворк Volatility и выполнять простых операций с дампом памяти с помощью плагинов Volatility.
- Умеет анализировать дампа сетевого трафика с помощью PyShark и искать подозрительные артефакты.
- Умеет анализировать файл и выполнять первичную деобфускацию.
- Владеет навыками разработки инструмента на Python, который анализирует файлы на наличие вирусов и других киберугроз, используя API VirusTotal и базы данных Vulners.
- Знает возможности взаимодействия с СЗИ и Python.
- Умеет работать с документацией и применять доступные API методы
- Умеет выполнять интеграцияю с VirusTotal через API для улучшения стратегии защиты от злоумышленников и предотвращения инцидентов.
- Владеет навыками использования API и скриптов на Python для автоматизации типовых задач безопасности.
- Знает для чего используется API и базовое устройство запросов
- Умеет отправлять запросы с помощью библиотеки requests, выполнять проксирование запросов, обрабатывать нестандартные JSON-ответы
- Умеет создавать git репозиторий, создавать ветки в локальном и удаленном репозитории, выкладывать свои изменения в удаленный репозиторий, разрешать конфликты при работе с Git-репозиторием, умеет настраивать базовые CI/CD пайплайны
Содержание учебной дисциплины
- 1. Введение в программирование
- 2. GIT - система контроля версий
- 3. Управляющие конструкции и коллекции
- 4. Функции и области видимости
- 5. Работа с файлами и пакетами
- 6. Время и даты в Python
- 7. Классы и объекты (ООП)
- 8. Работа с API
- 9. Взаимодействие в WWW
- 10. Python для аналитиков ИБ: API и анализ данных
- 11. Python для аналитиков ИБ: эксплойты
- 12. Python для аналитиков ИБ: поиск негативных событий
- 13. Python для аналитиков ИБ: форензика
- 14. Управление системами и ресурсами защиты информации с помощью Python
Элементы контроля
- Тест по модулю 1Процедура сдачи теста Студент проходит тест на платформе. Тест оценивается автоматически в LMS. Тест из 20 вопросов по всем темам курса. При ответе на вопрос необходимо выбрать один вариант или несколько правильных вариантов.
- ДЗ с проверкой в модуле 1Процедура сдачи домашнего задания 1. Перед выполнением задания студент устанавливает Jupyter notebook либо использует Google Colab. 2. Студент выполняет все предлагаемые этапы задания (для каждого задания предусмотрены индивидуальные требования). 3. Студент прикрепляет в LMS ссылку на выполненное задание в Google Colab или GitHub. По ссылке открыт доступ. 4. Преподаватель даёт письменную обратную связь на выполненную работу.
- Итоговое задание в модуле 2Процедура сдачи итогового задания 1. Перед выполнением задания студент устанавливает Jupyter notebook либо использует Google Colab. 2. Студент выполняет все предлагаемые этапы задания (для каждого задания предусмотрены индивидуальные требования). 3. Студент прикрепляет в LMS ссылку на выполненное задание в Google Colab или GitHub. По ссылке открыт доступ. 4. Преподаватель даёт письменную обратную связь на выполненную работу.
Промежуточная аттестация
- 2026/2027 2nd module0.5 * Итоговое задание в модуле 2 + 0.3 * ДЗ с проверкой в модуле 1 + 0.2 * Тест по модулю 1
Список литературы
Рекомендуемая основная литература
- Титов, А. Н. Обработка данных в Python. Основы работы с библиотекой Pandas : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева. — Казань : КНИТУ, 2022. — 116 с. — ISBN 978-5-7882-3164-8. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/331013 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Федоров, Д. Ю. Программирование на Python : учебное пособие для вузов / Д. Ю. Федоров. — 6-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2025. — 187 с. — (Высшее образование). — ISBN 978-5-534-19666-5. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/556864 (дата обращения: 02.07.2026).
- Чернышев, С. А. Основы программирования на Python : учебник для вузов / С. А. Чернышев. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2025. — 349 с. — (Высшее образование). — ISBN 978-5-534-17139-6. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/567821 (дата обращения: 02.07.2026).
- Янцев, В. В. Web-программирование на Python / В. В. Янцев. — 2-е изд., стер. — Санкт-Петербург : Лань, 2023. — 180 с. — ISBN 978-5-507-46546-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/310289 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Борзунов, С. В. Языки программирования. Python: решение сложных задач / С. В. Борзунов, С. Д. Кургалин. — Санкт-Петербург : Лань, 2023. — 192 с. — ISBN 978-5-507-45923-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/319394 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Карепова, Е. Д. Основы многопоточного и параллельного программирования: Учебное пособие / Карепова Е.Д. - Краснояр.:СФУ, 2016. - 356 с.: ISBN 978-5-7638-3385-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/966962
- Персиваль, Г. Python. Разработка на основе тестирования. Повинуйся Билли-тестировщику, используя Django, Selenium и JavaScript / Г. Персиваль , перевод с английского А. В. Логунов. — Москва : ДМК Пресс, 2018. — 622 с. — ISBN 978-5-97060-594-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/111440 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.