Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Московский институт электроники и математики Национального исследовательского университета "Высшая школа экономики" Факультет прикладной математики и кибернетики. Программа дисциплины Защита программ и данных для специальности 090301 Компьютерная безопасность подготовки специалиста Автор программы: Ст. преподаватель Иванов В.И. , e- mail Одобрена на заседании кафедры Компьютерная безопасность «31» августа 2015 г. Зав. кафедрой А.Б. Лось Утверждена УС МИЭМ НИУ ВШЭ Ученый секретарь В.П.Симонов «___»_____________20 г. ________________________ 1. Цели и задачи дисциплины Целью изучения дисциплины «Защита программ и данных» является теоретическая и практическая подготовка специалистов к деятельности, связанной с применением современных технологий анализа программных реализаций, защиты программ и программных систем от анализа и вредоносных программных воздействий. Задачи дисциплины: − изучение настроек политики безопасности в операционных системах; − изучение средств и методов анализа программных реализаций; − изучение моделей функционирования и методов внедрения программных закладок; − изучение средств и методов выявления программных закладок. 2. Место дисциплины в структуре ООП: Дисциплина «Защита программ и данных» относится к числу дисциплин базовой части профессионального цикла. Для успешного усвоения данной дисциплины необходимо, чтобы студент владел знаниями, умениями и навыками, сформированными в процессе изучения дисциплин: «Информатика» – работа с программными средствами общего назначения; «Аппаратные средства вычислительной техники» – знание архитектуры основных типов современных компьютерных систем; «Операционные системы» – знание принципов построения современных операционных систем и особенностей их применения, владение навыками конфигурирования и администрирования операционных систем. «Защита в операционных системах» – умение формулировать и настраивать политику безопасности основных операционных систем, а также локальных компьютерных сетей, построенных на их основе. В результате изучения этих дисциплин студент должен знать: − основные понятия информатики; − системы счисления и методы представления данных в ЭВМ; − состав и назначение функциональных компонентов компьютера; − состав и назначение программного обеспечения компьютера; − язык ассемблера персонального компьютера; − язык программирования высокого уровня (объектно-ориентированное программирование); − общие принципы построения и использования современных языков программирования высокого уровня; − архитектуру основных типов современных компьютерных систем; − принципы построения современных операционных систем и особенности их применения; − защитные механизмы и средства обеспечения безопасности операционных систем; уметь: − использовать внешние носители информации для обмена данными, создавать резервные копии, архивы данных и программ; − использовать языки и системы программирования для решения профессиональных задач; − работать с программными средствами общего назначения; − настраивать политику разграничения доступа в операционных системах; − тестировать и отлаживать программы; − работать с современными системами программирования, включая объектноориентированные; − реализовывать алгоритмы на языках программирования высокого уровня; − разрабатывать системное и прикладное программное обеспечение для многозадачных, многопользовательских и многопроцессорных сред, а также для сред с интерфейсом, управляемым сообщениями; владеть: − навыками программирования в выбранной операционной среде; − языками процедурного и объектно-ориентированного программирования, навыками разработки и отладки программ; − навыками конфигурирования и администрирования операционных систем; − навыками разработки программных модулей, реализующих задачи, связанные с обеспечением безопасности операционных систем распространенных семейств. Знания и практические навыки, полученные в результате изучении дисциплины «Защита программ и данных», используются студентами при разработке курсовых и дипломных работ. 3. Требования к результатам освоения дисциплины Процесс изучения дисциплины направлен на формирование следующих компетенций: способность к логическому мышлению, обобщению, анализу, критическому осмыслению, систематизации, прогнозированию, постановке исследовательских задач и выбору путей их достижения (ОК-9); способность самостоятельно применять методы и средства познания, обучения и самоконтроля для приобретения новых знаний и умений, в том числе в новых областях, непосредственно не связанных со сферой деятельности, развития социальных и профессиональных компетенций, изменения вида и характера своей профессиональной деятельности (ОК10); способность применять математический аппарат, в том числе с использованием вычислительной техники, для решения профессиональных задач (ПК-2); способность применять достижения современных информационных технологий для поиска и обработки больших объемов информации по профилю деятельности в глобальных компьютерных системах, сетях, в библиотечных фондах и в иных источниках информации (ПК-3); способность учитывать современные тенденции развития информатики и вычислительной техники, компьютерных технологий в своей профессиональной деятельности (ПК7); способность работать с программными средствами прикладного, системного и специального назначения (ПК-8); способность к самостоятельному построению алгоритма, проведению его анализа и реализации в современных программных комплексах (ПК-12); способность организовать антивирусную защиту информации при работе с компьютерными системами (ПК-13); способность осуществлять подбор, изучение и обобщение научно-технической информации, нормативных и методических материалов по методам обеспечения информационной безопасности компьютерных систем (ПК-14); способность применять современные методы и средства исследований для обеспечения информационной безопасности компьютерных систем (ПК-15); способность проводить анализ безопасности компьютерных систем с использованием отечественных и зарубежных стандартов в области компьютерной безопасности (ПК-16); способность готовить научно-технические отчеты, обзоры, публикации по результатам выполненных работ (ПК-17); способность проводить обоснование и выбор рационального решения по уровню обеспечения информационной безопасности компьютерной системы с учетом заданных тре- бований (ПК-19); способность проводить сбор и анализ исходных данных для проектирования систем защиты информации (ПК-21); способность проводить анализ проектных решений по обеспечению безопасности компьютерных систем (ПК-23); способность участвовать в разработке системы защиты информации предприятия (ведомства, подразделения) и подсистемы информационной безопасности компьютерной системы (ПК-24); способность оценивать степень надежности выбранных механизмов обеспечения безопасности для решения поставленной задачи (ПК-25); способность участвовать в проведении экспериментально-исследовательских работ при аттестации системы защиты информации с учетом требований к обеспечению информационной безопасности (ПК-26); способность к проведению экспериментального исследования компьютерных систем с целью выявления уязвимостей (ПК-27); способность оценивать эффективность систем защиты информации в компьютерных системах (ПК-29); способность разрабатывать предложения по совершенствованию системы управления информационной безопасностью компьютерной системы (ПК-32); способность производить установку, тестирование программного обеспечения и программно-аппаратных средств по обеспечению информационной безопасности компьютерных систем (ПК-34); способность принимать участие в эксплуатации программного обеспечения и программно-аппаратных средств обеспечения информационной безопасности компьютерных систем (ПК-35); В результате изучения дисциплины студенты должны: знать: основные средства и методы анализа программных реализаций; основные методы обеспечения безопасности информации в автоматизированных системах; уметь: формировать политику безопасности в автоматизированных системах; применять средства антивирусной защиты и обнаружения вторжений; владеть: навыками анализа программных реализаций. 4. Объём дисциплины и виды учебной работы Вид учебной работы Аудиторные занятия (всего) В том числе: Лекции (Л) Практические занятия (ПЗ) Контрольные работы (КР) Самостоятельная работа (всего) В том числе: Курсовой проект (работа) Расчётно-графические работы Коллоквиум Реферат Домашнее задание Всего Семестры часов 9 54 54 18 36 18 36 54 54 20 20 Другие виды самостоятельной работы (подготовка к занятиям, зачету) Вид промежуточной аттестации и его трудоемкость Общая трудоёмкость часов 34 зачет 34 зачет 108 108 зачетных единиц 4 4 5. Содержание дисциплины Содержание разделов (тем) дисциплины Тема № 1. Механизмы разграничения доступа в операционных системах Субъекты (пользователи) и объекты (ресурсы) доступа. Модели защиты данных. Стандартная модель защиты данных в Linux. Флаги SUID и Sticky bit, их использование в Linux. Пользователи. Консольные команды для работы с пользователями. Хранение паролей Linux. Файл /etc/shadow. Группы пользователей. Получение прав суперпользователя. Команды SU и SUDO. Просмотр и смена прав доступа для файлов и директорий. Тема № 2. Анализ программных реализаций Задача анализа программных реализаций. Метод экспериментов, статический метод, динамический метод. Принципы функционирования отладчиков. Факторы, ограничивающие возможности отладчиков. Методы поиска функций защиты в машинном коде: метод маяков, метод Step-Trace. Анализ потоков данных. Особенности анализа оверлейного кода, параллельного кода. Особенности анализа машинного кода в среде, управляемой сообщениями. Тема № 3. Программные закладки Понятие программной закладки. Классификация программных закладок. Модель «наблюдатель»: модульная структура закладки, организация информационного взаимодействия между клиентской и серверной частями. Модель «перехват»: перехватчики паролей первого, второго и третьего рода, защита от перехватчиков паролей первого рода в Windows, средства и методы перехвата сетевого трафика, перехват обращений пользователя к документам, электронной почте и веб-страницам. Модель «искажение»: применение программных закладок для несанкционированного повышения полномочий пользователя. Тема № 4. Внедрение программных закладок Предпосылки к внедрению программных закладок: уязвимости программного обеспечения, уязвимости политики безопасности, человеческий фактор. Методы внедрения программных закладок: маскировка под «безобидное» программное обеспечение, подмена, прямое и косвенное ассоциирование. Тема № 5. Противодействие программным закладкам Методы выявления программных закладок: сигнатурное и эвристическое сканирование, контроль целостности, мониторинг информационных потоков, изолированная программная среда, программные ловушки. Принципы построения политики безопасности, обеспечивающей высокую защищенность от программных закладок. Тема № 6. Компьютерные вирусы как особый класс программных закладок Бинарные вирусы Windows и Linux: структура, порядок инициализации, алгоритмы поиска и заражения жертвы. Сетевые вирусы: онлайн-вирусы, почтовые вирусы, IM-вирусы. Скриптовые вирусы: макровирусы, shell-вирусы, HTML-вирусы. Комбинированные вирусы. Средства и методы маскировки вирусов и противодействия антивирусному программному обеспечению: стелс-технологии, полиморфные преобразования кода. 5.2. Разделы дисциплины и междисциплинарные связи с обеспечиваемыми (последующими) дисциплинами: Обеспечиваемые дисциплины отсутствуют. № п/п 1. 2. 3. 4. 5. 6. 5.3. Разделы (темы) дисциплины и виды занятий Наименование раздела (темы) Лекц., Практи дисциплины час ч раб., час Механизмы разграничения 5 10 доступа в операционных системах Анализ программных реализа- 5 10 ций Программные закладки 1 2 Внедрение программных за- 1 2 кладок Противодействие программ- 4 8 ным закладкам Компьютерные вирусы как 2 8 особый класс программных закладок Семин., час СР, Всего, час час 5 15 5 15 — 1 1 3 3 — 4 12 — 2 10 6. Практические занятия № № раздела (темы) Наименование работ п/п дисциплины 1. 1 Создание скриптовых программ для автоматического определения прав доступа 2 1 Формирование политики безопасности с использованием штатных средств операционных систем 3. 2 Анализ программных реализаций при наличии исходных кодов программ. 4. 2 Анализ программных реализаций без наличия исходных кодов программ. 5. 4 Противодействие программным закладкам с использованием изолированной программной среды 6 6 Организация антивирусной защиты рабочей станции Трудоемкость (час.) 2 4 12 24 6 6 Понедельный план проведения занятий № недели 1-4 Вид занятий Тема занятий Часы Вид контроля 5- 11 12-14 15-18 7. Примерная тематика курсовых проектов (работ) Курсовой проект (работа) не предусмотрен. 8. Учебно-методическое и информационное обеспечение дисциплины 8.1. Основная литература 1. Проскурин В.Г. Защита программ и данных. Учебное пособие для вузов – М.: Издательский центр «Академия», 2011 (план издательства). – 200 с. 2. Хорев П.Б. Методы и средства защиты информации в компьютерных системах: учеб. пособие для студ. высш. учеб. заведений. – М.: Издательский центр «Академия», 2006. – 256 с. 8.2. Дополнительная литература 1. О. Зайцев. Rootkits, SpyWare/AdWare, Keyloggers & BackDoors. Обнаружение и защита. – СПб: «БХВ-Петербург». 2006. – 304 с. 2. К. Касперски. Фундаментальные основы хакерства. – М: «СОЛОН-Р». 2005. – 448 с. 3. К. Касперски. Техника защиты компакт-дисков от копирования. – СПб: «БХВПетербург». 2004. – 458 с. 4. Дж. Козиол, Д. Личфилд, Д. Эйтел, К Энли, С. Эрен, Н. Мехта, Р. Хассель. Искусство взлома и защиты систем. – СПб: «Питер». 2006. – 416 с. 5. Х. Майкл, Д. Лебланк. Защищенный код. – М.: «Русская редакция», 2004. – 704 с. 6. Проблемы информационной безопасности. Компьютерные системы. – СПб: Издательство Политехнического университета. 8.3. Программное обеспечение Операционная система семейства Microsoft Windows или Linux, среда программирования Microsoft Visual Studio или аналогичная, дизассемблер IDA 5.x или аналогичный, система отладки ядра операционной системы Microsoft Debugging Tools, система виртуализации VMWare Workstation или Virtual Box. 8.4. Базы данных, информационно-справочные и поисковые системы − вузовская электронно-библиотечная система учебной литературы http://miem.edu/ru/ − база научно-технической информации (ВИНИТИ РАН) Электронно-библиотечная система обеспечивает возможность индивидуального доступа для каждого обучающегося из любой точки, в которой имеется доступ к сети Интернет. 9. Материально-техническое обеспечение дисциплины Для практических занятий необходимо наличие компьютерного класса, компьютеры класса (один компьютер на одного обучаемого) должны быть объединены в локальную сеть. На каждом компьютере класса должны быть установлены две операционные системы: одна семейства Windows, другая – семейства UNIX (например, ALT Linux), в зависимости от темы занятия загружается одна из них. Операционные системы Windows должны быть объединены в один или несколько доменов. Студенты должны иметь административные полномочия на всех компьютерах класса, кроме преподавательского. Для эффективной работы в рамках дисциплины студенты должны иметь возможность работать с исходными текстами программ, сохраненными на съемных накопителях информации. 10. Образовательные технологии Для проведения отдельных семинарских занятий применяется дисплейных класс с установленными программными эмуляторами различных криптографических средств. 10.1. Порядок формирования оценок по дисциплине Преподаватель оценивает работу студентов на семинарских занятиях: оценивается активность студентов в дискуссиях, правильность решения задач на семинаре, качество подготовки выступлений с докладами. Оценки за работу на семинарских занятиях преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за работу на семинарских и практических занятиях определяется перед окончанием 1 семестра и перед итоговым контролем - Оаудиторная. Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная= 0,5* Отекущий + 0,5* Оауд где Отекущий рассчитывается как взвешенная сумма всех форм текущего контроля, предусмотренных в РУП Отекущий = 0,6·Ок/р + 0,4·Одз ; Способ округления накопленной оценки текущего контроля: арифметический. Результирующая оценка за дисциплину рассчитывается следующим образом: Орезульт = 0,7* Онакопл + 0,3 *·Оэкз Способ округления арифметический. накопленной оценки итогового контроля в форме экзамена: На пересдаче студенту не предоставляется возможность получить дополнительный балл для компенсации оценки за текущий контроль. На экзамене студент, не сдавший вовремя домашнее задание по уважительной причине (не имел возможности присутствовать на занятиях) может выполнить к пересдаче домашнее задание, которое оценивается в 1 балл. 10. 2. Методические рекомендации по организации изучения дисциплины Цель обучения достигается сочетанием применения традиционных и инновационных педагогических технологий. При проведении лекционных занятий целесообразно широко применять такую форму как лекция-визуализация, сопровождая изложение теоретического материала презентациями, при этом желательно заблаговременно обеспечить студентов раздаточным материалом. Основной упор в методике проведения практических занятий и лабораторных работ должен быть сделан на отработке и закреплении учебного материала в процессе выполнения практических заданий в компьютерном классе. Особое внимание при этом должно быть уделено применению элементов проблемного и контекстного обучения, опережающей самостоятельной работе студентов. В ходе изучения дисциплины студенты должны выполнить домашнее задание, способствующее приобретению навыков ведения научно-исследовательской деятельности в области анализа программных реализаций. На изучение дисциплины отводятся один семестр, итоговая отчетность – экзамен. Целесообразно осуществлять проведение зачета и экзамена в форме устного опроса по билетам. Примерный перечень тем домашних заданий включает в себя задания по анализу реализаций алгоритмов в специально подобранных учебных программах (по одной-две программы на каждого обучаемого). Примерный перечень вопросов для опросов на практических занятиях: 1. Основные методы анализа программных реализаций. 2. Особенности анализа кода графических приложений Windows. 3. Особенности анализа кода, выполняющегося в режиме ядра операционной системы. 4. Методы защиты программ от дизассемблирования и отладки. 5. Модели взаимодействия программной закладки с атакуемой компьютерной системой. 6. Предпосылки к внедрению и методы внедрения программных закладок. 7. Основные принципы построения политики безопасности, повышающей защищенность от программных закладок. 8. Компьютерные вирусы: жизненный цикл, особенности функционирования, особенности противодействия вирусам того или иного класса.