לדלג לתוכן

3.3 אבטחה הרצאה

משתמשים וקבוצות

במערכת ההפעלה ווינדוס, כל מחשב או שרת מופעל עם מספר משתמשים. כל משתמש יש לו את הזכויות וההגדרות האישיות שלו. לדוגמה, אתם משתמשים במחשב שלכם עם שם המשתמש שלכם, ויש גם משתמשים נוספים כמו Administrator, שבעבר השתמשנו בו כדי להדליק את האפשרות לריצת סקריפטי PowerShell עם הרשאות גבוהות.

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

  • קבוצת Administrators: קבוצה הכוללת את כל המשתמשים בעלי הרשאות ניהוליות, כמו השגת גישה מלאה לכל המערכת.
  • קבוצת Users: קבוצה הכוללת משתמשים רגילים שאין להם את הרשאות הניהול המלאות, אלא רק הרשאות קריאה וכתיבה מוגבלות.
  • קבוצת: Guests: קבוצה של משתמשים עם הרשאות מינימליות, לרוב משמשת לאורחים שנכנסים למערכת לזמן מוגבל.

בנוסף לכך, קיימת גם אפשרות להגדיר קבוצות מותאמות אישית, למשל קבוצה של אנשי תמיכה טכנית, אשר יוכלו לקבל גישה לכמה משאבים במערכת.

הרשאות

למערכת ההפעלה ווינדוס יש מערכת הרשאות חזקה שנועדה לשלוט בגישה לקבצים ותיקיות. על כל תיקייה או קובץ ניתן להחיל ACL (Access Control List), שהיא רשימה של משתמשים או קבוצות ומאפייני הגישה שלהם (לקרוא, לכתוב, להוריד קבצים או להריץ קוד).

אם נלך לסייר הקבצים, נוכל לראות לדוגמה את התיקייה C:\Windows ולבדוק את ההרשאות שלה. כדי לעשות זאת:

  1. לחצו על תיקיית C:\Windows.
  2. לחצו על מקש ימני ובחרו Properties.
  3. בתפריט שנפתח, עבורו ל-tab של Security. כאן תוכלו לראות את הרשאות הגישה של כל משתמש או קבוצה.

Pasted image 20240629155118.png

לדוגמה, אם תסתכלו על המשתמש System (חלק מקבוצת ה-Administrators), תראו שהוא מחזיק בהרשאה מלאה על כל הקבצים והמגבלות:

Pasted image 20240629155211.png

במערכת ווינדוס, כל משתמש מקבל SID (Security Identifier) ייחודי, שמייצג את המזהה שלו במערכת ומאפשר להעניק לו הרשאות מתאימות. ה-SID משמש את מערכת ההפעלה לניהול ההרשאות ומעקב אחרי המשתמשים.

אם נרצה לדעת את ה-SID של המשתמש שלנו, נוכל למצוא את זה באמצעות פקודת WMI ב-PowerShell:

Get-WmiObject -Query "select * from win32_account"

אימפרסונציה (Impersonation)

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

לדוגמה, כשאנחנו פותחים את ה-PowerShell או Command Prompt כ-Administrator, אנחנו למעשה מבצעים אימפרסונציה ל-user מסוג System (או משתמש מנהל אחר) שמקנה לנו הרשאות ניהוליות.

דוגמה לאימפרסונציה ב-PowerShell

ב-PowerShell, ניתן להפעיל פקודות באימפרסונציה למשתמשים אחרים, למשל:

Start-Process PowerShell -Credential (Get-Credential) -ArgumentList "YourCommandHere"

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

שירותים וההרשאות שלהם

שירותים (Services) בווינדוס הם תהליכים הרצים ברקע ומשפיעים על פעולתה של מערכת ההפעלה או של תוכנות נוספות. השירותים ברובם פועלים תחת הרשאות גבוהות, כמו למשל LocalSystem או NetworkService, אשר מקנות להם גישה למשאבים במערכת.

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

השירותים רצים כשמערכת הפעלה קמה, ורצים ברקע. למשל שירות שאחראי לנהל את השולחן עבודה, או את הסרגל הכלים. במערכת ההפעלה יש המון service-ים.
- אנחנו יכולים לראות את כל הservice-ים הרצים באמצעות התוכנה services שנראת כך:
Pasted image 20240629154109.png
אפשר לראות שיש פה רשימה של כל הservice-ים, תיאור על מה הם עושים והאם הם רצים כרגע.
אם נריץ tasklist, ונבחן את רשימת התוכנות הרצות במערכת נראה כי יש המון פעמים את התוכנה הנקראת svchost שרצה:
Pasted image 20240629154536.png
התוכנה הזו היא תוכנה שאחראית להריץ service-ים, כך שכל אחת כזו היא בעצם service אחר במערכת ההפעלה.

ניהול שירותים (service-ים) בפאוורשל

כדי לנהל שירותים במערכת, ניתן להשתמש בפקודות כמו:

Get-Service

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

Start-Service -Name "ServiceName"
Stop-Service -Name "ServiceName"

דוגמה לservice בווינדוס שקשור לאבטחת משתמשים

שירות הLSASS (Local Security Authority Subsystem Service) הוא שירות קריטי במערכת ההפעלה ווינדוס שמנהל את תהליכי האבטחה המרכזיים במערכת, בעיקר את תהליך הזיהוי והאימות של המשתמשים ואת ניהול ההרשאות במחשב.

תפקידי השירות LSASS

  1. אימות משתמשים: LSASS אחראי לאמת את זהות המשתמשים במערכת. כאשר משתמש מנסה להיכנס למחשב, LSASS בודק את שם המשתמש והסיסמה שמוזנים ומשווה אותם למידע שנשמר במערכת, לדוגמה בקובץ SAM (Security Account Manager). אם הנתונים נכונים, LSASS מאשר את הזיהוי ומאפשר למשתמש לגשת למערכת.

  2. ניהול הרשאות: LSASS אחראי להקצות security tokens לכל משתמש אחרי אימות מוצלח. ה-token הזה מכיל את כל המידע לגבי ההרשאות של המשתמש, כגון קבוצות שהוא שייך להן והרשאות גישה למשאבים שונים במערכת (כמו קבצים ותיקיות). כאשר המשתמש מנסה לגשת למשאב במחשב, LSASS בודק אם יש לו את ההרשאות המתאימות באמצעות ה-token.

  3. מדיניות אבטחה: LSASS מנהל את המדיניות הכללית של האבטחה במחשב, כגון הגבלות על אורך הסיסמה, דרישות חזקות לסיסמאות, וקביעת מדיניות למתי יש לשנות סיסמה. שירות זה עוזר להבטיח שהמחשב עומד בסטנדרטים של אבטחה שנקבעו על ידי מנהל המערכת.

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

כיצד LSASS פועל?

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

במערכות המודרניות, LSASS פועל באופן שוטף ברקע ומבצע מגוון פעולות אבטחה במקביל לפעילות השוטפת של המחשב, מבלי שהמשתמש ירגיש בכך. כל שירות או תוכנה שמבקש גישה למערכת נדרש לעבור את תהליך האימות של LSASS.