В 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 мин.) в неделю по семестрам.

Учебные дисциплины12345678910
Общеобразовательные дисциплины
Иностранный язык 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