פורנזיקת זיכרון

ניתוח פורנזי של זיכרון 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 לתמונה מלאה של האירוע.