שביל הפירורים… Windows Forensics

האם ניתן למצוא רמזים למתקפות? מהו "שביל הפירורים" הדיגיטלי? האם באירועי סייבר (Incident) מוצאים Patient Zero או Root Cause כמו שציפינו? והאם התחקור יכול להגיע לרמות עומק מירביות?

בכדי לדעת לבצע תחקור מעמקי אנו מחויבים לדעת איך עובדת מערכת הפעלה מקצה לקצה בכדי לדעת היכן ממוקם כל נתיב וכל קובץ.

You can’t protect what you don’t know you’ve got

ישנם מספר דגשים במערכת הפעלה שמומלץ לדעת אותם לעומק והם: תהליך אתחול של מערכת הפעלה, מיקום קבצים לפי אפליקציות, רשת וכן הלאה, תצורת קריאה לרכיבים במערכת ועבודה עם Windows Services.

תהליך אתחול Windows

רגע לפני שמבצעים פורנזיקה על מערכות הפעלה חשוב להבין את הצורה שבו Windows Client עובד ואת האופן שבו הוא שומר ורושם כל פעולה, ואחרי הכל ישנם דרכים שונות לבצע פורנזיקה מול Windows Client.

למרות שישנם הבדלים בין מערכות הפעלה שונות כדוגמת Windows 7 אל מול Windows 10 עדיין אופן וצורת העבודה של שתי המערכות היא דומה, כלומר כל אותם תהליכי Boot נעשים באופן זהה לפי הנקודות הבאות:

שלב BIOS (או לחלופין POST)

תהליך Boot Loader

שלב זיהוי חומרה

טעינת Kernel

שלב User Login

השינוי מול Windows 10 הוא באופן שבו נעשית הגישה מול אותם תהליכים ידועים, כלומר אם נקח מצב שבו ישנה תחנה מוגדרת עם UEFI אנו נוכל לשים לב בכל אותם תהליכים שישנה קריאה מול UEFI:

בשלב PreBoot (שלב Bios) נעשית בדיקה מול UEFI Firmware וגם בשלב של Initial Startup נעשית גישה אל bootmgfw ולאחר מכן מול OS Loader מול winload אך קובצי EFI.

גם אם נקח את Windows XP נוכל לראות כי תהליך העליה הוא זהה לחלוטין אך ישנם הבדלים בגישה אל החומרה ואל הקבצים הנטענים בזמן תהליך העליה.

אם נתמקד לרגע בתהליך העליה של Windows 10 נוכל לראות כי התהליך מחולק לאותם שלבים מוכרים רק עם כמה שינויים:

שלב PreBoot – שלב Power-On Self-Test (או בקצרה POST) אשר טוען חומרה (firmware) ולמעשה בודק האם ישנו MBR או PBR תקין ולאחר מכן יכול להעביר את הפעולות לשלב Windows Boot Manager.

בשלב PreBoot ישנו הבדל כאשר עובדים מול הגדרת BOIS רגילה או מול UEFI כלומר בהגדרת BIOS רגילה תהליך יעבוד עם MBR/PBR (Bootstrap Code) ובמידה וישנו UEFI התהליך יעבוד עם UEFI Firmware.

בגרסאות מתקדמות של Windows 10 אשר עובדות עם אבטחה נוספת ישנה עדיפות של GPT על גבי MBR.

שלב Windows Boot Manager – לאחר השלב הראשון שבו PreBoot עשה בדיקות חומרה ואישר את תקינות וטעינת החומרה, יתבצע שבל Windows Boot Manager שבו נעשית בדיקה לגבי מערכות הפעלה קיימות, למשל האם ישנה מערכת אחת או שישנו Dual Boot.

לאחר בחירה נוכל לעבוד עם השלב של Winload.exe בכדי שנוכל לעלות למערכת הנדרשת, חשוב להדגיש כי גם בשלב זה ישנה גישה שונה אל Boot MGR כי מול BIOS רגיל המערכת ניגשת אל %SystemDrive%\bootmgr ובמידה וישנו UEFI המערכת תיגש אל \EFI\Microsoft\Boot\bootmgfw.efi.

שלב Windows OS Loader – לאחר שלב Windows Boot Manager מגיע שלב שבו טוען WinLoad.exe דרייברים בכדי שיוכל להתחיל את תהליך של Windows NT OS Kernel ובכדי שיתחיל תהליך של Kernel מול החומרה.

בהגדרת BIOS רגילה המערכת תבצע קריאה מול הנתיב הבא %SystemRoot%\system32\winload.exe ובמידה והמערכת מוגדרת UEFI המערכת תיגש לנתיב הבא %SystemRoot%\system32\winload.efi.

שלב Windows NT OS Kernel – בשלב האחרון Kernel ניגש אל החומרה וטוען דרייברים ולאחר מכן טוען ערכים שונים בינהם Registry וכן הלאה. לאחר שישנה תקינות אנו למעשה רואים ממשק לוגין. בשלב זה המערכת ניגשת לנתיב %SystemRoot%\system32\ntoskrnl.exe

הערה: חשוב להדגיש כי במידה וישנו Windows 10 עם Secure Boot התהליך עדיין אותו תהליך אך ברקע ישנם פעולות נוספות, למשל במידה וישנו Secure Boot תתבצע בדיקת חומרה (firmware) יחד עם בדיקת חתימה דיגיטלית של אותה חומרה ותוודא שאין שינוי כלשהוא ברמת חומרה.

ראיות ופירורי מידע

מכיוון שכל פעולה שאנו מבצעים ברמת מערכת הפעלה נרשמת ומתועדת לעיתים באופן מפורט לעיתים פחות (גם אם לא מופעלים לוגים) אנו יכולים להתחקות אחר כל אותן פעולות ולקבל את כל המידע שהתבצע על פעולה כלשהיא.

הפעולות אשר נרשמות במערכת הפעלה הם פעולות רבות,את חלקן אפשר לראות לפי פעולות Most Recent Used (בקצרה MRU) או לצלול עם אפשרות shellbags שמאפשר לבצע תחקור ומתבסס על גבי Registry.

לפני שנתמקד באפשרויות השונות של shellbags נתאר מספר פעולות אשר נרשמות ומתועדות, בין היתר אפשר למנות את הפעולות הבאות:

הורדת קבצים – מעקב אחר כל קובץ אשר נפתח או נשמר מתוך ממשק או אפליקציה או כל ממשק אחר. במערכות הפעלה של Windows 10 המידע נשמר בנתיב הבא:

NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePIDlMRU

באפליקציות אשר נמצאות במערכות Windows 10 המידע נשמר בנתיב הבא

%USERPROFILE%\AppData\Roaming

בנוסף לאלה ישנם פעולות נוספות, כגון: Email Attachment, Skype History, Browsing, Downloads, ADS

הרצת אפליקציות – מעקב אחר פתיחה ופעולות של אפליקציות שונות (User Assist), במערכות Windows 10 המידע נשמר בנתיב הבא

NTUSER.DAT HIVE NTUSER.DAT\Software\Microsoft\Windows\ Currentversion\Explorer\UserAssist\{GUID}\ Count

ישנם פרמטרים שונים למעקב אחר אפליצקיות לפי הערכים הבאים:

EBFF5CD – נועד להרצת אפליקציה

F4E57C4B- ליצירת קיצור דרך

בנוסף לכך ישנה אפשרות לעקוב אחר כל פתיחה של Run במערכת, כלומר כל ביצוע Start>Run אנו מקבלים למעשה מעקב אחר RunMRU אשר נשמר בנתיב הבא

NTUSER.DAT\Software\Microsoft\Windows\ CurrentVersion\Explorer\RunMRU

בנוסף ישנן פעולות נוספות, כגון: AppCompatCache, Prefetch , Jump List, RecentFileCache

פתיחת קבצים ותיקיות – מעקב על בסיס shellbags המספק מידע על גישה לתיקיות, שינוי תיקיות, גישה למשאבים ברשת או בהתקן נייד חיצוני, מחיקת קבצים וכן הלאה. הניתובים מחולקים למספר מיקומים: Explorer Access, URLScan, Desktop Access.

בנוסף ישנן פעולות נוספות, כגון: Recent files, Office recent, Shortcut, Jumpt Lists.

מחיקת קבצים – מבצע מעקב אחר מחיקת קבצים או ערכים מסוימים מתוך קובץ ומאפשר להגיע לרמת מעקב אחר קובץ אשר נפתח מאפליקציה שונה. אחד הדרכים לבצע ניתוח של המידע היא באמצעות Last-Visited MRU ומתוך המיקום

NTUSER.DAT\Software\Microsoft\ Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU

ישנן דרכים נוספות לבצע ניתוח של המידע, כגון: ACMRU, Search Query, Thumbs, Recycle, file://

מיקום פיסי – דרך נוספת לבצע ניתוח של המידע היא באמצעות מיקום פיסי ובו אנו למעשה ניגשים למידע, אחת הדרכים היא באמצעות Network History שמספק מידע לגבי רשתות שאליהן התחנה היתה מחוברת, מהי סוג הרשת שאליה התחברה התחנה, קישוריות מול MAC למינהם, קישוריות וסוג VPN וכן מידע על זמן התחברות, סוג התחברות ופרטים נוספים.

הגישה למידע נעשית מול המיקומים הבאים:

SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged  SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache

ניתוח מידע יכול להיעשות גם מול פרמטרים, כגון: TimeZone, Cookies, Browser, Search

התקנים חיצוניים – דרך נוספת לניתוח מידע אחר התקנים חיצונים (התקין נייד / USB) אשר מחוברים או היו מחוברים לתחנת הקצה ברמת חיבור כל התקן, שימוש וצריכה של אותו התקן נייד, משתמש אשר ביצע חיבור להתקן הנייד, המידע כולל פרטים על התקן נייד.

ניתוח המידע נעשה מתוך מספר מיקומים ובהתאם למידע שאנו רוצים לנתח

SYSTEM\CurrentControlSet\Enum\USBSTOR
SYSTEM\CurrentControlSet\Enum\USB

המידע והפעולות המתוארות מעלה הן רק חלק מינורי מסך כל המידע והראיות שניתן להוציא מתוך תחנת קצה מגרסת Windows XP ומעלה.

לרשימה המלאה והמפורטת של ראיות ומידע אשר ניתן להוציא מתוך תחנת קצה, בקישור הבא Windows Forensics Analysis (Evidence.

סיכום

מכיוון שכל המידע נמצא בתחנה אנו יכולים לבנות מחדש (reconstruction) פעולות שלמות של המשתמש באמצעות המידע ובעיקר באמצעות Shellbag.

במאמר הבא מתמקד בהוצאת מידע ובניה מחדש של פעולות המשתמש באמצעות Shellbag.

מה דעתך?

אתר זה עושה שימוש באקיזמט למניעת הודעות זבל. לחצו כאן כדי ללמוד איך נתוני התגובה שלכם מעובדים.