פורנזיקת זיכרון
ניתוח פורנזי של זיכרון RAM מהווה תחום קריטי ומתמחה בתוך החקירה הדיגיטלית, המתמקד בחילוץ ובניתוח של נתונים נדיפים הקיימים רק בזמן שהמערכת פועלת. בשונה מהפורנזיקה המסורתית של הדיסק, אשר בוחנת נתונים מתמשכים המאוחסנים בדיסקים קשיחים או ב-SSD, פורנזיקת הזיכרון לוכדת את המצב המדויק של המערכת ברגע הרכישה, וחושפת תהליכים פעילים, חיבורי רשת פעילים, אישורי גישה בזיכרון, מפתחות קריפטוגרפיים, נוזקת fileless וארטיפקטים שתוקפים מתוחכמים משאירים בכוונה אך ורק ב-RAM כדי להתחמק מזיהוי. טכניקה זו הפכה לחיונית בחקירת איומים מתקדמים (APTs), כופרה מודרנית, והתקפות המשתמשות בטכניקות של living-off-the-land, שבהן הפורצים פועלים אך ורק בזיכרון תוך שימוש בכלים לגיטימיים של מערכת ההפעלה. חלון הזמן לאיסוף הוא קריטי: ברגע שהמערכת מכובה, מאותחלת מחדש או נכנסת למצב שינה (hibernation), ארטיפקטים נדיפים אלו אובדים ללא תקנה, מה שהופך את מהירות ומתודולוגיית הרכישה לגורמים מכריעים להצלחת החקירה הפורנזית.
מדוע פורנזיקת זיכרון
ארטיפקטים נדיפים אובדים בכיבוי. הזיכרון מכיל:
- תהליכים פעילים: נוזקת fileless, הזרקות קוד
- חיבורי רשת: C2 active connections, sockets פתוחים
- אישורי גישה: סיסמאות ב-plaintext, hashes NTLM במטמון
- קריפטוגרפיה: מפתחות הצפנה בזיכרון
- Registry hives: שינויים שלא נשמרו
- Handles ו-DLLs: הזרקות, hooking, rootkits
רכישת זיכרון
כלי רכישה
- FTK Imager: כלי חינמי של AccessData, ממשק גרפי
- DumpIt: קובץ הרצה נייד בשורה אחת, מהיר
- WinPmem: Open-source, תומך ברכישת kernel memory
- Magnet RAM Capture: Free tool, קל לשימוש
- LiME (Linux): Loadable Kernel Module עבור Linux systems
- Belkasoft RAM Capturer: עובד גם עם anti-dumping
שיקולי רכישה
- לרכוש את הזיכרון לפני החקירה - הניתוח משנה את המצב
- מערכת live: להשתמש בכלים הממזערים את ה-footprint
- מערכת וירטואלית: snapshot של ה-VM או חילוץ של .vmem
- מערכת פיזית: לשקול רכישה דרך FireWire/Thunderbolt DMA
- לתעד את השעה המדויקת של הרכישה עבור ה-timeline
ניתוח עם Volatility
Volatility Framework הוא כלי open-source בסטנדרט הזהב לניתוח זיכרון, התומך ב-Windows, Linux, macOS ובפורמטים מגוונים של dump.
פקודות חיוניות
# Identify the system profile
vol.py -f memory.dmp imageinfo
# List processes
vol.py -f memory.dmp --profile=Win10x64 pslist
vol.py -f memory.dmp --profile=Win10x64 pstree
# Hidden processes (DKOM)
vol.py -f memory.dmp --profile=Win10x64 psxview
# Network connections
vol.py -f memory.dmp --profile=Win10x64 netscan
# Loaded DLLs
vol.py -f memory.dmp --profile=Win10x64 dlllist -p <PID>
# Process command line
vol.py -f memory.dmp --profile=Win10x64 cmdline
# Process dumps
vol.py -f memory.dmp --profile=Win10x64 procdump -p <PID> -D output/
# Credential extraction
vol.py -f memory.dmp --profile=Win10x64 hashdump
vol.py -f memory.dmp --profile=Win10x64 lsadump
ניתוח נוזקת Fileless
נוזקת fileless שוכנת אך ורק בזיכרון, ומשתמשת בכלים לגיטימיים (PowerShell, WMI) כדי להתחמק מ-AV. טכניקות זיהוי:
- Process injection: לחפש זיכרון RWX, remote threads
- ניתוח PowerShell: פקודות חשודות ב-console history
- Hollowing: תהליכים לגיטימיים עם קוד שהוחלף
- Reflective DLL Injection: DLLs שאינם ממופים בדיסק
דוגמה: זיהוי Process Injection
# Look for suspicious VADs (RWX memory)
vol.py -f memory.dmp --profile=Win10x64 malfind
# List code injections
vol.py -f memory.dmp --profile=Win10x64 hollowfind
# Analyze suspicious handles
vol.py -f memory.dmp --profile=Win10x64 handles -p <PID> -t Process,Thread
חילוץ אישורי גישה
הזיכרון מכיל לעיתים קרובות אישורי גישה ב-plaintext או כאלה הניתנים לפיצוח בקלות:
- LSASS dump: NT hashes, Kerberos tickets, סיסמאות ב-plaintext
- Registry hives: SAM, SYSTEM עבור hashdump offline
- Browser memory: סיסמאות של טפסים, cookies של סשן
- ספציפי לאפליקציה: אישורי גישה של אפליקציות (email, VPN וכו')
שחזור Timeline
לקשר אירועים מהזיכרון עם ארטיפקטים אחרים:
# Timeline of processes and connections
vol.py -f memory.dmp --profile=Win10x64 timeliner --output=body --output-file=timeline.body
# Convert to a readable format
mactime -b timeline.body -d > timeline.csv
Rootkits ו-DKOM
Direct Kernel Object Manipulation (DKOM) מסתיר תהליכים על ידי שינוי kernel structures. לזהות באמצעות השוואה בין מקורות מרובים:
- psxview: משווה pslist, psscan, thrdproc וכו'
- driverirp: מפרט drivers ואת ה-IRP hooks שלהם
- ssdt: System Service Descriptor Table hooks
- idt: Interrupt Descriptor Table modifications
תוספי Volatility מתקדמים
- yarascan: סריקת זיכרון עם כללי YARA
- strings: חילוץ strings מתהליכים ספציפיים
- clipboard: תוכן ה-clipboard של Windows
- notepad: טקסט מחלונות Notepad פתוחים
- mftparser: שחזור ה-$MFT מהזיכרון
- svcscan: פירוט Windows services
כלים משלימים
- Rekall: Fork של Volatility עם features נוספים
- Redline: ממשק גרפי של FireEye לניתוח
- MemProcFS: מעגן את ה-memory dump כ-filesystem
- Bulk Extractor: חילוץ המוני של features
אתגרים
- Dumps גדולים (16GB+ RAM) איטיים לניתוח
- טכניקות anti-forensics עלולות להשחית dumps
- Encrypted memory דורש keys לניתוח
- מבני kernel משתנים בין OS versions
המלצות סופיות
פורנזיקת זיכרון חיונית לחקירת התקפות מתקדמות ונוזקת fileless. בצעו אוטומציה של רכישת זיכרון באירועים חשודים באמצעות EDR. תרגלו ניתוח עם memory dumps ציבוריים (DFIRScience, Volatility Foundation). תמיד קשרו ממצאי זיכרון עם disk forensics ו-network forensics לתמונה מלאה של האירוע.
