Задание
Настройка виртуального окружения
Перед выполнением основного задания лабораторной работы необходимо произвести установку лабораторного стенда. В первой лабораторной работе установка и настройка лабораторного окружения производилась вручную в целях полного разбора процесса сборки ядра и загружаемого модуля. В данной работе производить ручную настройку виртуального окружения не нужно, поскольку все действия можно выполнить за три шага.
Шаг 1. Скачать Vagrantfile
В первую очередь необходимо скачать Vagrantfile последней версии перейдя по ссылке: https://github.com/kolyandaemon/linux-hevd/releases/. После скачанный файл необходимо скопировать в директорию, путь к которой должен содержать только латинские буквы.
Шаг 2. Установить виртуальную среду
Далее необходимо в директории, куда был скопирован файл, необходимо выполнить следующую команду:
Чтобы открыть терминал в Windows 10 в директории достаточно навести курсор мыши на пустое пространство окна проводника, зажать клавишу Shift
и нажать правую кнопку мыши. В появившемся контекстном меню выбрать поле "Открыть окно PowerShell здесь".
Шаг 3. Выполнить сборку и установку модуля
После того как процесс настройки модуля будет завершен необходимо осуществить вход в виртуальную среду и запустить сценарий сборки и установки модуля. Это производиться тремя командами:
Сразу после выполнения команд процесс сборки и установки виртуального окружения можно считать завершенным.
1 этап
С учетом приобретенных навыков в второй лабораторной работе необходимо отключить следующие средства защиты: KASLR, SMEP, SMAP и stack canary. Это нужно для облегчения понимания функционирования уязвимости в ядре.
2 этап
Далее необходимо собрать модуль ядра, установить его. Сделать это можно с помощью инструкции выше. Также рекомендуется изучить исходные файлы функции, демонстрирующую уязвимость: ArbitraryWrite.c, ArbitraryWrite.h Common.h, hevd.py, arbitrary_write.py
3 этап
Необходимо выполнить системный вызов функции, демонстрирующую уязвимость CWE-457: Use of Uninitialized Variable при разных условиях: с выключенными механизмами защиты и с включенными механизмами защиты. Поскольку функция осуществляет запись входных данных напрямую в память необходимо не допустить состояния "Kernel Panic" при вызове системного вызова.
Last updated