Таймлайн-анализ и 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-ФЗ), с документированием каждого шага.