Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Анализ программных реализаций. Практикум

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Оренбургский государственный университет»
И.В. Влацкая
Практикум
Рекомендовано ученым советом федерального государственного бюджетного образовательного учреждения высшего образования «Оренбургский государственный университет» для обучающихся по образовательной программе высшего образования по специальности 10.05.01 Компьютерная безопасность
Оренбург
2024
УДК 004(076.5) ББК 32.97я73
В58
Рецензент – доктор технических наук, доцент В.В. Тугов
Влацкая, И.В.
В58 Анализ программных реализаций: практикум / И.В. Влацкая;
Оренбургский гос. ун-т. – Оренбург : ОГУ, 2024. – 97 с.
В практикуме приведены лабораторные работы по основным темам дисциплины, рассмотрены основные инструменты для обратного инжиниринга программ, приведены материалы о настройке инструментов для использования статических и динамических анализаторов, декомпозиции и дизассемблировании существующего программного обеспечения, обфусцировании разработанного программного обеспечения, профилировании программного обеспечения. Практический материал дополнен теорией, вопросами и тестами для проверки усвоения материала.
Практикум предназначен для обучающихся по образовательным программам высшего образования по специальности 10.05.01 Компьютерная безопасность, при изучении дисциплины «Анализ программных реализаций».
УДК 004(076.5) ББК 32.97я73
© Влацкая И.В., 2024 © ОГУ, 2024
Содержание
Введение ....................................................................................................................... 4
1 Требования к оформлению отчетов студентов ................................................... 7
2 Лабораторная работа №1 Профилирование приложений с использованием
dotTrace Performance ................................................................................................... 9
3 Лабораторная работа №2 Защита .NET приложений от анализа и
модификации.............................................................................................................. 18
4 Лабораторная работа № 3 Анализ сетевого трафика ...................................... 28
5 Лабораторная работа №4 Статический анализ программ с помощью
ReSharper .................................................................................................................... 41
6 Лабораторная работа №5 Анализ программ для просмотра паролей ........... 48
7 Тестовые задания ................................................................................................ 51
Список использованных источников ....................................................................... 88
Приложение А (рекомендуемое) Типичные ошибки программиста .................... 89
Приложение Б (рекомендуемое) Примерные темы докладов ............................... 96
4
Введение
Целью освоения дисциплины «Анализ программных реализаций» является
изучение теоретических основ и технологий анализа программ и реализованных алгоритмических решений.
Дисциплина «Анализ программных реализаций» формирует компетенцию
ОПК-3.1 «Способен проводить анализ программного кода с целью поиска потенциальных уязвимостей и недокументированных возможностей». Данная компетенция достигается с помощью следующих индикаторов:
ОПК-3.1-В-1 Знает основные типовые классификации угроз
безопасности, уязвимых мест в программном обеспечении, атак, систем оценивания степени риска; основные угрозы, уязвимые места и средства защиты Web-приложений;
ОПК-3.1-В-2 Способен выявлять различного рода уязвимости в
разрабатываемом программном обеспечении, включая возможности для SQL­инъекции, XSS- и CSRF-атак;
ОПК-3.1-В-3 Владеет первичными навыками проведения
экспериментально-исследовательских работ при проведении сертификации средств защиты информации;
ОПК-3.1-В-4 Владеет навыками использования инструментальных
средств отладки и дизассемблирования программного кода.
В ходе изучения дисциплины студенты получат знания в следующих
областях: обратный инжиниринга программ, методы обфускации программ, методы профилировки программ, методы статического анализа кода.
После прохождения полного курса дисциплины, студенты овладеют
навыками обратного инжиниринга программ и алгоритмов, базовыми навыками использования средств антивирусной и криптографической защиты, навыками использования инструментов для статического и динамического анализа
5
разрабатываемых приложений, навыками разработки сетевых приложений, навыками анализа программного обеспечения с целью поиска потенциальных уязвимостей и недокументированных возможностей.
В результате освоения дисциплины, студенты будут уметь использовать
инструменты для обратного инжиниринга программ, оценивать эффективность реализации систем защиты информации и политик безопасности в компьютерных системах, настраивать приложения и инструменты для использования статических и динамических анализаторов, использовать современные комплексные среды для разработки защищенного программного обеспечения, декомпозировать и дизассемблировать существующее программное обеспечения, обфусцировать разработанное программное обеспечение вручную и с использованием инструментов, профилировать программное обеспечение.
Студенты, в ходе изучения дисциплины, получат знания о методах
построения и анализа алгоритмов, теоретических основах операционных систем, систем управления базами данных, компьютерных сетей, систем антивирусной и криптографической защиты информации, основных принципах статического и динамического анализа программ, принципах работы компьютерных сетей, защите информации в компьютерных сетях и основах обратного инжиниринга программ.
В программе дисциплины представлены программа Sysinternals Suit для
мониторинга обращения к файлам, реестру, сетевых потоков данных и прописывания программ для автозапуска в Windows. Использование анализаторов сетевого трафика для перехвата конфиденциальных данных, подмены информации, обратного инжиниринга сетевых протоколов. Примеры использования программ WireShark и RawCap. Применение инструмента Fiddler для анализа HTTP-трафика приложений. Принципы работы, основные его возможности по перехвату HTTP запросов и ответов, их отображению, декодированию, фильтрации, модификации, генерации запросов и ответов.
6
Написание сетевых приложений для протоколов TCP/IP и HTTP средствами библиотеки языка программирования.
7
1 Требования к оформлению отчетов студентов
Лабораторная работа является видом учебного занятия, способствующего
формированию у студентов практических навыков по дисциплине (модулю), закреплению теоретических знаний, развитию творческого мышления и инициативы.
Каждая лабораторная работа содержит: – тему работы; – цель; – практическую часть; – результаты проделанной работы. Выполнение обучающимися лабораторных работ проводится с целью: – формирования практических умений в соответствии с требованиями к
уровню подготовки обучающихся, установленными рабочей программой дисциплины по конкретным разделам (темам);
– обобщение, систематизация, углубление, закрепление полученных
теоретических знаний;
– совершенствование умений применять полученные знания на практике,
реализацию единства интеллектуальной и практической деятельности;
развитие интеллектуальных умений у будущих специалистов:
аналитических, проектировочных, конструктивных и др.
Лабораторные работы являются связывающим звеном между теорией и
практикой, способствуют развитию самостоятельности, эффективно содействуют формированию специальных знаний и умений.
Отчет по лабораторной работе содержит: – титульный лист; – содержание; – цель работы; – задание;
8
– теоретическую часть; – практическую часть (описание экспериментальной установки и
методики эксперимента, экспериментальные результаты, анализ результатов);
– выводы; – список использованных источников; – приложения. Более подробные указания можно посмотреть на сайте ОГУ в стандарте
организации по общим требованиям и правилам оформления (СТО 02069024.
1012015). Пример оформления титульного листа приведен в приложении Ш.
15.4. Оформление отчета выполняется в соответствии с требованиями разделов 6, 7 (7.4, 7.6, 7.7, 7.8, 7.9), 8.
9
2 Лабораторная работа №1 Профилирование приложений с
использованием dotTrace Performance
Цель
Изучить возможности профилирования программ и процессов dotTrace
Performance и научиться анализировать результаты профилирования.
Задачи
1. Запуск профилирования.
2. Обзор результатов профилирования.
3. Изучение дерева потоков.
4. Изучение дерева вызовов.
5. Изучение списка функций.
6. Изучение горячих точек приложения.
7. Использование прочих типов профилирования.
8. Исследование собственного приложения.
Теория
Программа dotTrace Performance – многофункциональный профилятор
производительности приложений на платформе .NET компании JetBrains, помогающий выявлять узкие места, снижающие производительность, в различных видах приложений. Для выполнения заданий необходимо установить dotTrace Performance, его можно запускать как из Visual Studio (главное меню DOTTRACE -> Profile startup application… для запуска профилирования текущего проекта или FOTTRACE -> Profile application… для профилирования другой программы или исполняющегося процесса), так и в качестве отдельного приложения через главное меню.
10
Задачи 1 – 6 выполняются для стандартной демонстрационной программы,
которая идет вместе с dotTrace Performance – RayTraceDemo.exe (трассировщик лучей), которая будет располагаться по пути аналогичному «C:\Program Files (x86)\JetBrains\dotTrace\v5.5\Bin\Demo\RayTraceDemo.exe» (в той же папки расположены исходники), оно также доступно через главное окно dotTrace Performance, вкладка Home, область Profile Demo Application.
За разъяснениями можно обратиться к документации:
http://www.jetbrains.com/profiler/webhelp/Profiling_Guidelines__Choosing_th
e_Right_Profiling_Mode.html
http://www.jetbrains.com/profiler/webhelp/Profiling_Guidelines__Setting_the_
Right_Meter_Kind.html
Ход работы
Запуск профилирования Запустите dotTrace Performance через главное меню. В главном окне на
вкладке Home нажмите кнопку Profile и выберите пункт Standalone application (отдельное приложение). В появившемся окне с помощью кнопки «…» возле текстового поля Application укажите путь к демонстрационной программе RayTraceDemo.exe. Нажмите кнопку со стрелкой вниз, находящуюся в области Application options и в раскрывшейся области установите флажок Profile child processes. В раскрывающемся списке Profiling type укажите тип профилирования “Line-by-line” (построчно), а в списке Measure (мера) укажите Wall time (CPU instruction) (замер времени выполнения с помощью инструкций процессора). Установите флажок Start profiling immediately (немедленно запустить профилирование), затем запустите профилирование, нажав кнопку Run.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]