Задание
Настройка виртуального окружения
Перед выполнением основного задания лабораторной работы необходимо произвести установку лабораторного стенда. В первой лабораторной работе установка и настройка лабораторного окружения производилась вручную в целях полного разбора процесса сборки ядра и загружаемого модуля. В данной работе производить ручную настройку виртуального окружения не нужно, поскольку все действия можно выполнить за три шага.
Шаг 1. Скачать Vagrantfile
В первую очередь необходимо скачать Vagrantfile последней версии перейдя по ссылке: https://github.com/kolyandaemon/linux-hevd/releases/. После скачанный файл необходимо скопировать в директорию, путь к которой должен содержать только латинские буквы.
Шаг 2. Установить виртуальную среду
Далее необходимо в директории, куда был скопирован файл, необходимо выполнить следующую команду:
Чтобы открыть терминал в Windows 10 в директории достаточно навести курсор мыши на пустое пространство окна проводника, зажать клавишу Shift
и нажать правую кнопку мыши. В появившемся контекстном меню выбрать поле "Открыть окно PowerShell здесь".
Шаг 3. Выполнить сборку и установку модуля
После того как процесс настройки модуля будет завершен необходимо осуществить вход в виртуальную среду и запустить сценарий сборки и установки модуля. Это производиться тремя командами:
Сразу после выполнения команд процесс сборки и установки виртуального окружения можно считать завершенным.
Изучение уязвимости
Задание данной лабораторной работы состоит из нескольких этапов
1 этап
С учетом приобретенных навыков в предыдущей лабораторной работе необходимо отключить следующие средства защиты: KASLR, SMEP, SMAP и stack canary. Это нужно для облегчения понимания функционирования уязвимости в ядре.
2 этап
Далее необходимо собрать модуль ядра, установить его. Сделать это можно с помощью инструкции выше. Также рекомендуется изучить исходные файлы функции, демонстрирующую уязвимость: buffer_overflow-stack.py, hevd.py, Common.h, BufferOverflowStack.c, BufferOverflowStack.h.
3 этап
Необходимо выполнить системный вызов функции, демонстрирующую уязвимость CWE-121(Stack-based Buffer Overflow) при разных условиях: с выключенными механизмами защиты, с включенными механизмами защиты. Выполнить ту же операцию при таких же условия с "secure" версией модуля и представить результаты сравнения в виде отчета.
Last updated