Aftermath — это платформа реагирования на инциденты с открытым исходным кодом на основе Swift.
Защитники могут использовать Aftermath для сбора и последующего анализа данных со скомпрометированного хоста. Aftermath можно развернуть из MDM (в идеале), но он также может работать независимо от командной строки зараженного пользователя.
Aftermath сначала запускает серию модулей для сбора данных. Вывод будет либо записан в выбранное вами место с помощью опции -o
или --output
, либо по умолчанию он будет записан в каталог /tmp
.
После завершения сбора окончательный файл zip/архива можно извлечь с диска конечного пользователя. Затем этот файл можно проанализировать, используя аргумент --analyze
указывающий на файл архива. Результаты этого будут записаны в каталог /tmp
. Затем администратор может разархивировать этот каталог анализа и просмотреть проанализированное представление локально собранных баз данных, временную шкалу файлов с датами создания файла, датами последнего доступа и последнего изменения (если они доступны), а также сюжетную линию, включающую файл. метаданные, изменения базы данных и информация браузера для потенциального отслеживания вектора заражения.
Чтобы собрать Aftermath локально, клонируйте его из репозитория.
git clone https://github.com/jamf/aftermath.git
cd
в каталог Aftermath
cd < path_to_aftermath_directory >
Сборка с использованием Xcode
xcodebuild -scheme " aftermath "
cd
в папку Release
cd build/Release
Бегите после последствий
sudo ./aftermath
Для запуска Aftermath необходимо иметь права root, а также полный доступ к диску (FDA) . FDA может быть предоставлено приложению Терминала, в котором оно работает.
Использование Aftermath по умолчанию выполняется
sudo ./aftermath
Чтобы указать определенные параметры
sudo ./aftermath [option1] [option2]
Примеры
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
Пользователи имеют возможность передавать Aftermath текстовый файл с предикатами унифицированного журнала, используя аргументы --logs
или -l
. Файл, передаваемый в Aftermath, должен быть текстовым, и каждый предикат должен быть разделен новой строкой. Кроме того, каждая строка будет объектом словаря. Ключ в словаре будет называть этот предикат так, как пожелает пользователь. Например, если вы хотите просмотреть все события входа в систему, мы создадим предикат и назовем его login_events
.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
Поскольку eslogger
и tcpdump
работают в дополнительных потоках и цель состоит в том, чтобы собрать из них как можно больше данных, они завершают работу при выходе aftermath. Из-за этого последняя строка файла json eslogger или файла pcap, созданного с помощью tcpdump, может быть обрезана.
В разделе «Релизы» доступен файл Aftermath.pkg. Этот пакет подписан и нотариально заверен. Он установит двоичный файл aftermath в /usr/local/bin/
. Это был бы идеальный способ развертывания через MDM. Поскольку это установлено в bin
, вы можете запустить последствия, например
sudo aftermath [option1] [option2]
Чтобы удалить двоичный файл aftermath, запустите AftermathUninstaller.pkg
из раздела Releases. Это приведет к удалению двоичного файла, а также запустит aftermath --cleanup
для удаления каталогов 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 с открытым исходным кодом, написанный и лицензированный Джароном Брэдли.