Aftermath는 Swift 기반의 오픈 소스 사고 대응 프레임워크입니다.
방어자는 손상된 호스트로부터 데이터를 수집하고 후속 분석하기 위해 Aftermath를 활용할 수 있습니다. Aftermath는 MDM에서 배포할 수 있지만(이상적으로는) 감염된 사용자의 명령줄에서 독립적으로 실행할 수도 있습니다.
Aftermath는 먼저 수집을 위해 일련의 모듈을 실행합니다. 이것의 출력은 -o
또는 --output
옵션을 통해 선택한 위치에 기록되거나 기본적으로 /tmp
디렉토리에 기록됩니다.
수집이 완료되면 최종 zip/아카이브 파일을 최종 사용자의 디스크에서 가져올 수 있습니다. 그런 다음 아카이브 파일을 가리키는 --analyze
인수를 사용하여 이 파일을 분석할 수 있습니다. 결과는 /tmp
디렉토리에 기록됩니다. 그런 다음 관리자는 해당 분석 디렉터리의 압축을 풀고 로컬로 수집된 데이터베이스의 구문 분석된 보기, 파일 생성, 마지막 액세스 및 마지막 수정 날짜(사용 가능한 경우)가 포함된 파일 타임라인 및 파일이 포함된 스토리라인을 볼 수 있습니다. 메타데이터, 데이터베이스 변경 사항, 브라우저 정보를 통해 잠재적으로 감염 벡터를 추적할 수 있습니다.
Aftermath를 로컬로 빌드하려면 저장소에서 복제하세요.
git clone https://github.com/jamf/aftermath.git
Aftermath 디렉터리로 cd
이동하세요.
cd < path_to_aftermath_directory >
Xcode를 사용하여 빌드
xcodebuild -scheme " aftermath "
cd
Release 폴더에 넣으세요
cd build/Release
여파를 실행
sudo ./aftermath
Aftermath를 실행하려면 루트여야 하며 전체 디스크 액세스(FDA)가 있어야 합니다. FDA는 실행 중인 터미널 애플리케이션에 승인될 수 있습니다.
Aftermath 실행의 기본 사용법
sudo ./aftermath
특정 옵션을 지정하려면
sudo ./aftermath [option1] [option2]
예
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
사용자는 --logs
또는 -l
인수를 사용하여 통합 로그 조건자의 텍스트 파일을 Aftermath에 전달할 수 있습니다. Aftermath에 전달되는 파일은 텍스트 파일이어야 하며 각 조건자는 줄바꿈으로 구분되어야 합니다. 또한 각 품목은 사전 개체가 됩니다. 사전의 키는 사용자가 이 술어를 호출하기를 원하는 모든 것입니다. 예를 들어 모든 로그인 이벤트를 보려면 조건자를 만들고 이름을 login_events
로 지정합니다.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
eslogger
및 tcpdump
추가 스레드에서 실행되고 목표는 이들로부터 최대한 많은 데이터를 수집하는 것이므로 여파가 종료되면 종료됩니다. 이로 인해 eslogger json 파일 또는 tcpdump에서 생성된 pcap 파일의 마지막 줄이 잘릴 수 있습니다.
릴리스 아래에는 Aftermath.pkg가 있습니다. 이 패키지는 서명되고 공증되었습니다. /usr/local/bin/
에 Aftermath 바이너리를 설치합니다. 이는 MDM을 통해 배포하는 이상적인 방법입니다. 이것은 bin
에 설치되어 있으므로 다음과 같은 여파를 실행할 수 있습니다.
sudo aftermath [option1] [option2]
Aftermath 바이너리를 제거하려면 릴리스에서 AftermathUninstaller.pkg
를 실행하세요. 그러면 바이너리가 제거되고 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/)
이 프로젝트는 Jaron Bradley가 작성하고 라이선스를 부여한 오픈 소스 TrueTree 프로젝트를 활용합니다.