Санкт-Петербургский государственный политехнический университет
СОГЛАСОВАНО Декан ФМФ __________________ Колгатин С.Н. «_____» ___________ _____ г. | УТВЕРЖДАЮ Декан ФМФ __________________ Колгатин С.Н. «_____» ___________ _____ г. |
РАБОЧАЯ ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ
Защита информации
Кафедра-разработчик
Прикладная математика
Направление (специальность) подготовки
010400 Прикладная математика и информатика
Наименование ООП
Квалификация (степень) выпускника
Образовательный стандарт
Федеральный ГОС
Форма обучения
очная
СОГЛАСОВАНО Зав.кафедрой Прикладная математика __________________ Клавдиев В.К. «_____» ___________ _____ г. | Соответствует ФГОС ВПО. Утверждена кафедрой ПриМат (протокол № 3 от 11.04.2011) Зав.кафедрой "Прикладная математика" ______________ Клавдиев В.Е. |
Программу в соответствии с ФГОС ВПО разработали:
к.ф.м.н. | Стахов С.В. | ||
Аранов В.Ю |
Цели и результаты изучения дисциплины
Цели изучения дисциплины
Цель изучения дисциплины " Защита информации " –
подготовка магистра к решению профессиональных задач: организации защиты информации и безопасного использования программных средств в вычислительных системах.
Перечень результатов обучения (компетенций) выпускника, на формирование которых направлено изучение дисциплины:
знание математических принципов криптографических преобразований,
типовых программно-аппаратных средств и систем защиты информации от несанкционированного доступа в компьютерную среду;
умение проводить анализ степени защищенности информации,
осуществлять повышение уровня защиты с учетом развития математического и программного обеспечения вычислительных систем;
противостоять вызовам, в области обеспечения безопасности компьютерных систем, которые выдвигает широкое распространение сети Интернет и современное информационное сообщество;
навык соблюдения, как коммерческой, так и государственной тайны;
способность разрабатывать эффективные математические методы решения за-дач естествознания, техники, экономики и управления (ПК-2);
разрабатывать научно-техническую документацию, оформлять научно-технические отчеты, обзоры, публикации по результатам выполненных исследований (ПК-3);
готовность к активному общению в научной, производственной и социально-общественной сферах деятельности (ОК-3).
Кроме того, выступая в роли разработчиков программного обеспечения, специалисты должны иметь возможность написать анализоустойчивый (до определенного предела) код, позволяя им разрабатывать программное обеспечение, распространяемое по модели shareware и/или предназначенное для распространения среди ограниченного круга лиц, а также реализовать технические меры контроля этих ограничений.
Результаты обучения (компетенции) выпускника, в формирование которых вносит вклад освоение дисциплины
Код | Результат обучения (компетенция) выпускника ООП |
ОК-2 | способностью иметь представление о современном состоянии и проблемах прикладной математики и информатики, истории и методологии их развития |
ОК-7 | способностью и готовностью к активному общению в научной, производственной и социально-общественной сферах деятельности |
ОК-9 | способностью использовать углубленные знания правовых и этических норм при оценке последствий своей профессиональной деятельности, при разработке и осуществлении социально значимых проектов |
ПК-1 | способностью проводить научные исследования и получать новые научные и прикладные результаты |
ПК-2 | способностью разрабатывать концептуальные и теоретические модели решаемых научных проблем и задач |
ПК-12 | способностью участвовать в деятельности профессиональных сетевых сообществ по конкретным направлениям |
Планируемые результаты освоения дисциплины
М.1. Общенаучный цикл
Базовая часть
знать:
- Математические принципы и области применения криптографических преобразований;
- Принципы анализа программного обеспечения по принципу черного и белого ящиков;
- Принципы безопасной работы в потенциально агрессивной окружающей IT-среде;
- Способы организации и предотвращения промышленного шпионажа;
- Правовые аспекты работы с информацией;
уметь:
-вычислять в группах, кольцах классов вычетов и полях Галуа;
- осуществлять классификацию неизвестного программного обеспечения
────────────────────────────────────────────
М.1.Профессиональный цикл
Базовая (профессиональная) часть
знать:
- Типовых программно-аппаратных средств и систем защиты информации от несанкционированного доступа в компьютерную среду;
- Основные принципы написания безопасного кода;
- Основные принципы разделения доверенных данных от данных пришедших из источников не заслуживающих доверия;
- Принципы работы с цифровыми подписями и протоколами сетевой безопасности;
- Принципы анализа программного обеспечения для х86 совместимых процессоров на предмет поиска уязвимостей;
- Принципы анализа программного написанного на скриптовых языках для сетевых сервисов на предмет поиска уязвимостей;
- Принципы написания взломоустойчивого программного обеспечения
уметь:
- Проводить анализ степени защищенности информации;
- Проводить анализ степени защищенности информации;
- Разрабатывать взломоустойчивое программное обеспечение
- Грамотно применять криптографические алгоритмы
- Проводить первичный анализ потенциально вредоносного программного
обеспечения
- Исправлять последствия работы вредоносного программного обеспечения
Место дисциплины в ООП
Дисциплина «Защита информации» согласно федеральному ГОС направления подготовки 010400 «Прикладная математика и информатика» (степень: магистр) является дисциплиной учебного цикла М.1 Общенаучный цикл (Б Базовая часть).
Изучение дисциплины «Защита информации» базируется в основном на результатах освоения следующих дисциплин:
“Компьютерная алгебра”
"Грамматики и автоматы",
"Архитектура процессоров",
"Операционные системы",
"Интернет технологии",
В меньшей степени курс базируется на следующих дисциплинах:
"Теория алгоритмов",
"Информационное обеспечение компьютерных систем",
"Компьютерные сети",
"Параллельные вычисления"
Результаты изучения дисциплины «Защита информации» используются в ходе практики (раздел Б.4 ФГОС) и при подготовке выпускной квалификационной работы (раздел Б.6 ФГОС).
3. Распределение трудоёмкости освоения дисциплины по видам учебной работы
Виды учебной работы
Виды учебной работы | Трудоемкость по семестрам | Итого, ач | |||
1-й сем. | 2-й сем. | ||||
ач/нед | ач/сем | ач/нед | ач/сем | ||
Лекции | |||||
Лабораторные занятия | |||||
Практические занятия, семинары | – | – | – | – | |
в том числе аудиторные занятия в интерактивной форме | – | – | – | – | |
Самостоятельная работа | – | – | |||
в том числе творческая проблемно-ориентированная самостоятельная работа | – | – | |||
Экзамены (подготовка во время сессии, сдача) | – | – | |||
| |||||
7.50 |
Формы контроля
Формы контроля | Количество по семестрам | Итого | |
1-й сем. | 2-й сем. | ||
Текущий контроль | |||
Контрольные работы (КРаб), шт. | – | – | |
Коллоквиумы (Кк), шт. | – | – | |
Расчетно графические работы (РГР), шт. | – | ||
Рефераты (Реф), шт. | – | – | |
Курсовые проекты (КП), шт. | – | – | |
Курсовые работы (КР), шт. | – | – | |
Промежуточная аттестация | |||
Зачёты (З), шт. | – | ||
Экзамены (Э), шт. |
Содержание и результаты обучения
Разделы дисциплины и виды учебной работы
Темы | Л | ЛЗ | СРС | Э | |
1. | ВВЕДЕНИЕ В ИНФОРМАЦИОННУЮ БЕЗОПАСНОСТЬ. ЗАЩИТА ИНФОРМАЦИИ МЕТОДАМИ КРИПТОГРАФИИ. | ||||
1.1. | Основные понятия криптографии. | – | – | ||
1.2. | Симметричные криптосистемы. | – | – | ||
1.3. | Асимметричные криптосистемы. | – | |||
1.4. | Цифровые подписи. | – | – | ||
2. | ПРИНЦИПЫ КРИПТОГРАФИЧЕСКИХ ПРЕОБРАЗОВАНИЙ | ||||
2.1. | Алгебраические системы в криптографии. | – | – | ||
2.2. | Группы и линейные пространства в симметричных криптосистемах. Блочные и потоковые шифры. | – | – | ||
2.3. | Сети Фейстела. Data Encryption Standard. ГОСТ 28147-89. | – | – | ||
2.4. | Кольца и поля в Advanced Encryption Standard, ал-горитм Rijndael. | – | |||
2.5. | Режимы применения блочных шифров. | – | |||
2.6. | Основные теоремы о кольцах классов вычетов. Факторизация. Дискретное логарифмирование. | – | – | ||
2.7. | Асимметричные криптосистемы. RSA, El-Gamal | – | – | ||
2.8. | Хэш-функции. Цифровые подписи. RSA, El-Gamal, Schnorr, DSS, ГОСТ Р34.10-94. | – | |||
2.9. | Извлечение корней в полупростых кольцах классов вычетов. Квадратичные подписи Rabin, Fiat-Schamir. | – | |||
2.10. | Эллиптические кривые в криптографии. Стандарт ГОСТ Р34.10-2001. | – | – | ||
2.11. | Подписание контракта. | – | – | ||
2.12. | Расчётная работа по разделам 1, 2 | – | – | – | |
3. | ЗАЩИТА ИНФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА | ||||
3.1. | Управление криптографическими ключами. | – | – | – | |
3.2. | Автоморфизмы алгебраических систем и композиция шифров с разными ключами. Протокол Diffie-Hellman общего секретного ключа. | – | |||
3.3. | Протоколы аутентификации. Доказательство знания без разглашения секрета (Zero-Knowledge Proof). | – | |||
3.4. | Рабочие группы пользователей. Минимальные привилегии. Защита Баз Данных. | – | – | – | |
4. | АНАЛИЗ СТЕПЕНИ ЗАЩИЩЕННОСТИ ИНФОРМАЦИИ | ||||
4.1. | Основы дифференциального криптоанализа | – | |||
4.2. | Основы линейного криптоанализа | – | – | ||
5. | ЭКЗАМЕН | ||||
5.1. | Подготовка к экзамену, экзамен | – | – | – | |
6. | Задача защиты информации в современном информационном обществе(Обзор) | ||||
6.1. | Информация в современном обществе | – | – | – | |
6.2. | Угроза информации | – | – | – | |
6.3. | Правомерный/неправомерный доступ к информации | – | – | – | |
7. | Инструментарий исследователя программного кода | ||||
7.1. | Введение в анализ машинного кода | – | |||
7.2. | Инструментарий используемый для анализа кода. | – | |||
7.3. | Методы противодействия отладке и способы их преодоления | – | |||
8. | Практический пример исследования программного кода: Исследование вируса | ||||
8.1. | Компьютерный вирус | – | – | ||
8.2. | Загрузчик вируса | – | – | – | |
8.3. | Распаковщик вируса и антиотладка на уровне ядра | – | – | – | |
8.4. | Вирус: руткит | – | – | – | |
8.5. | Вирус: "полезная" нагрузка | – | – | ||
9. | Безопасность в сети Интернет | ||||
9.1. | Основы безопасной работы в сети Интернет | – | – | ||
9.2. | Виды сетевых атак | – | – | ||
9.3. | Слепая SQL атака (Blind SQL injection) | – | – | – | |
10. | Методы защиты программного кода | ||||
10.1. | Запутывающие преобразования | – | |||
10.2. | Паковка | – | – | ||
10.3. | Использование виртуальных машин в запутывающих преобразованиях | – | |||
10.4. | Динамически (само)модифицирующийся код | – | |||
11. | Экзамен | ||||
11.1. | Подготовка к экзамену, экзамен | – | – | – | |
Итого по видам учебной работы: | – | ||||
Общая трудоемкость освоения: ач/зет | 2.00 | 1.00 | 4.50 | – |
Содержание разделов и результаты изучения дисциплины
Темы, разделы | Результаты освоения дисциплины |
1. ВВЕДЕНИЕ В ИНФОРМАЦИОННУЮ БЕЗОПАСНОСТЬ. ЗАЩИТА ИНФОРМАЦИИ МЕТОДАМИ КРИПТОГРАФИИ. | |
1.1. Основные понятия криптографии. Основные понятия криптографии. Коды, шифры, ключи, синхропосылка, шифрова-ние, (за|рас)шифрование, уравнение (за|рас)шифрования, дешифрование, крип-тостойкость и вычислительная сложность дешифрования. Два типа преобразований: кодирование и шифрование. Криптография и криптоанализ. | Знание основных понятий криптографии: коды, шифры, ключи, синхропосылка, шиф-рование, (за|рас)шифрование, уравнение (за|рас)шифрования, дешифрование, крип-тостойкость; криптография и криптоанализ. |
1.2. Симметричные криптосистемы. Передача конфиденциального сообщения по защищённому каналу связи. Сведения о блочных и потоковых шифрах. Подстанов-ки, перестановки, гамма-шифр. | Знание основных понятий симметричных криптосистем: общий секретный ключ; гам-мирование, обратная связь Умение применять симметричный шифр при архивировании файлов. |
1.3. Асимметричные криптосистемы. Честные односторонние функции, функции с секретом. Сложность вычисления секрет-ного ключа по известному открытому клю-чу. Понятие о шифре RSA. | Знание основных понятий асимметричных криптосистем: открытый и секретный клю-чи; шифр RSA. |
1.4. Цифровые подписи. Подпись и верификация. Хэш-функции. Од-носторонность, коллизии. Парадокс дня ро-ждения. Сильные хэш-функции. Целост-ность и авторизация документов. Крипто-графическая контрольная сумма Manipula-tion Detection Code (MDC), использование в цифровой подписи RSA. Защита от фальси-фикации, отказа, повторного использования. | Знание принципов применения хэш-функции и асимметричного шифра для циф-ровой подписи электронного документа. Умение применять цифровую подпись в электронной почте. |
2. ПРИНЦИПЫ КРИПТОГРАФИЧЕСКИХ ПРЕОБРАЗОВАНИЙ | |
2.1. Алгебраические системы в криптографии. Алгебраические системы (АС) и их приме-нение в криптологии. Односортные АС с одной и двумя операциями (полугруппы, моноиды, группы; кольца, тела, поля). Шифр – подмножество группы перестано-вок слов. | Знание основных алгебраических систем, принципов их применения в криптографи-ческих преобразованиях |
2.2. Группы и линейные пространства в симметричных криптосистемах. Блочные и потоковые шифры. Недопустимость полугруппы для кратного шифрования. F2-линейность битовых пере-становок. Необходимость S-блоков. | Знание основных принципов построения симметрических многократных шифров. |
2.3. Сети Фейстела. Data Encryption Standard. ГОСТ 28147-89. Сети Фейстела. Принципы Шеннона (сме-шение и диффузия). Вывод обратного пре-образования сети как произведения этапов (в некоммутативной группе). Необходимые свойства шифрующей функции этапа (нели-нейность, не полугруппа). Data Encryption Standard. Шифрующая функция этапа DES. F2-линейность P-, E-блоков, дающих диффу-зию. Нелинейность S-блоков – защита от криптоанализа. ГОСТ 28147-89. | Знание схемы Сети Фейстела, шифров ГОСТ 28147-89 и DES. Умение применять симметрический шифр для защиты конфиденциальных данных. |
2.4. Кольца и поля в Advanced Encryption Standard, ал-горитм Rijndael. Двусортные АС (G-множества, R-модули, F-линейные пространства, идеалы). Гомоморфизмы. Факторкольца. Простые поля Q, Fp= Z/pZ. Подполя. Характеристика поля. Кольцо многочленов над полем - евклидово. Поле Галуа Fq – факторкольцо по идеалу неприводимого многочлена над Fp. Группа аффинных преобразований над полем Fq. Advanced Encryption Standard (AES 2000), алгоритм Rijndael. | Знание математических оснований и алго-ритма шифра AES. Умение применять шифр AES для защиты конфиденциальных данных. |
2.5. Режимы применения блочных шифров. Электронная Кодировочная Книга (ECB). Сцепление Блоков Шифрованного текста (CBC, BC), Сцепление Блоков Шифрован-ного текста с Контрольной Суммой (CBCCS), Обратная Связь по Шифрованно-му тексту (CFB), Обратная Связь по Выходу (OFB) и потоковые шифры. | Знание основных режимов применения блочных шифров. Умение применять блочные шифры с обрат-ной связью в основных режимах. |
2.6. Основные теоремы о кольцах классов вычетов. Факторизация. Дискретное логарифмирование. Линейное представление н.о.д. Расширен-ный алгоритм Евклида и обращение вычета по модулю главного идеала. Простые поля. Мультипликативная группа U(Zn). Функция Эйлера, теорема Эйлера-Ферма. Прямые суммы и пересечения.Разложение колец вычетов по составному модулю в прямую сумму примарных идеалов. Теорема Кармайкла. Факторизация. Цикличность муль-типликативной группы примарного кольца нечетного простого. | Знание расширенного алгоритма Евклида, основных понятий и теорем о кольцах клас-сов вычетов. Умение вычислять обратные классы выче-тов, раскладывать кольца классов вычетов в прямую сумму примарных идеалов, при криптографических преобразованиях. |
2.7. Асимметричные криптосистемы. RSA, El-Gamal Быстрое вычисление степеней. Расшифро-вание произвольного сообщения в RSA, благодаря (необходимо) полупростому кольцу вычетов. Протоколы RSA, El-Gamal | Знание LSBF, MSBF, рекурсивного алго-ритмов быстрого возведения в степень клас-сов вычетов, элементов мультипликативно-го моноида. Умение вычислять степени классов вычетов в криптографических преобразованиях. |
2.8. Хэш-функции. Цифровые подписи. RSA, El-Gamal, Schnorr, DSS, ГОСТ Р34.10-94. Цикличность мультипликативной группы (простого) поля Галуа. Первообразные кор-ни, индексы. Дискретное логарифмирова-ние. Цифровые подписи. El-Gamal, Schnorr, DSS, ГОСТ Р34.10-94. Подпись RSA. | Знание схем Цифровые подписи. El-Gamal, Schnorr, DSS, ГОСТ Р34.10-94, RSA. Умение подписывать электронное сообще-ние. |
2.9. Извлечение корней в полупростых кольцах классов вычетов. Квадратичные подписи Rabin, Fiat-Schamir. Разложение колец вычетов по составному модулю в прямую сумму примарных идеа-лов. Теорема Кармайкла. Цикличность мультипликативной группы примарного кольца классов вычетов нечетного простого. Извлечение квадратного корня в циклической группе с известным порядком и образующей. Квадратичные подписи Rabin, Fiat-Schamir. | Знание основных теорем о кольцах классов вычетов. Умение вычислять квадратные корни из квадратичных классов вычетов в цифровых подписях Rabin, Fiat-Schamir. |
2.10. Эллиптические кривые в криптографии. Стандарт ГОСТ Р34.10-2001. ЭК над полем Галуа в форме Вейерштрасса. Бесконечная и нулевая точки. Порядок и след ЭК. Теорема Хассе. Суперсингуляр-ность. Сложение точек ЭК. Структура груп-пы (Z-модуля) точек, кофактор ЭК. Криптосистемы на ЭК. Стандарт цифровой подписи ГОСТ Р34.10-2001. | Знание основных принципов в основе стан-дарта цифровой подписи ГОСТ Р34.10-2001. |
2.11. Подписание контракта. Одновременное подписание контракта без посредника средствами криптографии. | Знание протокола одновременного подписа-ния контракта без посредника средствами криптографии. |
2.12. Расчётная работа по разделам 1, 2 RSA, Rabin | Знание протоколов из разделов 1, 2. Умение вычислять положительные и отри-цательные степени классов вычетов и квад-ратные корни из них. |
3. ЗАЩИТА ИНФОРМАЦИИ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА | |
3.1. Управление криптографическими ключами. Генерация, накопление, распределение. Протоколы распределения ключей. Ситуа-ция а) двусторонний обмен ключами. Про-токолы взаимного обмена с секретным или открытым ключом. Схема Диффи-Хеллмана связи с открытым ключом и открытого шифрования (ОШ). Ситуация б) Обмен ключами через третье лицо. Сертификаты. Протокол передачи ключа по незащищен-ному каналу. Протоколы обмена через третье лицо с закрытым ключом или с от-крытыми ключами. Ситуация в): Обмен ключами через двух и более посредников. Протоколы обмена через двух и более по-средников с секретным ключом или с от-крытым ключом. | Знание протоколов распределения ключей в ситуациях а) двустороннего обмен ключами; б) обмена ключами через третье лицо, с открытым или секретным ключом. Умение устанавливать защищённый канал связи с доказательством подлинности або-нентов и сеанса связи, на основе их серти-фицированных открытых ключей. |
3.2. Автоморфизмы алгебраических систем и композиция шифров с разными ключами. Протокол Diffie-Hellman общего секретного ключа. Автоморфизмы алгебраических систем и композиция коммутирующих шифров с раз-ными ключами. Тождество общего секрет-ного ключа в схеме Диффи-Хеллмана. Реа-лизация Эль-Гамаля. | Знание математических принципов в основе схемы Диффи-Хеллмана. Умение применять схему Диффи-Хеллмана для генерирования общего секретного клю-ча при установлении защищённого канала. |
3.3. Протоколы аутентификации. Доказательство знания без разглашения секрета (Zero-Knowledge Proof). Базовый протокол, доказательство знания дискретного логарифма, вскрытия RSA. Идентификация субъекта с помощью серти-фицированных ключей удостоверения под-линности для подписи Эль-Гамаля. | Знание базового протокола доказательства знания без разглашения секрета, доказатель-ства знания дискретного логарифма, вскры-тия RSA. Умение применять доказательство знания дискретного логарифма для идентификации субъекта. |
3.4. Рабочие группы пользователей. Минимальные привилегии. Защита Баз Данных. Политика рабочих групп пользователей. Разграничение доступа. Принцип мини-мальных привилегий. Матрица полномочий. Пример защиты БД под управлением СУБД Access. | Знание понятий: рабочая группа пользова-телей, разграничение доступа, принцип ми-нимальных привилегий, матрица полномо-чий. Умение защиты БД под управлением СУБД Access. |
4. АНАЛИЗ СТЕПЕНИ ЗАЩИЩЕННОСТИ ИНФОРМАЦИИ | |
4.1. Основы дифференциального криптоанализа Основы дифференциального и линейного криптоанализа. Дифференциальные харак-теристики S-блоков DEA и уравнения под-бора фрагментов ключа этапа. Дифференци-альный взлом 2, 3, 4-этапного DEA. | Знание основ дифференциального и крип-тоанализа. |
4.2. Основы линейного криптоанализа Понятие о линейном криптоанализе. Гамма-шифр Линейным Конгруэнтным Датчиком Случайных Чисел (ЛКДСЧ). Взлом с ис-пользованием аффинного инварианта и ре-шения линейного уравнения в кольце выче-тов. | Знание о линейном криптоанализе. Умение взломать Гамма-шифр Линейным Конгруэнтным Датчиком Случайных Чисел без обратной связи по известному фрагмен-ту открытого текста |
5. ЭКЗАМЕН | |
5.1. Подготовка к экзамену, экзамен Контроль результатов изучения дисципли-ны. | Знание разделов 1-4 |
6. Задача защиты информации в современном информационном обществе(Обзор) | |
6.1. Информация в современном обществе Определение понятии информации, как объекта защиты: Информация как документы, как файлы, как абстрактное знание, как метаинформация. Информация, как производное знание. | Знания на уровне понятий, определений, описаний, формулировок: Информация в различных видах и ее важность. Практические умения: Умение различать и выделять критическую информацию в общем потоке окружающих информационных данных |
6.2. Угроза информации Угрозы исходящие от хакеров, удаленные и локальные атаки. Методы и приемы социальной инженерии. Опеределение вредоносного ПО. Cracks, hack, keygens. Необходимость противодействия вредоносному ПО. | Знания на уровне понятий, определений, описаний, формулировок: Хакеры, shareware, freeware, open source, license management system, activation mechanism, copyright, software piracy, cracks, loaders, keygens, fishing, scam, fraud, spam Практические умения: Понимание что такое вредоносное ПО. Умение отличать вредоносное ПО по функционалу.Умение противодействовать приемам социальной инженерии и, возможно, их использовать. |
6.3. Правомерный/неправомерный доступ к информации Правовые последствия неправомерного доступа к информации. Отвественность за разработку вредоносного ПО. | Практические знания: Знание правового поля РФ, базовых законных и подзаконных актов регулирующих взаимоотношения в IT сфере. |
7. Инструментарий исследователя программного кода | |
7.1. Введение в анализ машинного кода Понятие анализа кода, живой и мертвый код, понятие отладки, обоснование необходимости отладки кода, сравнение эффективности различных методов анализа. Понятие разных уровней кода: уровень ядра ОС и уровень приложения. Внутренние недокументированные структуры ОС используемые для технической реализации отладки. | Знания на уровне понятий, определений, описаний, формулировок: Dead code, live code, debugging, Ring3, Ring0 Практические навыки: Умение выбрать правильный класс инструментария для решения конкретной задачи исследования. |
7.2. Инструментарий используемый для анализа кода. Visual Studio debugger, IDA, Olly DBG, SoftIce, Syser, sources, OllyDbg plug-ins, code Ripper, Code doctor | Практические навыки: Умение использовать множество программных продуктов для наиболее эффективного решения задачи исследования машинного кода полученного из непроверенных источников. |
7.3. Методы противодействия отладке и способы их преодоления Чтение памяти, RTDSC, VEH, SEH, IsDebuggerPresent, работа с таймером, PCB & TCB, DR? registers and flags | Практические навыки: Умение быстро обнаруживать стандартные антиотладочные приемы в исследуемом коде и грамотно их преодолевать. Умение обнаруживать подозрительный с точки зрения противодействия отладке код и нейтрализовывать его. |
8. Практический пример исследования программного кода: Исследование вируса | |
8.1. Компьютерный вирус Понятие вируса, цели создания вируса, основные компоненты вируса, классификация вирусов по степени защиты и по поражаемым элементам системы. Общее и специфика, примеры уникальных и курьезных вирусов. | Знания на уровне понятий, определений, описаний, формулировок: Компьютерный вирус, троян, riskware, adware, scamware, loader module, infection module, payload, botnet module, разновидности различных вирусов. Практические навыки: Умение распознать вирус, в недетектируемом текущей версией антивируса вредоносносном программном обеспечении по его проявлениям. |
8.2. Загрузчик вируса На примере вируса из интернета. Полиморфизм, aPLib сжатие, RC4 шифрование, TDI, spaghetti код, общая структура вируса | Практические навыки: Получить общее представление о том что представляет из себя загрузчик компьютерного вируса и какие шаги необходимо предпринять для его анализа. |
8.3. Распаковщик вируса и антиотладка на уровне ядра NtOsKrnl, NtQuerySystemInformation, CRC32 hashing, IDT protection | Практические навыки: Получить общее представление о том, как преодолевать антиотладку на уровне ядра и какие антиотладочные приемы используются разработчиками вредоносного ПО. |
8.4. Вирус: руткит Понятие руткита, виды различных руткитов, способы анализа системы с руткитом, способы нейтрализации руткитов. Анализ руткита из исследуемого вируса. INT 2Eh, драйвера файловой системы | Знания на уровне понятий, определений, описаний, формулировок: Руткит, недокументированное API, API splicing |
8.5. Вирус: "полезная" нагрузка Виды "полезных" нагрузок вирусов, модуль рассылки спама, модуль репликации. | Практические навыки: Знание способов распознания маскирующегося вируса по косвенным признакам. |
9. Безопасность в сети Интернет | |
9.1. Основы безопасной работы в сети Интернет Классификация сетевых хакеров, Безопасность пользователя и безопасность сервера: сходство и различия, дедики, шеллы, боты, | Знания на уровне понятий, определений, описаний, формулировок: Хакер, спамер, скамер, шелл, бот Практические навыки: Приемы безопасной работы в сети Интернет, на уровне пользователя. Различие реальных и мнимых угроз. |
9.2. Виды сетевых атак Buffer overflow, DOS, DDOS, ARP, spoofing, Injects, Perl Inject, PHP inject, Shell inject | Знания на уровне понятий, определений, описаний, формулировок: Buffer overflow, DOS, DDOS, ARP, spoofing, Injects, Perl Inject, PHP inject, Shell inject Практические навыки: Навыки написания кода неподверженного широко распространенным уязвимостям. Умение идентифицировать уязвимости в коде полученном на рецензирование. |
9.3. Слепая SQL атака (Blind SQL injection) Методы проведения атаки, методы защиты от атак, атаки второго и старших уровней, методы разработки устойчивого к атакам кода. | Знания на уровне понятий, определений, описаний, формулировок: Blind SQL inject Практические навыки: Навыки написания кода неподверженного SQL уязвимостям. Умение идентифицировать уязвимости в коде работы с базами данных. |
10. Методы защиты программного кода | |
10.1. Запутывающие преобразования Конвенции вызова, уровни запутывания кода, алгоритмический уровень обфускации, компиляторный уровень, машинный уровень(уровень инструкций). Обфускация flow-control. Влияние оптимизации, способы борьбы с нежелательной оптимизацией | Знания на уровне понятий, определений, описаний, формулировок: сdecl, srdcall, thiscall, fastcall, volatile Практические знания: Знание и умения управлением настройками компилятора, понимание способов запутывания графа выполнения программы и способов анализа графа в том случае если он уже находится в запутанном состоянии |
10.2. Паковка Стуктура исполняемого файла и файла библиотеки в Windows и Linux. Методы сжатия исполняемых файлов, OEP, Portable EXE, IAT, PLT, Статистические методы обнаружения упакованного и зашифрованного кода. Методы применяемые при анализа упакованных и зашифрованных программ. | Знания на уровне понятий, определений, описаний, формулировок: Exe header, Portable exe header, import table, export table, relocation, IAT, PLT, OEP Практические знания: Умение определить OEP сжатого файла. Умение написать простейший упаковщик, умение распаковать сжатый или зашифрованный исполняемый модуль. |
10.3. Использование виртуальных машин в запутывающих преобразованиях Классификация виртуальных машин. Реальные виртуальные машины, виды виртуальных процессоров, сети Петри и их использование для создания виртуальных машин произвольной сложности. Эффективность виртуальных машин. Другие широко распространенные виртуальные машины (forth, Turing machine, stack CPU). Способы анализа защит основанных на виртуальной машине. | Знания на уровне понятий, определений, описаний, формулировок: Сеть Петри, граф выполнения, проблема достижимости и эквивалентности графа выполнения программы, стрелка Пирса, машина Тьюринга, Тьюринговская полнота языка ВМ. Практические знания: Умение определить наличие виртуальной машины в исследуемом приложении, знание способов создания виртуальных машин и понимание их разнообразия, базовые навыки анализа произвольной виртуальной машины. |
10.4. Динамически (само)модифицирующийся код Полиморфный код, метаморфный код, ZPerm, сравнение устойчивости разных методов, уровни метаморфизма, NOP таблицы, метаморфные генераторы, метаморфные детекторы, структура и примерная реализация конечного автомата для создания метаморфа. Порождающие грамматики и конечные автоматы для генерации метаморфного кода. | Знания на уровне понятий, определений, описаний, формулировок: Полиморфы, метаморфы, NOP таблицы, метаморфные генераторы, метаморфные детекторы, порождающие и детектирующие грамматики. Практические знания: Умение обнаруживать и отлаживать полиморфный и метаморфный код. Базовые навыки разработки полиморфного и метаморфного кода. Владение ZPerm методом преобразования двоичного кода. |
11. Экзамен | |
11.1. Подготовка к экзамену, экзамен Контроль результатов освоения дисциплины | Практический результат: Более чем удовлетворительное знание дисциплины |