ה-Registry של Windows הוא מאגר מידע מרכזי היררכי המאחסן את כל הגדרות מערכת ההפעלה, התוכנות המותקנות, פרופילי המשתמשים ותצורת החומרה. ניתן לדמות אותו למסד נתונים ענק שמערכת ההפעלה ניגשת אליו באופן תדיר בכל פעולה שהיא מבצעת.
ה-Registry מאורגן במבנה של עץ, בדומה למערכת קבצים. הוא מורכב מכוורות (Hives), מפתחות (Keys) וערכים (Values). כל שינוי שגוי ב-Registry עלול לגרום לחוסר יציבות, לתקלות ואף לקריסת המערכת. לכן, חשוב מאוד לבצע גיבוי לפני כל עריכה.
הכרות עם ה-Registry היא יכולת יסודית עבור מי שעוסק באבטחת מידע וסייבר, שכן רבות ממתקפות התוכנה הזדונית מתבצעות דרך שינויים ב-Registry, ואנשי אבטחה נדרשים לזהות ולתקן שינויים כאלה.
ה-Registry מחולק לחמישה ענפים ראשיים, כל אחד נקרא כוורת (Hive) ומכיל סוג מסוים של מידע:
| שם הענף | קיצור | תיאור |
|---|---|---|
HKEY_LOCAL_MACHINE |
HKLM |
הגדרות מערכת וחומרה שמשפיעות על כל המשתמשים במחשב. כולל תצורת דרייברים, שירותים והגדרות אבטחה |
HKEY_CURRENT_USER |
HKCU |
הגדרות המשתמש המחובר כרגע - רקע שולחן עבודה, העדפות תוכנה, משתני סביבה אישיים |
HKEY_USERS |
HKU |
הגדרות של כל המשתמשים הרשומים במערכת. HKCU הוא למעשה קיצור לענף המשתמש הנוכחי בתוך HKU |
HKEY_CLASSES_ROOT |
HKCR |
שיוך סיומות קבצים לתוכנות, הגדרות COM Objects ו-OLE |
HKEY_CURRENT_CONFIG |
HKCC |
מידע על פרופיל החומרה הנוכחי בעת האתחול |
HKLM הוא המרכזי ביותר מבחינת ניהול מערכת. בתוכו נמצאים תת-ענפים כמו SOFTWARE, SYSTEM, SAM ו-SECURITY שמכילים הגדרות קריטיות.
כל מפתח (Key) ב-Registry יכול להכיל ערכים (Values) מסוגים שונים. בחירת הסוג הנכון חיונית לתפקוד תקין של ההגדרה:
| סוג ערך | תיאור | דוגמה |
|---|---|---|
REG_SZ |
מחרוזת טקסט רגילה (Unicode) | נתיב לקובץ, שם תוכנה |
REG_DWORD |
מספר שלם של 32 ביט | הגדרות מופעל/מכובה (0/1), ערכי תצורה |
REG_BINARY |
נתונים בינאריים גולמיים | מידע מוצפן, תצורת חומרה |
REG_MULTI_SZ |
רשימת מחרוזות מופרדות בתו null | רשימת שירותים שצריכים להיטען |
REG_EXPAND_SZ |
מחרוזת עם משתני סביבה (%PATH%) | נתיבי קבצים שמשתמשים במשתני סביבה |
REG_QWORD |
מספר שלם של 64 ביט | ערכים מספריים גדולים |
regedit הוא הכלי הגרפי המובנה לעריכת ה-Registry. ניתן להפעיל אותו על ידי הקלדת regedit בתיבת ההפעלה (Win+R) או בשורת הפקודה.
הממשק מציג בצד ימין את עץ המפתחות ובצד שמאל את הערכים של המפתח הנבחר. ניתן לנווט בין הענפים, ליצור מפתחות וערכים חדשים, לערוך ערכים קיימים ולמחוק.
:: הפעלת regedit Win+R → regedit → Enter :: ניווט לנתיב מסוים ב-Registry: :: שורת הכתובת בחלק העליון מאפשרת הקלדת נתיב ישירות HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
הפקודה reg מאפשרת לבצע פעולות על ה-Registry ישירות משורת הפקודה. זהו כלי חיוני לסקריפטים ואוטומציה, ומאפשר ניהול Registry בעשרות מחשבים בו-זמנית ללא צורך בממשק גרפי.
:: הוספת מפתח חדש reg add HKLM\SOFTWARE\MyApp /v Setting1 /t REG_SZ /d "Hello" :: הוספת ערך מספרי (DWORD) reg add HKLM\SOFTWARE\MyApp /v Enabled /t REG_DWORD /d 1 :: שאילתת ערך ספציפי reg query HKLM\SOFTWARE\MyApp /v Setting1 :: מחיקת ערך reg delete HKLM\SOFTWARE\MyApp /v Setting1 /f :: שאילתת כל הערכים תחת מפתח מסוים reg query HKLM\SOFTWARE\MyApp
קבצי .reg הם קבצי טקסט שמכילים נתוני Registry בפורמט מוגדר. ניתן לייצא מפתחות לקובץ .reg ולייבא אותם חזרה, מה שמאפשר שיתוף הגדרות, גיבוי נקודתי ופריסה אוטומטית.
:: ייצוא ענף שלם לקובץ reg export HKLM\SOFTWARE\MyApp C:\backup\myapp.reg :: ייבוא מקובץ .reg reg import C:\backup\myapp.reg :: מבנה קובץ .reg: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\MyApp] "Setting1"="Hello" "Enabled"=dword:00000001
לפני ביצוע שינויים משמעותיים ב-Registry, חיוני לבצע גיבוי. ניתן לגבות באמצעות reg export לקובץ .reg, או דרך ממשק regedit באמצעות File > Export. במקרה של תקלה, ניתן לשחזר באמצעות reg import או על ידי לחיצה כפולה על קובץ ה-.reg.
ה-SAM (Security Account Manager) הוא רכיב קריטי במערכת Windows שאחראי על אחסון ותחזוקת מידע על חשבונות משתמשים מקומיים וסיסמאותיהם.
הוא שמור כחלק מה-Registry תחת הענף HKEY_LOCAL_MACHINE\SAM, אך הגישה אליו חסומה גם למשתמשים עם הרשאות מנהל.
בעת שהמשתמש מזין סיסמה, המערכת בודקת אותה מול המידע המוצפן ב-SAM. רק לאחר התאמה מוצלחת, המשתמש מקבל אסימון גישה (Token) מתהליך LSASS. שילוב זה מאבטח את תהליך ההתחברות ומונע התחזות או כניסה בלתי מורשית.
הסיסמאות ב-SAM אינן נשמרות כטקסט גלוי. הן עוברות תהליך של הצפנה (Hashing) באמצעות אלגוריתמים כמו NTLM Hash, ולאחר מכן מוצפנות שוב עם מפתח מערכת (System Key / SYSKEY). גם משתמש מנהל אינו יכול לקרוא את הסיסמאות ישירות מקובץ ה-SAM.
ההצפנה הכפולה מבטיחה שגם אם מישהו מצליח להשיג גישה פיזית לקובץ, הוא לא יוכל לדלות ממנו סיסמאות ללא כלים מתקדמים וידע ספציפי.
C:\Windows\System32\config\SAM. כל עוד המערכת פעילה, הקובץ נעול על ידי תהליך LSASS ולא ניתן לגשת אליו ישירות.
עריכה ישירה של קובץ ה-SAM היא פעולה מסוכנת ביותר. שינוי לא תקין עלול לגרום לאובדן גישה לחשבונות משתמשים, חוסר יכולת להתחבר למערכת, ובמקרים חמורים אף לדרוש התקנה מחדש של Windows.
בגלל הרגישות הגבוהה, כמעט ולא עורכים את ה-SAM באופן ידני. במקום זאת, משתמשים בכלים ייעודיים כמו net user לניהול חשבונות, או בכלים מיוחדים לאיפוס סיסמאות.
כאשר נדרש לאפס סיסמה ואין אפשרות להתחבר למערכת, ניתן לערוך את ה-SAM במצב offline. הדבר דורש גישה פיזית למחשב ושימוש באחת השיטות הבאות:
LSASS.exe (Local Security Authority Subsystem Service) הוא תהליך קריטי במערכת Windows שאחראי על ניהול מדיניות האבטחה ואימות חשבונות משתמשים.
כאשר משתמש מתחבר למערכת, LSASS בודק את הסיסמה מול ה-SAM ומפיק אסימוני אבטחה (Security Tokens) המאפשרים גישה למשאבי המערכת בהתאם להרשאות.
תהליך זה חיוני ליציבות האבטחה של Windows. במקרה של כשל ב-LSASS, המערכת עלולה לאבד את יכולת האימות, מה שמוביל לחוסר אפשרות להתחבר ואף לקריסת המערכת.
LSASS פועל עם הרשאות SYSTEM - הרמה הגבוהה ביותר במערכת - כי הוא מטפל בסיסמאות וברכיבי אבטחה רגישים הדורשים גישה עמוקה למערכת.
לאחר אימות מוצלח, LSASS מפיק אסימון אבטחה (Security Token) עבור המשתמש. אסימון זה מכיל מידע על:
כל תהליך שהמשתמש מפעיל יורש את האסימון שלו, ובכך מקבל את ההרשאות המתאימות.
LSASS מהווה יעד אטרקטיבי לתוקפים מכיוון שהוא מאחסן בזיכרון Hash-ים של סיסמאות ואסימוני אימות. מתקפת Pass-the-Hash היא אחת המתקפות הנפוצות, בה תוקף גונב Hash מזיכרון LSASS ומשתמש בו כדי להתחזות למשתמש ללא צורך בסיסמה עצמה.
כלי פורנזיים כמו ProcDump מסוגלים לבצע Dump של זיכרון LSASS ולחלץ ממנו Hash-ים וטוקנים. לכן חיוני להגן על תהליך זה.
שיטות הגנה מרכזיות:
Credential Guard הוא מנגנון אבטחה מתקדם שמבודד את אישורי ההזדהות מזיכרון LSASS לסביבה וירטואלית מוגנת (VBS - Virtualization Based Security). כך, גם אם תוקף מצליח להריץ קוד עם הרשאות מנהל, הוא לא יוכל לגשת לאישורים המוגנים.
UAC (User Account Control) הוא מנגנון אבטחה שנועד למנוע הרצה בלתי מבוקרת של פעולות המחייבות הרשאות מנהל. כאשר תוכנית מנסה לבצע פעולה שעלולה להשפיע על אבטחת המערכת, מופיע חלון אישור (Elevation Prompt) למשתמש.
מנגנון זה חוצץ בין המשתמש לפעולות קריטיות, ומאפשר לזהות ולחסום פעולות לא רצויות בזמן אמת. גם כאשר המשתמש מחובר כמנהל, רוב התהליכים שלו רצים ברמת הרשאות רגילה (Medium Integrity), ורק עם אישור מפורש הם מקבלים הרשאות מלאות (High Integrity).
Windows משתמשת במודל של רמות Integrity כדי לסווג תהליכים לפי רמת האמון שלהם:
| רמה | תיאור | דוגמה |
|---|---|---|
| System | רמה הגבוהה ביותר - שירותי מערכת | LSASS.exe, services.exe |
| High | תהליכים עם הרשאות מנהל מלאות | תהליך שאושר דרך UAC |
| Medium | רמת ברירת המחדל לתהליכי משתמש | דפדפן, עורך טקסט |
| Low | תהליכים מוגבלים מאוד | Internet Explorer Protected Mode |
ניתן לשנות את רמת ההתרעות של UAC דרך לוח הבקרה (Control Panel > User Accounts > Change User Account Control settings) בארבע רמות, מ"Always Notify" (הכי מאובטח) עד "Never Notify" (מושבת).
הגדרות ה-UAC נשמרות ב-Registry תחת הנתיב:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
הערך החשוב ביותר הוא EnableLUA:
| ערך | סוג | משמעות |
|---|---|---|
EnableLUA |
REG_DWORD |
1 = UAC פעיל (ברירת מחדל), 0 = UAC מושבת |
ConsentPromptBehaviorAdmin |
REG_DWORD |
קובע את התנהגות חלון האישור עבור מנהלים (0-5) |
PromptOnSecureDesktop |
REG_DWORD |
1 = מציג את חלון UAC על שולחן עבודה מאובטח |
UAC Virtualization הוא מנגנון תאימות לאחור שנועד עבור תוכנות ישנות שלא תוכננו לסביבת הרשאות מודרנית.
כאשר תוכנה ישנה מנסה לכתוב לאזורים מוגנים (כמו Program Files או מפתחות מערכת ב-Registry), Windows מפנה את הכתיבה לתיקיות וירטואליות בתוך נתיב המשתמש.
כך נשמרת תאימות לאחור בלי לפגוע באבטחה - התוכנה חושבת שהיא כתבה בהצלחה, אבל בפועל הנתונים נשמרו במיקום בטוח שלא משפיע על משתמשים אחרים.
שירות (Service) ב-Windows הוא תוכנה שרצה ברקע ללא ממשק משתמש ישיר. שירותים מספקים פונקציונליות קריטית כמו ניהול רשת, הדפסה, עדכונים ושירותי אבטחה.
שירותים רבים נטענים אוטומטית עם עליית המערכת ופועלים ברקע כל עוד המחשב פעיל. חשוב לבדוק אילו שירותים מופעלים אוטומטית - שירותים מיותרים צורכים משאבים ועלולים להוות סיכון אבטחה.
הגדרות השירותים נשמרות ב-Registry תחת:
HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName>
services.msc הוא הכלי הגרפי לניהול שירותים. ניתן להפעיל אותו על ידי הקלדת services.msc בתיבת ההפעלה (Win+R).
הכלי מציג רשימה של כל השירותים במערכת, כולל:
באמצעות לחיצה כפולה על שירות, ניתן לשנות את סוג ההפעלה, להפעיל או לעצור אותו, ולצפות בתלויות שלו.
sc.exe (Service Control) הוא כלי שורת פקודה רב-עוצמה לניהול שירותים. הוא חיוני לאוטומציה ולניהול שרתים מרחוק:
:: הפעלת שירות sc start WSearch :: עצירת שירות sc stop WSearch :: שאילתת תצורת שירות sc qc WSearch :: שינוי סוג הפעלה לאוטומטי sc config WSearch start= auto :: שינוי סוג הפעלה לידני sc config WSearch start= demand :: השבתת שירות sc config WSearch start= disabled :: הצגת סטטוס שירות sc query WSearch :: הגדרת תלות - שירות שתלוי בשירות אחר sc config MyService depend= RPCSS/Netman
= אבל יש רווח אחריו.
ב-Registry, תחת מפתח השירות, הערך Start קובע כיצד ומתי השירות יופעל:
| ערך | שם | תיאור |
|---|---|---|
0 |
Boot | נטען על ידי ה-Boot Loader - דרייברים קריטיים בלבד |
1 |
System | נטען על ידי הקרנל בעת האתחול |
2 |
Automatic | מופעל אוטומטית על ידי Service Control Manager |
3 |
Manual | מופעל ידנית על ידי משתמש או תהליך |
4 |
Disabled | מושבת - לא ניתן להפעיל |
:: מיקום הערך ב-Registry: HKLM\SYSTEM\CurrentControlSet\Services\<ServiceName> :: ערך: Start (REG_DWORD) :: שינוי ישיר דרך Registry: reg add HKLM\SYSTEM\CurrentControlSet\Services\WSearch /v Start /t REG_DWORD /d 2 /f
ניתן להגדיר ששירות אחד לא יתחיל לפני ששירות אחר כבר פועל. זה נעשה באמצעות מפתח DependOnService ב-Registry או באמצעות הפקודה:
sc config MyService depend= OtherService
תלויות חשובות במיוחד עבור שירותים שמסתמכים על שירותי רשת או שירותי אבטחה. אם שירות נכשל בהפעלה, כל השירותים שתלויים בו גם כן לא יצליחו לעלות.
דרייבר (Driver) הוא רכיב תוכנה שמתווך בין מערכת ההפעלה לרכיב חומרה ספציפי. ללא דרייברים מתאימים, חומרה כמו כרטיס רשת, כרטיס קול, מדפסת או כרטיס מסך לא תתפקד כראוי.
דרייברים מקשרים בין מערכת ההפעלה לחומרה ומבטיחים תפקוד תקין. Windows כוללת מנגנון לזיהוי אוטומטי והתקנת דרייברים (Plug and Play), אך לעיתים נדרש להתקין דרייברים ידנית, במיוחד עבור חומרה מתקדמת או מיוחדת.
ב-Windows ישנם שני מצבי הפעלה עיקריים, וההבדל ביניהם קריטי להבנת דרייברים:
| תכונה | Kernel Mode | User Mode |
|---|---|---|
| רמת גישה | גישה מלאה לחומרה ולזיכרון | גישה מוגבלת דרך API של המערכת |
| סיכון | קריסה גורמת ל-Blue Screen (BSOD) | קריסה משפיעה רק על התהליך הספציפי |
| שימוש | דרייברי חומרה, מערכת קבצים, רשת | דרייברי מדפסת, סורקים, חלק מהתקני USB |
| דוגמאות | ntfs.sys, tcpip.sys, ndis.sys | דרייבר מדפסת, דרייבר סורק |
Windows דורשת מדרייברי Kernel Mode לשאת חתימה דיגיטלית תקפה. מנגנון זה, הנקרא Driver Signature Enforcement, מוודא שהדרייבר:
דרייבר לא חתום עלול להכיל קוד זדוני, ומכיוון שדרייברי Kernel פועלים ברמה הגבוהה ביותר, פגיעה כזו חמורה במיוחד.
למפתחים ולבודקים, ניתן להשבית את דרישת החתימה בשתי דרכים:
:: אפשרות 1: מצב בדיקה קבוע (Test Signing Mode) bcdedit /set testsigning on :: דורש אתחול. מציג סימן מים על שולחן העבודה :: אפשרות 2: השבתה זמנית לסשן אחד :: אתחול > Advanced Boot Options > :: Disable Driver Signature Enforcement :: בתוקף רק עד לאתחול הבא :: ביטול מצב בדיקה bcdedit /set testsigning off
Windows מספקת מספר כלים לניהול ואימות דרייברים:
| כלי | תיאור | שימוש |
|---|---|---|
sigverif |
בדיקת חתימות דיגיטליות | סורק דרייברים ומזהה קבצים לא חתומים |
pnputil.exe |
ניהול חבילות דרייברים | התקנה, הסרה וניהול דרייברים ב-Driver Store |
devmgmt.msc |
מנהל ההתקנים (Device Manager) | ממשק גרפי לצפייה ועדכון דרייברים |
driverquery |
רשימת דרייברים נטענים | הצגת כל הדרייברים שפועלים כרגע במערכת |
:: הצגת כל הדרייברים הפעילים driverquery /v :: הצגת דרייברים בפורמט רשימה driverquery /FO list :: הוספת דרייבר ל-Driver Store pnputil /add-driver C:\Drivers\mydriver.inf :: הסרת דרייבר מ-Driver Store pnputil /delete-driver oem5.inf :: רשימת דרייברים ב-Driver Store pnputil /enum-drivers
| נתיב | תיאור | רמה |
|---|---|---|
HKLM\SOFTWARE |
הגדרות תוכנות מותקנות לכל המשתמשים | בסיסי |
HKLM\SYSTEM |
הגדרות מערכת, שירותים ודרייברים | בסיסי |
HKLM\SAM |
מאגר חשבונות משתמשים וסיסמאות | בסיסי |
HKLM\SECURITY |
מדיניות אבטחה ומידע LSA | בינוני |
HKLM\SYSTEM\CurrentControlSet\Services |
הגדרות כל השירותים והדרייברים | בינוני |
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
תוכנות שרצות אוטומטית בכניסת משתמש | בסיסי |
HKLM\...\Policies\System |
הגדרות UAC ומדיניות מערכת | בינוני |
HKCU\SOFTWARE |
הגדרות תוכנות עבור המשתמש הנוכחי | בסיסי |
| פקודה | תיאור | רכיב |
|---|---|---|
regedit |
עורך Registry גרפי | Registry |
reg add |
הוספה או עריכת מפתח/ערך ב-Registry | Registry |
reg query |
שאילתת מפתח או ערך ב-Registry | Registry |
reg delete |
מחיקת מפתח או ערך | Registry |
reg export |
ייצוא ענף לקובץ .reg | Registry |
reg import |
ייבוא מקובץ .reg | Registry |
net user |
ניהול חשבונות משתמשים מקומיים | SAM |
services.msc |
ממשק גרפי לניהול שירותים | Services |
sc start |
הפעלת שירות | Services |
sc stop |
עצירת שירות | Services |
sc qc |
הצגת תצורת שירות | Services |
sc config |
שינוי הגדרות שירות | Services |
sc query |
הצגת סטטוס שירות | Services |
driverquery |
רשימת דרייברים פעילים | Drivers |
sigverif |
אימות חתימות דרייברים | Drivers |
pnputil |
ניהול חבילות דרייברים | Drivers |
bcdedit /set testsigning on |
הפעלת מצב בדיקה לדרייברים | Drivers |
devmgmt.msc |
מנהל התקנים - ממשק גרפי | Drivers |
הכרת רכיבי הליבה של מערכת Windows היא בסיס חיוני לכל מי שמתכונן למיוני גאמא סייבר ויחידה 8200. הבנה מעמיקה של הקשר בין הרכיבים השונים מעניקה יתרון משמעותי.
נקודות מפתח לזכור:
הקשר בין הרכיבים הוא קריטי: כאשר משתמש מתחבר, LSASS קורא את ה-SAM לאימות, מפיק Token, ו-UAC מוודא שהרשאות מנהל לא ניתנות ללא אישור. כל ההגדרות נשמרות ב-Registry, ושירותים ודרייברים נטענים לפי תצורת ה-Registry בעת האתחול.
היכרות עם פקודות כמו reg add, sc start, sc qc, services.msc ו-pnputil חיונית להצלחה במבחנים ולעבודה מעשית בתחום הסייבר ואבטחת המידע.