В 2012/2013 учебном году была пересмотрена учебная программа специальности "компьютерная безопасность". В конце учебного кода программа была утверждена. Изменения коснулись III, IV, V курсов. В 2013/2014 учебном году по новой программе начнут учиться I, II, III курсы, старшие курсы будут доучиваться по старой программе. Во-первых, изменения были обусловлены принятием нового образовательного стандарта. Во-вторых, в новой программе были закреплены спецкурсы, появившиеся в последние несколько лет. И, в-третьих, курсы были переупорядочены для более точно соответствия их взаимосвязям. Из-за формальных требований, нам не удалось принять программу, в точности соответствующую нашим представлениям: какие-то курсы были сдвинуты, какие-то урезаны по часам. Но в итоге была сформирована более-менее гармоничная программа, охватывающая большинство вопросов компьютерной безопасности. В этой заметке описана структура и логика новой программы. Для удобства описания все курсы разбиты на тематические блоки.
Общеобразовательные дисциплины
Учебные дисциплины | Семестры |
---|---|
Иностранный язык | 1-4 |
Физика | 1-3 |
Физическая культура | 1-6 |
История Отечества | 1 |
Русский язык и культура речи | 3 |
Россиеведение | 2 |
Информационная культура | 2 |
Психология | 4 |
Деловая этика | 3 |
Безопасность жизнедеятельности | 2 |
Философия | 4 |
Экономика | 6 |
Правоведение | 8 |
Основы управленческой деятельности | 8 |
Математика
Учебные дисциплины | Семестры |
---|---|
Математический анализ | 1-3 |
Алгебра | 1-3 |
Аналитическая геометрия | 1 |
Теория функций комплексного переменного | 3 |
Дифференциальные уравнения | 4 |
Математическая логика и теория алгоритмов | 4 |
Дискретная математика | 5, 6 |
Математическая теория трансляторов | 8 |
Недетерминированные алгоритмы | 8 |
Теория вероятностей и математическая статистика | 4-6 |
Теория информации | 6 |
Алгоритмы кодирования и сжатия информации | 9 |
Свёрточные коды/Фонтанные коды | 10 |
Теоретико-числовые методы в криптографии | 5, 6 |
Криптографические методы защиты информации | 7, 8 |
Криптографические протоколы | 9 |
Математические дисциплины являются основой и для информатики и для компьютерной безопасности. И отбор конкретных областей математики обусловлен целью сформировать базу для дальнейшего изучения компьютерных дисциплин. На младших курсах изучаются базовые разделы математики: математический анализ, алгебра, аналитическая геометрия, теория функций комплексного переменного, дифференциальные уравнения. Затем идут специальные математические курсы. В курсах по математической логике и дискретной математике изучаются необходимые для программирования и формализации вычислений темы: булева алгебра, исчисление высказываний и предикатов, комбинаторика, дискретные структуры, теория графов, сложность алгоритмов, теория автоматов. Теория вероятностей, являющаяся основой теории информации, криптографии, анализа данных, изучается в течении 3 семестров: основы теории вероятностей, математическая статистика, теория случайных процессов. С III курса начинаются 5 семестров криптографии. В рамках курса "теоретико-числовые методы в криптографии" изучаются разделы теории чисел и алгебры, необходимые для изучения криптографии: конечные поля; кольца вычетов; системы сравнений; подходящие дроби; алгоритмы факторизации, дискретного логарифмирования, проверки чисел на простоту. В курсе "криптографические методы защиты информации" изучаются классические криптосистемы; современные алгоритмы блочного и поточного шифрования; асимметричные криптосистемы шифрования, электронной цифровой подписи, распределения ключей; криптографические хеш-функции; криптоанализ симметричных и асимметричных криптосистем. В курсе "криптографические протоколы" изучается применение криптографических примитивов и алгоритмов для создания защищённых протоколов.
Программирование
Учебные дисциплины | Семестры |
---|---|
Информатика | 1 |
Языки программирования | 2, 3 |
Языки ассемблера | 4, 5 |
Методы программирования | 5, 6 |
Машинное обучение и искусственный интеллект | 7, 8 |
Базы данных | 6 |
Технологии программирования | 7 |
Web-программирование | 7 |
Язык программирования Java | 7 |
Параллельное программирование | 8 |
Изучение программирования начинается в 1 семестре с информатики и с языков программирования во 2 и 3 семестрах. За это время должны быть изучены основы двух языков: С и С++. В первоначальном варианте программы предполагалось 3 семестра языков программирование, но в силу количественных ограничений пришлось сократить до 2. В 4 и 5 семестрах изучаются языки ассемблера. В первом семестре изучаются основы программирования микропроцессоров и язык ассемблера для 16-разрядных процессоров архитектуры x86. Второй семестр языков ассемблера был введен впервые. Причиной этому послужили спецкурсы, требующие знания архитектуры современных процессоров. До этого на изучение языков ассемблера 32-разрядных процессоров отводилось время таких курсов, как системное программирование, защита кода, уязвимости ПО. В добавленном семестре предполагается изучение 32- и 64-разрядных процессоров архитектуры x86 и ARM. Годовой курс машинного обучения был введен впервые вместо семестрового курса нейронных сетей. Соответственно был расширен набор рассматриваемых тем. Помимо программирования нейронных сетей будут изучаться линейные и нелинейные алгоритмы классификации и кластеризации, анализ данных, компьютерное зрение.
Компьютерные сети
Учебные дисциплины | Семестры |
---|---|
Системы и сети передачи данных | 5 |
Компьютерные сети | 6 |
Сетевые технологии | 7, 8 |
Беспроводные сетевые технологии | 9 |
В курсе "системы и сети передачи данных" изучаются физические основы передачи сигналов по сетям связи, а в курсе "компьютерные сети" - основные протоколы компьютерных сетей. Сетевые технологии изучаются на сетевом оборудовании Cisco под руководством сотрудников кафедры, являющихся сертифицированными преподавателями академии Cisco.
Операционные системы
Учебные дисциплины | Семестры |
---|---|
Операционные системы | 4, 5 |
Администрирование Windows серверов | 7 |
Администрирование Linux и защита публичных служб | 8, 9 |
Построение операционных систем | 10 |
Аппаратные средства
Учебные дисциплины | Семестры |
---|---|
Аппаратные средства вычислительной техники | 4 |
Электроника и схемотехника | 5, 6 |
Информационная безопасность
Учебные дисциплины | Семестры |
---|---|
Основы информационной безопасности | 9 |
Организационно-правовое обеспечение информационной безопасности | 10 |
Техническая защита информации | 10 |
Компьютерная безопасность
Учебные дисциплины | Семестры |
---|---|
Модели безопасности компьютерных систем | 3 |
Защита в операционных системах | 8, 9 |
Основы построения защищённых баз данных | 7 |
Основы построения защищённых компьютерных сетей | 9 |
Системное программирование | 6, 7 |
Защита программ и данных | 7 |
Анализ уязвимостей программного обеспечения | 8, 9 |
Уязвимости web-приложений | 8 |
Тестирование компьютерных систем на проникновение | 9 |
Компьютерная вирусология | 9 |
Статический анализ исходного кода | 10 |
Исследование вредоносного ПО | 10 |
Биометрические методы верификации | 10 |
Методы и стандарты оценки защищённости компьютерных систем | 10 |
В новой программе курс "защита в операционных системах" был расширен с семестра до двух.
Увеличено количество курсов по защите кода. Изначально этой теме был посвящен только один семестровый курс "защита программ и данных". 5 лет назад появился курс "системное программирование", затем "уязвимости ПО". В новой программе эти курсы расширены с семестра до двух. А на V курсе введены курсы по исследованию кода вредоносного ПО. Второй семестр языков ассемблера был введен как раз для удовлетворения потребностей новых курсов. Курс "системное программирование" предназначен для изучения аспектов системного и низкоуровневого программирования, необходимых для понимания функционирования современного вредоносного ПО, в частности руткитов. По старой программе в течении одного семестра изучались следующие темы: программирование загрузчиков; программная архитектура и архитектура ядра Windows NT; программирование драйверов систем безопасности под эту платформу. По новой программе предполагается изучение дополнительных тем: архитектура Linux, *BSD систем и программирование драйверов под них; программирование BIOS; аппаратная виртуализация; форматы исполняемых файлов. В курсе "защита программ и данных" изучаются следующие темы: заражение исполняемых файлов и обнаружение заражения; reverse engineering; дизассемблирование и антидизассемблирование; отладка и антиотладка; упаковщики и протекторы; внедрение и модификация бинарного кода; создание шеллкодов. Курс "анализ уязвимостей программного обеспечения" предназначен для изучения уязвимостей бинарного кода и методов их эксплуатации. В рамках семестрового курса изучались только уязвимости 32-разрядного пользовательского кода под Linux: ошибки целочисленного переполнения; переполнение стека; ошибки форматной строки; защитные механизмы (stack canary, ASLR, DEP, PIE) и методы их обхода (ret2reg, reg2lib, ret2plt, ROP, утечка данных). В годовом курсе предполагается изучение дополнительных тем: уязвимости программного кода под Windows и *BSD; переполнение кучи; уязвимости в коде режима ядра, поиск уязвимостей.
Курсы "уязвимости web-приложений" и "тестирование компьютерных систем на проникновение" впервые были проведены в уходящем учебном году на V курсе. В новой программе первый из них был перенесен с 10 семестра на 8.
В курсе "биометрические методы верификации" изучаются методы и алгоритмы биометрической идентификации и верификации человека по голосу, клавиатурному и рукописному почерку, отпечаткам пальцев.
Общая таблица
В таблице перечислены все учебные курсы с указанием количества академических часов (40 мин.) в неделю по семестрам.
Учебные дисциплины | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
Общеобразовательные дисциплины | ||||||||||
Иностранный язык | 4 | 3 | 2 | 2 | ||||||
Физика | 6 | 6 | 6 | |||||||
Физическая культура | 4 | 4 | 4 | 4 | 3 | 3 | ||||
История Отечества | 2 | |||||||||
Русский язык и культура речи | 2 | |||||||||
Россиеведение | 2 | |||||||||
Информационная культура | 2 | |||||||||
Психология | 2 | |||||||||
Деловая этика | 3 | |||||||||
Безопасность жизнедеятельности | 2 | |||||||||
Философия | 2 | |||||||||
Экономика | 2 | |||||||||
Правоведение | 2 | |||||||||
Основы управленческой деятельности | 2 | |||||||||
Математика | ||||||||||
Математический анализ | 4 | 5 | 4 | |||||||
Алгебра | 5 | 5 | 4 | |||||||
Аналитическая геометрия | 4 | |||||||||
Теория функций комплексного переменного | 3 | |||||||||
Дифференциальные уравнения | 4 | |||||||||
Математическая логика и теория алгоритмов | 4 | |||||||||
Дискретная математика | 4 | 3 | ||||||||
Математическая теория трансляторов | 2 | |||||||||
Недетерминированные алгоритмы | 2 | |||||||||
Теория вероятностей и математическая статистика | 4 | 4 | 3 | |||||||
Теория информации | 4 | |||||||||
Алгоритмы кодирования и сжатия информации | 3 | |||||||||
Свёрточные коды/Фонтанные коды | 3 | |||||||||
Теоретико-числовые методы в криптографии | 4 | 3 | ||||||||
Криптографические методы защиты информации | 3 | 3 | ||||||||
Криптографические протоколы | 4 | |||||||||
Программирование | ||||||||||
Информатика | 4 | |||||||||
Языки программирования | 4 | 4 | ||||||||
Языки ассемблера | 4 | 4 | ||||||||
Методы программирования | 3 | 3 | ||||||||
Машинное обучение и искусственный интеллект | 4 | 4 | ||||||||
Базы данных | 4 | |||||||||
Технологии программирования | 2 | |||||||||
Web-программирование | 4 | |||||||||
Язык программирования Java | 3 | |||||||||
Параллельное программирование | 4 | |||||||||
Информационные технологии | ||||||||||
Системы и сети передачи данных | 4 | |||||||||
Компьютерные сети | 4 | |||||||||
Сетевые технологии | 3 | 3 | ||||||||
Беспроводные сетевые технологии | 3 | |||||||||
Операционные системы | 4 | 4 | ||||||||
Администрирование Windows серверов | 3 | |||||||||
Администрирование Linux и защита публичных служб | 4 | 4 | ||||||||
Построение операционных систем | 4 | |||||||||
Аппаратные средства вычислительной техники | 4 | |||||||||
Электроника и схемотехника | 4 | 2 | ||||||||
Информационная безопасность | ||||||||||
Основы информационной безопасности | 3 | |||||||||
Организационно-правовое обеспечение информационной безопасности | 3 | |||||||||
Техническая защита информации | 4 | |||||||||
Компьютерная безопасность | ||||||||||
Модели безопасности компьютерных систем | 3 | |||||||||
Защита в операционных системах | 3 | 3 | ||||||||
Основы построения защищённых баз данных | 4 | |||||||||
Основы построения защищённых компьютерных сетей | 4 | |||||||||
Системное программирование | 4 | 4 | ||||||||
Защита программ и данных | 4 | |||||||||
Анализ уязвимостей программного обеспечения | 4 | 4 | ||||||||
Уязвимости web-приложений | 4 | |||||||||
Тестирование компьютерных систем на проникновение | 4 | |||||||||
Компьютерная вирусология | 4 | |||||||||
Статический анализ исходного кода | 4 | |||||||||
Исследование вредоносного ПО | 4 | |||||||||
Биометрические методы верификации | 4 | |||||||||
Методы и стандарты оценки защищённости компьютерных систем | 2 |