Таймлайн-анализ и MAC-времена

Этот урок учит выстраивать события в хронологию по временным меткам файлов и системы — и делать это так, чтобы результат выдержал проверку.

Таймлайн-анализ — упорядочивание всех найденных событий по времени, чтобы восстановить последовательность действий: когда что произошло.

Отдельные улики — это точки. Таймлайн соединяет их в линию: вот вход злоумышленника в 02:10, вот созданный им файл в 02:12, вот сетевое соединение в 02:14, вот изменённый системный файл в 02:20. Хронология превращает разрозненные факты в понятную историю атаки. Без неё аналитик тонет в тысячах событий и не может ответить на главный вопрос расследования: что было первым звеном (initial access), что произошло потом и где находится «точка ноль».

Важно сразу обозначить рамку. Таймлайн строят при легальном разборе инцидента: на своей или корпоративной системе, к которой есть право доступа, либо на учебном/CTF-образе. Это не инструмент слежки за человеком, а способ реконструировать события на машине, которую вы имеете право исследовать. В России неправомерный доступ к чужой информации и нарушение тайны переписки наказуемы (ст. 272, 138 УК), а персональные данные защищает 152-ФЗ — поэтому исследователь работает с санкции владельца и по копии, а не на живой чужой системе.

MAC-времена

У каждого файла есть набор временных меток, обобщённо называемых MAC:

  • M (Modified) — когда менялось содержимое файла.
  • A (Accessed) — когда к файлу последний раз обращались.
  • C — в Windows/NTFS это Created (создание), в Linux/ext — Changed (изменение метаданных inode).

В NTFS добавляется ещё B (Birth) — рождение файла, а каждая метка дублируется в двух местах ($STANDARD_INFORMATION и $FILE_NAME), что важно при выявлении подделки времени. Эти две группы атрибутов обновляются по-разному: $STANDARD_INFORMATION правится в том числе из пользовательского режима (и потому уязвим к подмене), а $FILE_NAME меняется ядром при операциях с каталогом и подделать его сложнее. Именно поэтому расхождение «штампов» в этих двух местах — сильный сигнал.

Файл malware.exe (NTFS):
  Modified : 2026-06-22 02:12
  Accessed : 2026-06-22 02:13
  Created  : 2026-06-22 02:11
  -> появился и был запущен ночью — подозрительно

Полезно помнить про практические нюансы. На многих системах обновление времени доступа (A) отключено ради производительности (в NTFS — параметр NtfsDisableLastAccessUpdate, в Linux — монтирование с relatime/noatime), поэтому отсутствие «свежего» A не означает, что файл не открывали. И наоборот: антивирус, индексатор или резервное копирование могут массово «трогать» файлы и портить картину доступов. Хороший аналитик знает эти фоновые процессы и не принимает их следы за действия злоумышленника.

Разберём короткий учебный пример. Допустим, на корпоративном ноутбуке, который вы исследуете по заявке владельца, в каталоге загрузок появился файл invoice.pdf.exe. По меткам видно: создан в 02:11, изменён в 02:12, к нему обращались в 02:13. Рядом в той же минуте создаётся svchost32.exe в каталоге Temp. Сами по себе времена ни о чём не «кричат», но их соседство в ночное окно, нелогичное двойное расширение и появление второго исполняемого файла секундой позже выстраиваются в гипотезу: пользователь открыл вложение, оно сбросило нагрузку. Эту гипотезу затем подтверждают или опровергают другими артефактами — журналом запуска, prefetch, сетевыми соединениями. Так таймлайн работает не как готовый ответ, а как карта, по которой ведут проверку версий.

Как строят таймлайн

Собирают временные метки из множества источников: файловой системы, логов, реестра, журналов событий, истории браузера — и сливают в единую отсортированную ленту. Классический инструмент — The Sleuth Kit (fls + mactime) и фреймворк Plaso/log2timeline, который агрегирует десятки типов артефактов в «супертаймлайн».

# Sleuth Kit: список файлов с временами -> таймлайн
fls -r -m / evidence.img > bodyfile.txt
mactime -b bodyfile.txt -d > timeline.csv

# Plaso: супертаймлайн из множества артефактов
log2timeline.py timeline.plaso evidence.img
psort.py -o l2tcsv timeline.plaso > supertimeline.csv

На практике «сырой» супертаймлайн огромен — миллионы строк. Поэтому его не читают целиком, а сужают окно: берут известную опорную точку (время срабатывания алерта, жалоба пользователя, странный файл) и смотрят, что происходило за минуты до и после. Этот приём называют «pivoting» — отталкиваясь от одного факта, раскручивают всю цепочку. Удобно фильтровать по типу артефакта (только prefetch, только входы) и по подозрительным каталогам (Temp, Downloads, /tmp).

Ещё один практический навык — цветовое и тематическое разделение лент. Опытные аналитики ведут не один монолитный таймлайн, а несколько слоёв: «события файловой системы», «входы и аутентификация», «запуски программ», «сеть». Накладывая их друг на друга вокруг опорной точки, легче увидеть причинно-следственные связи: вход по сети предшествовал запуску, запуск — созданию файла, файл — исходящему соединению. Такой послойный взгляд защищает от ложных совпадений: если два события просто оказались рядом во времени, но принадлежат не связанным процессам, это сразу заметно. Документируйте, какие источники вошли в таймлайн и какие нет, — пробел в покрытии (например, не собрали историю браузера) сам по себе важная оговорка в выводах.

Как работает под капотом

Каждый артефакт несёт время; задача — привести их к единой шкале (часовой пояс, UTC) и отсортировать. Несоответствия во временах часто и есть улика: если файл «создан» позже, чем «изменён», или метки $STANDARD_INFORMATION и $FILE_NAME расходятся — возможно применялся timestomping (подделка времени, приём анти-форензики).

Под капотом важно понимать источник истины для каждого времени. Часть меток хранит файловая система, часть — прикладные программы (в своих базах), часть — журналы ОС. У них разные часовые пояса, разная точность и разная стойкость к подделке. Журнал событий, например, фиксирует время по своим часам, а метка файла — по часам файловой системы; если системные часы переводили, метки «поедут». Поэтому первым делом исследователь фиксирует, в каком поясе и с какими часами работала система (это видно по реестру и логам), и только потом доверяет хронологии.

Частые ошибки

  • Игнорировать часовые пояса. Без приведения к единому поясу события с разных систем не сопоставятся.
  • Доверять одной метке. Время доступа (A) легко меняется простым открытием; опираются на совокупность.
  • Не замечать timestomping. Совпадающие «ровные» времена или расхождение пар меток — признак подделки.
  • Путать C в Linux и Windows. Это Changed (inode) против Created — разный смысл.
  • Работать на оригинале. Таймлайн строят по образу-копии (read-only), сверяя его хеш, иначе анализ сам испортит метки и разрушит доказательственную ценность.

Итоги

  • Таймлайн соединяет улики в хронологию «когда что произошло» и позволяет найти «точку ноль» инцидента.
  • MAC-времена (Modified, Accessed, Created/Changed) — основа; в NTFS есть и Birth, а метки дублируются в $STANDARD_INFORMATION/$FILE_NAME.
  • Инструменты — Sleuth Kit (mactime) и Plaso; следят за поясами, фоновыми процессами и признаками подделки времени.
  • Анализ ведут по копии read-only, в правовой рамке (272/138 УК, 152-ФЗ), с документированием каждого шага.
Проверьте себя
1. Что означает M в MAC-временах файла?
AПеремещение файла
BИзменение содержимого (Modified)
CМонтирование диска
DМаркировку файла
2. Зачем строят таймлайн при расследовании?
AЧтобы ускорить диск
BЧтобы упорядочить события по времени и восстановить последовательность атаки
CЧтобы зашифровать улики
DЧтобы уменьшить образ
3. Что может указывать на timestomping (подделку времени)?
AБольшой размер файла
BРасхождение временных пар или нелогичные метки (создан позже изменения)
CВысокая загрузка CPU
DШифрование файла