\documentclass[spec, och, pract]{Practice} % параметр - тип обучения - одно из значений: % spec - специальность % bachelor - бакалавриат (по умолчанию) % master - магистратура % параметр - форма обучения - одно из значений: % och - очное (по умолчанию) % zaoch - заочное % параметр - тип работы - одно из значений: % referat - реферат % coursework - курсовая работа (по умолчанию) % diploma - дипломная работа % pract - отчет по практике % параметр - включение шрифта % times - включение шрифта Times New Roman (если установлен) % по умолчанию выключен \usepackage{subfigure} \usepackage{tikz,pgfplots} \pgfplotsset{compat=1.5} \usepackage{float} %\usepackage{titlesec} \setcounter{secnumdepth}{4} %\titleformat{\paragraph} %{\normalfont\normalsize}{\theparagraph}{1em}{} %\titlespacing*{\paragraph} %{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} \titleformat{\paragraph}[block] {\hspace{1.25cm}\normalfont} {\theparagraph}{1ex}{} \titlespacing{\paragraph} {0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} % --------------------------------------------------------------------------% \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage{graphicx} \graphicspath{ {./images/} } \usepackage{tempora} \usepackage[sort,compress]{cite} \usepackage{amsmath} \usepackage{amssymb} \usepackage{amsthm} \usepackage{fancyvrb} \usepackage{listings} \usepackage{listingsutf8} \usepackage{longtable} \usepackage{array} \usepackage[english,russian]{babel} % \usepackage[colorlinks=true]{hyperref} \usepackage{url} \newcommand{\eqdef}{\stackrel {\rm def}{=}} \newcommand{\bsl}{\textbackslash{}} \renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} \newtheorem{lem}{Лемма} \begin{document} % Кафедра (в родительном падеже) \chair{теоретических основ компьютерной безопасности и криптографии} % Тема работы \title{отчет} % Курс \course{второй} % Группа \group{231} % Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") \department{факультета компьютерных наук и информационных технологий} % Специальность/направление код - наименование %\napravlenie{09.03.04 "--- Программная инженерия} %\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} %\napravlenie{230100 "--- Информатика и вычислительная техника} %\napravlenie{231000 "--- Программная инженерия} \napravlenie{090301 "--- Компьютерная безопасность} % Для студентки. Для работы студента следующая команда не нужна. % \studenttitle{Студентки} % Фамилия, имя, отчество в родительном падеже \author{Гущина Андрея Юрьевича} % Заведующий кафедрой \chtitle{д.~ф.-м.~н.,~доцент} % степень, звание \chname{М.~Б.~Абросимов} %Научный руководитель (для реферата преподаватель проверяющий работу) \satitle{доцент} %должность, степень, звание \saname{Н.~Н.~Бондарев} % Руководитель практики от организации (только для практики, % для остальных типов работ не используется) % \patitle{к.ф.-м.н.} % \paname{С.~В.~Миронов} % Семестр (только для практики, для остальных % типов работ не используется) \term{третий} % Наименование практики (только для практики, для остальных % типов работ не используется) \practtype{Ознакомительная} % Продолжительность практики (количество недель) (только для практики, % для остальных типов работ не используется) \duration{2} % Даты начала и окончания практики (только для практики, для остальных % типов работ не используется) \practStart{22 июня 2019} \practFinish{05 июля 2019} % Год выполнения отчета \date{2020} \maketitle % Включение нумерации рисунков, формул и таблиц по разделам % (по умолчанию - нумерация сквозная) % (допускается оба вида нумерации) % \secNumbering % \tableofcontents % \intro % введение \section{Отслеживание следов в системе} Вариант 9. mspaint: запуск, чтение файла (ранее созданного без мониторинга), изменение представления <<Вид>> - убрать палитру, изменение рисунка, выход без изменения в файле. Для отслеживания следов, оставляемых программой mspaint после выполнения указанных действий я воспользовался программой procmon. При первом запуске procmon показывает множество <<событий>>, но большая часть из них лишняя для выполнения поставленной задачи (рис. \ref{fig:firstStart}). \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{procmon_start.png} \caption{procmon при первом запуске} \label{fig:firstStart} \end{figure} Для того, чтобы убрать лишнюю информацию можно установить фильтры. Я установил фильтры, которые делают какие-либо видимые изменения в системе, то есть оставляют следы. Среди них: RegCreateKey, RegRenameKey, RegDeleteKey, RegSetValue, RegDeleteValue, CreateFile, WriteFile (рис. \ref{fig:filters}). \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{filters.png} \caption{Установленные фильтры} \label{fig:filters} \end{figure} Первыми среди событий появились CreateFile. Можно заметить, что все запросы на создание файлов произошли по пути <>. При детальном рассмотрении этих файлов я выяснил, что единственным реальным следом оказался тот файл, что был записан в <> (рис. \ref{fig:prefetch}), в то время как остальные запросы являются фантомными, на что указывает дата последнего изменения этих файлов (рис. \ref{fig:system32}). Это можно объяснить тем, что директория system32 является системной, а .dll файлы в ней являются системными библиотеками. В связи с этим в дальнейшем я буду опускать запросы такого рода, так как их не имеет смысла рассматривать. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{paint_prefetch.png} \caption{Файл в директории Prefetch} \label{fig:prefetch} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{sys32.png} \caption{Файлы в директории system32} \label{fig:system32} \end{figure} Следующей за этими событиями появилась небольшая группа записей в <>. (рис. \ref{fig:rngSeed}). Судя по названию, это <<семя>> для ГПСЧ. Данную запись нельзя считать следом, так как этот ключ реестра при каждом запуске системы разный и невозможно установить источник значения, записанного в нём. \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{rng_seed.png} \caption{Изменение ключа RNG{\bsl}Seed} \label{fig:rngSeed} \end{figure} Далее следует множество однотипных операций типа RegCreateKey в ветке <>. Изучив эту ветку через программу regedit я обнаружил указанные ключи. Проверив на новой виртуальной машине, я выяснил, что данной ветки не существует при установке. Эти записи можно считать одним из искомых следов. (рис. \ref{fig:appletsCreate}) \begin{figure}[H] \centering \includegraphics[width=0.75\textwidth]{reg_create1.png} \caption{RegCreateKey в Applets и ключ в ветке Recent File List} \label{fig:appletsCreate} \end{figure} % \begin{figure}[H] % \centering % \includegraphics[width=0.8\textwidth]{appletsDir.png} % \caption{Ветка Applets в изучаемой (справа) и новой (слева) системах} % \label{fig:applets} % \end{figure} Далее в списке находится большое количество однотипных операций типа CreateFile (рис. \ref{fig:phantomFiles}). При детальном рассмотрении все записи оказались фантомными: дата последнего изменения файлов не изменилась. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{phantomFiles.png} \caption{Фантомные CreateFile} \label{fig:phantomFiles} \end{figure} С операциями RegCreateKey/RegSetValue (рис. \ref{fig:phantomRegistry}) другая ситуация -- записи в ветки HKLM и Explorer{\bsl}User Shell Folders не являются следами, так как они создаются при установке. А оставшиеся записи реестра в ветку HKCU можно считать следом. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{phantomRegistry.png} \caption{Операции записи в реестр} \label{fig:phantomRegistry} \end{figure} Также среди этих операций выделились записи в ветку ComDlg32 (рис. \ref{fig:comdlg}). В этой ветке хранятся записи о файлах, которые были открыты или сохранены с помощью диалогового окна Проводника Windows. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{comdlg.png} \caption{Обнаруженные операции записи в реестр} \label{fig:comdlg} \end{figure} В ветке OpenSaveMRU хранится список последних использованных файлов с определенным расширением (в данном случае bmp) (рис. \ref{fig:opensavemru}). \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{opensavemru.png} \caption{Ветка OpenSaveMRU} \label{fig:opensavemru} \end{figure} В ветке LastVisitedMRU хранится последний путь, который был открыт в диалоговом окне при использовании программы. В данном случае я в при работе с программой <> я открыл файл в директории <>. Название программы в этом ключе я выделил красным прямоугольником, а начало пути к директории -- синим (рис. \ref{fig:lastvisitedmru}). Обе эти ветки являются важными следами, так как по ним можно отследить какие файлы с помощью указанных программ открывались на данной системе. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{lastvisitedmru.png} \caption{Ветка LastVisitedMRU} \label{fig:lastvisitedmru} \end{figure} Далее я скрыл панель палитры, изменил файл и вышел без сохранения. В procmon снова появились однотипные операции, похожие на рассмотренные выше (рис. \ref{fig:appletsCreate}), но с одним важным исключением. Ключ <> появился впервые. Судя по его названию можно предположить, что он отвечает за видимость палитры. В нём записано значение 0, а во время эксперимента я скрыл панель палитры (рис. \ref{fig:visibleBar}). \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{visible_bar.png} \caption{Ключ Visible} \label{fig:visibleBar} \end{figure} При включении панели палитры этот ключ пропадает из реестра, из чего можно сделать вывод, что предположение было верным. Это важный след, который указывает на состояние, в котором находится программа после её закрытия. % \conclusion % заключение % \begin{thebibliography}{99} % \bibitem{Tannenbaum} Э.Танненбаум "Архитектура компьютера" (6-e издание) % \bibitem{RISC} http://shackmaster.narod.ru/vidmodes.htm % \bibitem{ALU} https://profi-user.ru/videoram/ % \bibitem{IBM} https://ru.wikipedia.org/wiki/Видеопамять % \end{thebibliography} % \bibliographystyle{gost780uv} % \bibliography{thesis} \end{document}