Криминалистический подход к анализу временных атрибутов файлов в операционной системе семейства Microsoft Windows и файловой системе NTFS
Матвеева Веста Сергеевна
ведущий специалист по компьютерной криминалистике,
компания Group-ib
Согласно данным Википедии, типичным персонажем детективного жанра является преступник, который «совершает преступление, заметает следы, пытается противодействовать следствию». Ничего сверхнового из Википедии не узнаешь, но! надо отметить, что немыслимо, чтобы человек, нарушивший закон или совершивший иное общественно опасное деяние не пытался себя спасти путем запутывания следствия или сокрытия следов (исключения, конечно, бывают).
В виртуальном пространстве все немного сложнее в этом плане. До появления реальных случаев расследования компьютерных преступлений и набирающего обороты такого направления в коммерческой области, как: проведение исследований и судебных экспертиз, злоумышленники оставляли множество следов после своей активности во «взломанной» системе. На сегодняшний день техник противодействия криминалистическому исследованию компьютерной информации становится все больше. Об одной из них и пойдет речь в настоящей статье, а также будет приоткрыта завеса тайн компьютерных криминалистов.
Подмена временных атрибутов файлов. Это делают как вручную, переводя системные часы, так и с помощью специальных программ, которых существует достаточное количество. Но интересно то, что эти же функциональные возможности также прописывают у ряда вредоносных программ с целью ввести в заблуждение пользователя и отнести файл скорее к системному, чем к подозрительному. Таким образом, при просмотре свойств файла в ОС будут отображаться подмененные сведения. Но не все так просто с точки зрения криминалистики. Для распознания факта подмены используются особенности файловой системы. Все сведения, которые изложены ниже, справедливы для ОС Microsoft Windows и файловой системы NTFS, как для самого часто встречаемого сочетания ОС и файловой системы.
В файловой системе NTFS временные атрибуты файлов содержатся в файловой записи для каждого файла в главной файловой таблице (далее – MFT). И как ни странно у файла их ровно 8!, а не 3 как мы привыкли. За временные атрибуты отвечает две структуры $STANDARD_INFORMATION и $FILE_NAME, каждая из которых содержит: дату и время создания файла, последнего изменения файла, последнего доступа к файлу, а также дату и время последнего изменения сведений в файловой записи. На рисунке 1 приведена файловая запись, содержимое которой отображается с помощью ПО «AccessData FTK Imager»:
Рисунок 1
Если не вдаваться в подробности смещений упомянутых структур, то их легко распознать по содержимому. Время в данных структурах имеет формат ОС Microsoft Windows, записи которого выглядят так:
Рисунок 2
Для преобразования временной метки, которая указана в файловой записи, можно использовать специализированное средство «DCode Date»:
Рисунок 3
или преобразовывать ее вручную.
Однако можно получать доступ ко всем восьми атрибутам с помощью автоматизированных средств анализа: The Sleuth Kit (TSK) по команде «istat»:
Рисунок 4
или в графическом интерфейсе с помощью ПО «Autopsy Browser».
Рисунок 5
Ну, а теперь к главному. Правильная оценка временных атрибутов из структур $STANDARD_INFORMATION и $FILE_NAME дает криминалисту возможность правильно восстановить хронологию событий, что очень важно при исследовании.
Для начала необходимо представлять, при каких действиях с файлами меняются его атрибуты. Для этого на ОС Microsoft Windows XP и 7 для архитектур процессора x86 и x64 проведена серия тестов, результаты которых сведены в таблицах 1, 2 для текстовых и исполняемых файлов.
Таблица 1 – Windows XP
где названия столбцов обозначают следующее:
Rename – переименование файла;
Local Move – перемещение файла в пределах одной файловой системы;
Volume move – перемещение между файловыми системами;
Copy – копирование файла;
Create – создание файла;
Delete – удаление файла;
Open – открытие файла;
Properties – просмотр свойств файла;
Attributes – изменение атрибутов файла;
Modify – изменение файла;
по строкам записаны временные атрибуты файлов, содержащиеся в структурах STANDARD_INFORMATION (SI) и FILE_NAME (FN)
х – изменение атрибута файла;
х (РЕ) – изменение атрибута только для файлов РЕ-формата;
x(day) – изменение атрибута производится один раз в день при первом обращении к файлу;
x(?) – замечены случаи изменения атрибута, которые происходят не каждый раз;
(SI) – все сведения в структуре FILE_NAME копируются из предыдущей структуры STANDARD_INFORMATION;
(created) – все атрибуты в структуре FILE_NAME совпадают с датой создания файла из структуры STANDARD_INFORMATION.
В результате подобных тестов с другими форматами файлов и ОС обнаружены незначительные отличия от приведенных в таблицах 1, 2.
Как видно, данные в структуре $FILE_NAME создаются в момент создания файла и представляют собой копию даты создания и изменяются при переименовании, локальном перемещении, перемещении между файловыми системами, копировании и удалении файла. Следовательно, сведения в этой структуре не могут превосходить временные атрибуты из структуры $STANDARD_INFORMATION. Но это актуально именно для времени создания и изменения файла.
Время последнего доступа к файлу и атрибут MFT modified могут измениться только в структуре $STANDARD_INFORMATION. Поэтому время последнего доступа к файлу следует определять по структуре $STANDARD_INFORMATION. В ОС Microsoft Windows Vista и 7 по умолчанию время последнего доступа не изменяется для экономии ресурсов системы. Указанная опция регулируется значением ключа реестра: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem
NtfsDisableLastAccessUpdate = 1 (дата и время последнего доступа к файлу не изменяются при доступе к файлу)
= 0 (дата и время последнего доступа к файлу изменяются при доступе к файлу)
В таблицах 1, 2 приведены результаты испытаний с опцией изменения даты последнего доступа при обращении к файлу.
Атрибут MFT modified изменяется, когда хотя быть один атрибут файловой записи меняется. Но в силу времени разрешения (time resolution) файловой системы NTFS, которое составляет до 1 часа, сведения о последнем доступе к файлу сначала сохраняются в оперативную память, а затем записываются в файловую запись. Следовательно, небольшие расхождения в этих атрибутах могут быть. Но, стоит отметить, что при изменении атрибута Accessed атрибут MFT modified меняется не всегда.
В связи с описанными оговорками разберем подход криминалиста при проведении исследования НЖМД, который был задействован при совершении мошеннической операции в системе интернет-банкинга на стороне клиента.
На рисунке 5 приведены временные атрибуты вредоносной программы семейства «Trojan.Carberp». Такие программы часто встречаются в подобных инцидентах, так как позволяют производить скрытое от пользователя копирование данных, необходимых для аутентификации в системах дистанционного банковского обслуживания. Такие программы имеют функциональную возможность изменять временные атрибуты, отображаемые пользователю, на идентичные для системных файлов.
При восстановлении хронологии событий очень важным аспектом является правильное определение времени загрузки вредоносной программы. Попробуем применить полученные в данной статье сведения для определения временных атрибутов файла «SlknEKbbrSQbvDFPEI.exe».
Так как атрибуты в структуре $FILE_NAME не могут превосходить атрибуты в структуре $STANDARD_INFORMATION, то датой создания файла признается: 23.11.2012 г. 16:40:10. Оригинальная дата изменения файла при этом неизвестна, так как в структуре $STANDARD_INFORMATION она подменена, а в $FILE_NAME – является копией даты и времени создания файла, которая была сохранена в файловую запись при создании файла. Дата и время последнего доступа определяется из структуры $STANDARD_INFORMATION – 10.12.2012 г. 09:13:17. Сведения в файловой записи изменялись последний раз 04.12.2012 г. 14:40:20 в соответствии с атрибутом MFT modified, который не изменялся при доступе к файлу.
Таким образом, в следствие ручного анализа можно выявить верные временные атрибуты файла, что является достаточно трудоемким занятием, если количество файлов большое. Поэтому ниже приводится псевдокод, который позволяет автоматизировать процесс определения временных атрибутов файла, принимая на вход данные структур $STANDARD_INFORMATION и $FILE_NAME (дата и время последнего изменения файла при подмене атрибутов берется из структуры $FILE_NAME):
SI=null; // структура $STANDARD_INFORMATION FN=null; // структура $FILE_NAME Result=null; // структура реальных атрибутов SI=receive_standard_information(file); FN=receive_file_name(file); If (SI!=0 and FN!=null) { Result.Created = FN.Created If (SI.Modified Result.Modified) writeline (“The file was copied to the OS”) }Тонкостей в определении временных атрибутов файлов очень много. Но главное, что хотелось донести в этой статье, является идея о том, что по временным атрибутам файла можно восстановить даже действия, которые были произведены с файлами, что и помогает компьютерным криминалистам при проведении исследований и судебных экспертиз.
Подробнее: http://www.xakep.ru/post/60167/default.asp
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-22 » Комментирование кода и генерация документации в PHP
- 2024-04-22 » SEO в России и на Западе: в чем основные отличия
- 2024-04-22 » SEO для международного масштабирования
- 2024-04-22 » Как использовать XML-карты для продвижения сайта
- 2024-04-22 » Цифровой маркетинг: инструменты для продвижения и рекламы в 2024 году
- 2024-04-22 » Что такое CSS-модули и зачем они нам?
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
Каждый человек имеет право на собственное мнение — при условии, что оно совпадает с нашим Шоу Джордж Бернард - 1856-1950) - английский писатель. В своем творчестве ниспровергал догматизм и предвзятость, традиционность представлений |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.