
Фреймворк реагирования на инциденты для macOS на основе Swift для сбора и анализа артефактов хоста, включая временные метки файловой системы, данные браузера, унифицированные журналы, механизмы сохранения и деревья процессов, с встроенным анализом и построением временных шкал.

Aftermath — это основанная на Swift открытая платформа для реагирования на инциденты.
Aftermath может использоваться защитниками для сбора и последующего анализа данных скомпрометированного хоста. Развёртывание Aftermath возможно через MDM (желательно), но также он может запускаться независимо из командной строки инфицированного пользователя.
Сначала Aftermath выполняет серию модулей для сбора данных. Результат будет записан либо в указанное вами место с помощью опции -o или --output, либо по умолчанию в каталог /tmp.
После завершения сбора итоговый zip-архив можно извлечь с диска конечного пользователя. Этот файл можно проанализировать с помощью аргумента --analyze, указав путь к архиву. Результаты анализа будут записаны в каталог /tmp. Администратор может распаковать этот каталог анализа и увидеть структурированное представление локально собранных баз данных, временную шкалу файлов с датами создания, последнего доступа и последнего изменения (если они доступны), а также историю (storyline), содержащую метаданные файлов, изменения в базах данных и информацию о браузере, чтобы потенциально отследить вектор заражения.
Чтобы собрать Aftermath локально, склонируйте его из репозитория
git clone https://github.com/jamf/aftermath.git
Перейдите в каталог Aftermath
cd <путь_к_каталогу_aftermath>
Соберите с помощью Xcode
xcodebuild -scheme "aftermath"
Перейдите в папку Release
cd build/Release
Запустите aftermath
sudo ./aftermath
Aftermath должен запускаться от root, а также иметь полный доступ к диску (FDA). FDA можно предоставить приложению Terminal, в котором он запущен.
По умолчанию Aftermath запускается командой
sudo ./aftermath
Для указания определённых опций
sudo ./aftermath [опция1] [опция2]
Примеры
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze <путь_к_zip_архиву_сбора>
Пользователи могут передать Aftermath текстовый файл с предикатами унифицированного журнала, используя аргументы --logs или -l. Файл, передаваемый Aftermath, должен быть текстовым, и каждый предикат должен быть разделён новой строкой. Кроме того, каждый элемент строки будет объектом словаря. Ключом в словаре будет то, что пользователь хочет назвать этот предикат. Например, если вы хотите увидеть все события входа в систему, можно создать предикат и назвать его login_events.
login_events: processImagePath содержит "loginwindow" и eventMessage содержит "com.apple.sessionDidLogin
tcc: process == "tccd"
Поскольку eslogger и tcpdump работают в дополнительных потоках, и цель состоит в том, чтобы собрать как можно больше данных, они завершают работу при выходе из aftermath. Из-за этого последняя строка json-файла eslogger или pcap-файла, созданного tcpdump, может быть усечена.
Существует пакет Aftermath.pkg, доступный в Releases. Этот пакет подписан и нотаризован. Он установит бинарный файл aftermath в /usr/local/bin/. Это идеальный способ развёртывания через MDM. Поскольку он установлен в bin, вы можете запускать aftermath следующим образом
sudo aftermath [опция1] [опция2]
Чтобы удалить бинарный файл aftermath, запустите AftermathUninstaller.pkg из Releases. Это удалит бинарный файл, а также выполнит aftermath --cleanup для удаления каталогов aftermath. Если каталоги aftermath находятся в других местах (например, из-за использования команды --output), ответственность за их удаление лежит на пользователе/администраторе.
--analyze -> analyze the results of the Aftermath results
usage: --analyze <path_to_aftermath_collection_file>
--collect-dirs -> specify locations of (space-separated) directories to dump those raw files
usage: --collect-dirs <path_to_dir> <path_to_another_dir>
--deep or -d -> perform a deep scan of the file system for modified and accessed timestamped metadata
WARNING: This will be a time-intensive, memory-consuming scan.
--disable -> disable a set of aftermath features that may collect personal user data
Available features to disable: browsers -> collecting browser information | browser-killswitch -> force-closes browers | -> databases -> tcc & lsquarantine databases | filesystem -> walking the filesystem for timestamps | proc-info -> collecting process information via TrueTree and eslogger | slack -> slack data | ul -> unified logging modules | all -> all aforementioned options
usage: --disable browsers browser-killswitch databases filesystem proc-info slack
--disable all
--es-logs -> specify which Endpoint Security events (space-separated) to collect (defaults are: create exec mmap). To disable, see --disable es-logs
usage: --es-logs setuid unmount write
--logs -> specify an external text file with unified log predicates (as dictionary objects) to parse
usage: --logs /Users/<USER>/Desktop/myPredicates.txt
-o or --output -> specify an output location for Aftermath collection results (defaults to /tmp)
usage: -o Users/user/Desktop
--pretty -> colorize Terminal output
--cleanup -> remove Aftermath folders from default locations ("/tmp", "/var/folders/zz/")
Этот проект использует проект с открытым исходным кодом TrueTree, написанный и лицензированный Джейроном Брэдли.