
Автоматически извлекать криминалистическую временную шкалу из дампа оперативной памяти
Автоматическое извлечение криминалистической временной шкалы из дампов энергозависимой памяти.
AutoTimeliner запускает несколько плагинов Volatility3 для образов памяти Windows, Linux и macOS, затем объединяет их вывод в единую отсортированную CSV-временную шкалу:
| Плагин | Что собирает |
|---|---|
timeliner | События с метками времени от разных плагинов (все семейства ОС, когда поддерживаются) |
| Плагин | Что собирает |
|---|---|
timeliner | Метки времени от процессов, реестра, дескрипторов и т.д. |
mftscan | Записи MFT, найденные в памяти |
shellbags | История доступа к папкам пользователя из кустов реестра |
| Плагин | Что собирает |
|---|---|
linux.pslist | Контекст временной шкалы запуска/завершения процессов |
linux.bash | Данные истории команд оболочки |
linux.lsof | Данные открытых файлов из процессов |
| Плагин | Что собирает |
|---|---|
mac.pslist | Контекст временной шкалы запуска/завершения процессов |
mac.bash | Данные истории команд оболочки |
mac.lsof | Данные открытых файлов из процессов |
| Плагин | Что собирает |
|---|---|
psscan | Активные, завершённые и скрытые процессы с метками времени |
cmdline | Аргументы командной строки для каждого процесса |
userassist | Данные о выполнении программ из реестра Windows |
| Плагин | Что собирает |
|---|---|
netscan | Сетевые соединения с метками времени создания |
| Плагин | Что собирает |
|---|---|
malfind | Инъекции кода и подозрительные области памяти |
svcscan | Службы Windows (полезно для обнаружения персистентности) |
| Плагин | Что собирает |
|---|---|
dlllist | DLL, загруженные каждым процессом |
filescan | Файлы, открытые в памяти на момент сбора |
AutoTimeliner определяет семейство образа памяти автоматически и включает соответствующий набор плагинов для Windows, Linux или macOS. Для более быстрого запуска можно передать
--os-hint, чтобы пропустить автоматическое определение.
git clone https://github.com/andreafortuna/autotimeliner.git
cd autotimeliner
poetry install
pip install .
autotimeliner -f ФАЙЛ_ОБРАЗА [-t ВРЕМЕННОЙ_ПРОМЕЖУТОК] [-o ВЫВОД] [опции]
Извлечь полную временную шкалу из одного образа:
autotimeliner -f TargetServer.raw
Отфильтровать по определённому временному окну:
autotimeliner -f TargetServer.raw -t 2023-10-17..2023-10-21
Обработать все файлы .raw в каталоге с указанием пути вывода:
autotimeliner -f './*.raw' -o /evidence/timeline.csv
Ускорить запуск, если ОС дампа уже известна:
autotimeliner -f TargetServer.raw --os-hint windows
Использовать псевдонимы macOS для удобства:
autotimeliner -f MacbookCapture.mem --os-hint darwin
Запустить только timeliner и shellbags (пропустить MFT-сканирование):
autotimeliner -f TargetServer.raw --skip-mftscan
Полное криминалистическое сканирование (набор плагинов Windows + дополнительные расширенные плагины):
autotimeliner -f TargetServer.raw --with-dlllist --with-filescan --with-handles --with-envars
Быстрое сканирование, ориентированное на вредоносное ПО:
autotimeliner -f TargetServer.raw --skip-timeliner --skip-mftscan --skip-shellbags
Сбор временной шкалы, ориентированной на Linux (автоматически включает плагины Linux):
autotimeliner -f UbuntuWorkstation.mem
Сбор временной шкалы, ориентированной на macOS (автоматически включает плагины macOS):
autotimeliner -f MacbookCapture.mem
Выходной CSV-файл содержит следующие колонки:
AutoTimeliner включает несколько оптимизаций для сокращения времени идентификации:
--os-hint полностью обходит автоматическое определение ОС.linux, ubuntu, macos).путь + размер + время модификации).Файл кэша:
~/.cache/autotimeliner/volatility3/.autotimeliner_profile_cache.json
Во время обнаружения в журнал включаются сообщения о ходе зондирования и результатах, например:
OS probe attempt: family=windows plugin=windows.info.Info
OS probe returned no rows: windows.info.Info
Memory image identification succeeded: os=linux profile=linux:... probe=linux.banners.Banners
См. docs/migration.md для полного сравнения.
Ключевые изменения:
-p / --customprofile считается устаревшим — игнорируется без предупреждения.mftparser → mftscan — те же данные, новое имя плагина.mactime теперь опционален — используйте --use-mactime для старого рабочего процесса с body-файлами.poetry install
poetry run pytest
MIT — см. LICENSE.
Andrea Fortuna — [email protected] — andreafortuna.org
handles | Открытые дескрипторы (файлы, ключи реестра, мьютексы) |
envars | Переменные окружения процессов |
| Зависимость | Версия | Примечания |
|---|
| Python | ≥ 3.9 | |
| Volatility3 | ≥ 2.5 | устанавливается автоматически через Poetry/pip |
| jsonschema | ≥ 4.0 | включает проверку схемы Volatility3 и позволяет избежать предупреждения Dependency for validation unavailable: jsonschema |
| mactime | любая | опционально — требуется только для работы в устаревшем режиме --use-mactime |
| Флаг | Описание |
|---|
-f, --imagefile | Файл дампа памяти или глоб (например, '*.raw') |
-t, --timeframe | Фильтр по диапазону ГГГГ-ММ-ДД..ГГГГ-ММ-ДД |
-o, --output | Путь к выходному CSV-файлу (по умолчанию: <imagefile>-timeline.csv) |
--os-hint | Принудительно указать семейство ОС образа (windows, linux, mac; псевдонимы: win, macos, darwin) и пропустить автоидентификацию |
--skip-timeliner | Пропустить плагин timeliner |
--skip-mftscan | Пропустить плагин mftscan |
--skip-shellbags | Пропустить плагин shellbags |
--skip-psscan | Пропустить сканирование процессов |
--skip-cmdline | Пропустить извлечение командной строки |
--skip-netscan | Пропустить сканирование сетевых соединений |
--skip-userassist | Пропустить данные о выполнении программ |
--skip-svcscan | Пропустить сканирование служб Windows |
--skip-malfind | Пропустить обнаружение вредоносного ПО/инъекций |
--with-dlllist | Включить анализ DLL (медленно) |
--with-filescan | Включить сканирование открытых файлов (много записей) |
--with-handles | Включить сканирование дескрипторов (много записей) |
--with-envars | Включить извлечение переменных окружения |
--use-mactime | Устаревший режим: использовать внешний бинарник mactime |
-v, --verbose | Включить отладочное логирование |
--version | Вывести версию и выйти |
| Колонка | Описание |
|---|
Timestamp (UTC) | Метка времени в формате ISO 8601 (UTC) |
Source | Плагин, создавший запись |
Description | Имя файла, путь, процесс или ключ реестра |
Detail | Тип метки времени, пользователь или дополнительный контекст |
Inode | Номер inode в MFT (где применимо) |
UID / GID | Идентификаторы пользователя/группы |
Size | Размер файла в байтах |
Mode | Строка режима файла |