Aftermath เป็นเฟรมเวิร์กการตอบสนองต่อเหตุการณ์แบบโอเพ่นซอร์สที่ใช้ Swift
ฝ่ายป้องกันสามารถใช้ประโยชน์จากผลที่ตามมาเพื่อรวบรวมและวิเคราะห์ข้อมูลจากโฮสต์ที่ถูกบุกรุกในภายหลัง ผลพวงสามารถปรับใช้ได้จาก 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
ผลที่ตามมาจะต้องเป็นรูทและต้องมี สิทธิ์เข้าถึงดิสก์แบบเต็ม (FDA) จึงจะทำงานได้ สามารถมอบ FDA ให้กับแอปพลิเคชัน Terminal ที่ใช้งานอยู่ได้
การใช้งานเริ่มต้นของ 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
ทำงานบนเธรดเพิ่มเติม และเป้าหมายคือการรวบรวมข้อมูลจากเธรดเหล่านั้นให้ได้มากที่สุดเท่าที่เป็นไปได้ เธรดเหล่านั้นจึงออกเมื่อผลที่ตามมาออก ด้วยเหตุนี้ บรรทัดสุดท้ายของไฟล์ eslogger json หรือไฟล์ pcap ที่สร้างจาก tcpdump อาจถูกตัดทอน
มี Aftermath.pkg ให้ใช้งานภายใต้ Releases PKG นี้ลงนามและรับรองแล้ว มันจะติดตั้งไบนารีผลพวงที่ /usr/local/bin/
นี่จะเป็นวิธีที่ดีที่สุดในการปรับใช้ผ่าน MDM เนื่องจากสิ่งนี้ถูกติดตั้งใน bin
คุณจึงสามารถเรียกใช้ผลพวงได้เช่น
sudo aftermath [option1] [option2]
หากต้องการถอนการติดตั้งไบนารีผลพวง ให้รัน 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 แบบโอเพ่นซอร์ส ซึ่งเขียนและอนุญาตโดย Jaron Bradley