1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
\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. Можно заметить, что все запросы на создание файлов произошли по пути <<C:{\bsl}WINDOWS>>. При детальном рассмотрении этих файлов я выяснил, что единственным реальным следом оказался тот файл, что был записан в <<C:{\bsl}WINDOWS{\bsl}Prefetch>> (рис. \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}
Следующей за этими событиями появилась небольшая группа записей в <<HKLM{\bsl}SOFTWARE{\bsl}Microsoft{\bsl}Cryptography{\bsl}RNG{\bsl}Seed>>. (рис. \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 в ветке
<<HKCU{\bsl}Software{\bsl}Microsoft{\bsl}Windows{\bsl}CurrentVersion{\bsl}Applets>>. Изучив эту ветку через программу 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 хранится последний путь, который был открыт в диалоговом окне при использовании программы. В данном случае я в при работе с программой <<mspaint.exe>> я открыл файл в директории <<C:{\bsl}Documents and Settings{\bsl}student1{\bsl}Рабочий стол{\bsl}dir>>. Название программы в этом ключе я выделил красным прямоугольником, а начало пути к директории -- синим (рис. \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}), но с одним важным исключением. Ключ <<HKCU{\bsl}Software{\bsl}Microsoft{\bsl} Windows{\bsl}CurrentVersion{\bsl}Applets{\bsl}Paint{\bsl}General-Bar4{\bsl}Visible>> появился впервые. Судя по его названию можно предположить, что он отвечает за видимость палитры. В нём записано значение 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}
|