Home אבטחת מידעפורנזיקה Cyber Forensics פורנזיקה – Cyber Forensics – הסבר על ASCII, דיסק קשיח – Sector & Clusters,Image

פורנזיקה – Cyber Forensics – הסבר על ASCII, דיסק קשיח – Sector & Clusters,Image

0 comment
נהנתם מהמאמר ? שתפו אותו!

פורנזיקה – Cyber Forensics – הסבר על ASCII, דיסק קשיח – Sector & Clusters,Image

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

לרוב הפורניזיקה מבוצעת על ידי אנשי הSOC או ה IR, חקירה כזו לרוב מתנהלת בתצורה בה מעתיקים את הכונן הקשיח של התחנה אל קובץ RAW ובוחנים את המערכת כולה מבלי "לחבל" במערכת ובממצאים הקיימים בה.

בנוסף חקירה גם תבוצע על תעבורת הרשת בכדי לזהות "התקפה" או "סריקה" לקראת התקפה.

זכרו! בחקירה, במקרה אמת בו צריכים לחקור מחשב שהתגלה בו "התקפה" בה הותקן קובץ או מחשב ש"נתפס" לצרכי חקירה פלילית, אין לכבות אותו!! שכן מידע רב נמצא גם בMemory.

נתחיל מהבסיס, תחילה קראו את המאמרים הבאים:

הסבר על Secure Hash Algorithm – SHA ועל ה Hash

מתחיל מהידע הבסיסי,

File System & OS

File System – מערכת קבצים שאחראית מאחורי הקלעים לניהול,סידור והגדרת הSpace Allocation בדיסק – קיימים כמה מערכות קבצים כמו NTFS, RFS, FAT, EXT וכו' , מערכת הקבצים אחראית לסידור הקבצים והתיקיות בדיסק הקשיח.

OS – התוכנה שאחראית על הפעלת האפליקציות, וניהול החומרה אל מול מערכת ההפעלה והתוכנות המותקנות בה – מערכות הפעלה כמו Windows, Linux, Unix, MACos – מערכת ההפעלה אחראית על הפעלת הקבצים, עריכתם ותפעול את מול החומרה.

בינארי – אפס או אחד 1 או 0 הצורה הבסיסית ביותר שהמחשב "מדבר" בו, גם הדיסק הקשיח בבסיסו הוא 0 ו1
אוקטאל – Octal הוא 8 Base- זאת אומרת מ 0 ל 7
דצימל – Decimal הוא 10 Base וכאן זה מ 0 ל 9

ASCII – American Standard Code for Information Interchange

אסקי הוא Base 16 זאת אומרת שהוא 0-15 והוא כולל בתוכו את 0123456789ABCDEF הוא בתצורת HexaDecimal

הבעיה היא שיש שפות נוספות ולא יכולות להשתמש בASCII ולכן זה הטבלה הנפוצה ביותר לאנגלית אבל שפות אחרות משתמשות בצורה שונה ולא ב ASCII כל שפה משתמשת בUnicode אחר , למשל עברית ב UTF-8 בכללי Unicode יכול להציג 65536 אלף אותיות וסימנים שונים

ניתן להבחין כי לכל אות ב Hex יש מספר

Hex – המספר בנוי מ 4 תווים בבינארי לדוגמה האות A בנויה מ1010 והמספר הדסימלי Decimal הוא 10 שכן ניתן להבחין בטבלה הבאה שהוא ממוקם במקום 10

זו טבלת ה ASCII

 

אם נבדוק בHexD – עורך Hex ניתן להבחין שה48 לפי טבלת ה ASCII זה האות H (בטור Hex טור שני מימין) וכך כל אות בשורה

כעת נעבור לדיסקים קשיחים

DIsk Structures

מערכת הקבצים הנפוצה ביותר בWindows היא NTFS אך גם FAT32 היה הכי נפוץ לא מזמן
בFAT32 אין לנו את עניין ההרשאות, ולא ניתן להגדיר הרשאות לתיקיות, המערכת מוגבלת לקבצים עד 2GB ודיסק עד 2TB
NTFS נותן המון אפשרויות חדשות לעומת FAT32
תומך בדיסקים עד 2TB כמו ב FAT32 (כאן אין כל כך חידוש)
קבצים בודדים תומך עד 16TB
ניתן ליצור Links בדומה ל Hard Link בלינוקס
תומך בהצפנה של קבצים ותיקיות
תומך ב Ntfs Permissions – הרשאות
Indexing – מאפשר חיפוש מהיר יותר של קבצים במערכת ההפעלה
Journaling – יומן עוקב אחרי כל הכתיבות של מערכת הקבצים, וכל גם מה שמשתנה, אם קרה לקובץ שגיאה או בעיה הוא בודק ביומן ומשווה את מערכת הקבצים ואם הם לא תואמים הוא יודע לתקן את החלק הבעייתי בקובץ
ניתן להגדיר Quata – להגביל משתמש שלא יוכל להשתמש ביותר מX נפח של מקום
Volume Mount Point – ניתן להגדיר סוג של "תיקיה" כדיסק קשיח, זאת אומרת שהדיסק או התקן חיצוני , יופיעו כמו תיקייה

סקטור Sector או בתמונה הוא כתוב כ Track Sector – הוא בגודל של 512 Bytes והוא יחידת המידע הקטנה ביותר שיכול דיסק קשיח לכתוב לדיסק

Cluster – לרוב תיהיה במערכת הקבצים כ- 4 או 8 Track Sectors, כך שנאמר אם כונן D שלנו מוגדר כ Allocation Size של 4096 Bytes

אז ה Track Sector שלנו יהיו כל אחד – 512 Bytes כפול 8 Sectors


Cluster בנוי מ Tracks Cluster למשל 4 Tracks הם Cluster אחד – זאת אומרת ש4 * 512 היא שקובץ טקסט עם אות אחד בפנים תשקול 4KB

ניצור כעת כונן ונגדיר אותו עם 8192 ל Cluster

כעת ניצור קובץ בכונן עם תו אחד ונבדוק מה גודל הקובץ, ניתן להבחין שגודל הקובץ הוא 8192

 

ואם נשנה ל 16KB

 

אותו דבר

זאת אומרת שהקובץ שוקל בדיסק 16KB למרות שיש בו תו אחד והמשקל בתכלס הוא 1 Bytes

למשל לכל Cluster ב FAT32 נניח בנפח מ32GB יש 64 סקטורים ל Cluster
ואילו ב Ntfs יש נניח מעל 2GB יש 8 סקטורים ל Cluster

על ידי הפקודה

fsutil fsinfo ntfsinfo c:

נוכל לבדוק מה הגדול שהמערכת מקצה ל Cluster אחד במערכת ההפעלה

Slack Space

הוא האזור הריק שנשאר בין הסוף של הקובץ שכתבתם לבין הסוף של ה Cluster

נניח וקובץ שוקל 1400Byes והCluster הוא 2048 (512Bytes כפול 4 – שהם 4 סקטורים כ Cluster אחד)
RAM Slack – הוא אותו הדבר אבל הוא מתייחס למקום הריק שנותר בין הסוף של הקובץ לסוף של הסקטור
File Slack – הוא המקום הנותר בCluster כולו

*איפה שרשמתי ב Cluster 512 Bytes כמובן שכל Sector בנוי מ 512 ולכן סה"כ ה Cluster הוא 4096 Bytes

Unallocated Space

הוא מקום פנוי בדיסק, מקום בו מערכת הקבצים הגדירה כמקום אליו ניתן לכתוב קבצים

קבצים מחוקים ויצירת קבצים

  • כאשר אתם יוצרים קובץ המערכת Allocates Cluster למיקום הפיזי של הקובץ שיצרתם, זאת אומרת שהיא מחפשת Cluster להניח עליו את הקובץ
  • כאשר אתם מוחקים קובץ המערכת מגדירה שה Clusters האלו התפנו
  • הקובץ שהיה ומחקתם אותם נשאר באותו המיקום , אך אם קובץ חדש יגיע הוא יכתב אל ה Cluster הזה
  • לכן ככל שעובר הזמן ונכתבים קבצים חדשים אל המערכת, לא נוכל לשחזר קבצים באותה היעילות אם ישאר אחרי המחיקה או שהמחשב היה כבוי ובכך להוציא את הקבצים המחוקים שה Cluster שלהם לא "נדרס" על ידי קובץ חדש

אבל! אם הקובץ החדש קטן יותר מהגודל של הקובץ הקודם אז המקום הפנוי שהוא הSlack Space בין הקובץ החדש לסוף ה Cluster , את המקום הפנוי הזה אפשר לשחזר.
לדוגמה, תמונה שמחקנו שקלה 1400Bytes ועכשיו שמנו קובץ בגודל 1000Bytes, המרווח שנותר בין הקובץ החדש לסוף ה Cluster הוא הSlack Space ואותו ניתן לשחזר , במקרה שלנו רק 400Bytes אבל בקבצים גדולים זה יכול להגיע לחלק מאוד גדול של הקובץ
אם כך כאשר אתם מבחינים במקום שמוגדר כ Unalocated Space הוא המקום בו יש קבצים שנמחקו (לא תמיד) ואפשר להשיג קבצים חשובים ממיקום זה

File Craving & Fragmentation פרגמנטציה

הוא בדיוק הפעולה בה תוכנה תזהה את אותו Unallocated Space ותוציא את הקבצים שנמצאים שם ובכך "נציל" קבצים מחוקים

פרגמנטציה – היא אותה הפעולה שאז היינו עושים בWindows XP על מנת "לגרום למחשב להיות מהיר יותר" אכן פעולה זו טיפלה גורמת למחשב להיות מהיר יותר. אבל מדוע?
כאשר הדיסק הקשיח כותב את המידע, הוא כותב את המידע לCluster אבל אם נכתבים בו זמנית עוד קבצים, הדיסק יניח את חלק מהקובץ ב Cluster אחר ושאינו נמצא באותו הרצף בTrack ולכן כאשר ה"סיכה" שבדיסק הקשיח רוצה לקרוא את הקובץ היא קוראת אותו נניח מ Cluster 1 -5 אבל Cluster 6 נמצא במיקום אחר בדיסק הקשיח ואז הסיכה צריכה "לזוז" לשם ולכן הקריאה איטית יותר
לכן כאשר אתם מבצעים Fragmentation לדיסק הקשיח, אתם בעצם "מסדרים" את הקובץ להיות מונח ברצף אחד בדיסק הקשיח (מבחינת מיקום פיזי) וכך הקריאה מהירה יותר.
הבעיה היא כאשר התזוזה הזו עולה על Unallocated Space שכן לא נוכל לשחזר קבצים בצורה קלה כי הם "נדרסו" וכמו שהסברתי קודם, ברגע שקובץ חדש "דורס" Cluster שבו היה קובץ ישן, לא ניתן יהיה לשחזר את המידע.

HxD Sectors

אם נרצה להבחין איך המידע ישב במערכת, נוכל לפתוח Image של תחנה ששמרת כקובץ RAW (בהמשך המדריך נלמד דרך FTK) ובו נוכל להבחין במידע שכתוב בכל Sector

 

להסבר מפורט יותר, היכנסו למאמר

הסבר על Magic Numbers וביצוע הוצאת קבצים דרך Hxd

 

 

 

 

 

 

 

מאמרים קשורים

Leave a Comment