גם אצלכם כולם אדמין מקומי? מתחילים לטפל בבעיה!

3 בינואר 2013

בארגונים רבים אני נתקל בתופעה בה משתמשים מוגדרים כ Admin מקומי על התחנה שלהם, ולעתים אף על כל התחנות בדומיין. בבוא הזמן, אותם ארגונים מנסים להילחם באופן פרטני בסימפטומים הגלויים של התופעה – למשל, להסיר הרשאות מ c$ או לשחק ב User Rights assignment

למה זה מסוכן (וכן, זה מסוכן) ?:

  • המשתמש מסוגל להתקין תוכנות, לשנות הגדרות, להוריד מעצמו ומהתחנה הקשחות, לנבור בקבצים שהם לא שלו (למשל פרופילים של משתמשים אחרים) – והסכנה הברורה מכל היא גישה אל מחשבים אחרים עליהם הוא Admin – בין אם ייעשה זאת ידנית אל c$ / Admin$ / rpc / rdp או אם ישתמש בכלים כמו PSEXEC כלי Remote Control למיניהם וכ'ו. כמו כן יכול המשתמש לנצל את הרשאותיו ע"מ לנטרל לאנשי התמיכה יכולות – כמו להרוג סרביס של AV/Sccm, לשלול להם הרשאות – או אולי לבטל עדכוני Wsus, סתם כי הוא לא אוהב את הריסטרט שאחרי.
  • מימד נוסף הוא "טעויות אנוש", וזה – נכון גם (ובמיוחד) לאנשי התמיכה, הקלקה מקרית על קובץ סקריפט שזרוק איפשהוא, התקנה של תוכנה, מחיקת תוכנה. לפעמים הפעולות מתבצעות בהסחת דעת, או ב"חטיפת עכבר"-"רק להראות לך".
  • המימד האחרון – וירוסים, רוגלות, ו"הנדסה חברתית". אתם וודאי יודעים כי מנועי אנטי ווירוס מבוססים על "חתימות", זאת אומרת שבכל רגע בעולם יש מאות אלפי ווירוסים שאיש לא דגם את חתימתם – והם יכולים להגיע לארגונכם, גם אם תוקף יחליט להכין (לקמפל) ווירוס במיוחד עבורכם – כנראה שתוכנת האנטי ווירוס (בשיטה המסורתית לפחות – יש גם חידושים) לא תזהה את אותו ווירוס, לכן הגבלת ההרשאות על משתמש (גם איש תמיכה) עשויה למנוע את ההידבקות בווירוס.  קיימת גם מתודת ה "הנדסה החברתית", היא מכוונות בד"כ לארגון ספציפי, גם בישראל בוצעו מתקפות כאלו בעבר – אימייל תמים שמגיע לחברה, קובץ PDF, ואפילו סקריפט פשוט שאיש התמיכה שוכנע להריץ ובפועל – העניק הרשאות גבוהות למשתמש רדום בדומיין (אולי Guest, iuser וכ'ו).

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

אז כן, הנוהגים מייטיבים (Best practices) אומרים שמשתמש אינטראקטיבי (locally logged-on) לא אמור להיות בהרשאות גבוהות, למעשה בעולם הלינוקס, אף יוזר לא עובד במצב Root, ולפני כל פעולה מנהלתית מקיש המשתמש פקודה בשם Sudo, מיקרוספט ניסתה לעשות דבר דומה עם מנגנון ה UAC (השנוא כ"כ). אני מקווה שהתפיסה ברורה – כל פעולה מנהלתית חייבת להתבצע בכוונה תחילה. הפרקטיקות מנחות אותנו להקצות לאדמין 2 משתמשים, אחד פשוט והשני Admin שאינו מורשה לרוץ בצורה אינטראקטיבית (Logon לתחנה).

החלטנו להוציא את כולם מקבוצות ה Admin , איך מתמודדים עם המגבלות החדשות ? ברשותכם אחלק את הסעיף ל 4. נתחיל עם כיצד "חיים עם הגזרה" – ונמשיך לבעיות המיוחדות שנוצרות לנו. כבר בשלב הזה חשוב לי להדגיש – הכל אפשרי !, עם קצת מאמץ כל אפליקציה – בעייתית ככל שתהיה, תשתף פעולה עם "הגזירות החדשות".
 
  1. אני אהיה "גלוי", יש דברים שלא ייפתרו – ואין לנו עניין לפתור אותם, לי אין כוונה לאפשר למשתמשים להתקין תוכנה (בשביל זה יש SCCM), וממש אין לי כוונה שמשתמש יוכל להתקין דרייברים (שרצים ב Ring 0 ומאפשרים שליטה מאלה). ל"בעיות" מסוג זה יש פתרונות טכנולוגיים, ואין טעם לעקוף אותם.

  2. אנחנו נכיר חבר מאוד טוב, קוראים לו Run-as, לפעמים הוא גלוי (בלחצן ימני), לפעמים הוא מסתתר בשילוב של לחצן ה Shift עם הלחצן הימני. ולפעמים קיצור הדרך ברירת המחדל לא יוביל אותנו אליו (אינטרנט אקספלורר למשל, או אוטלוק). בנוסף קיימים מגוון של כלים שיודעים להריץ ב RunAs את כל האפליקציות שלנו, וכן לפתוח ספריות ושיתופים באותה הצורה. שימו לב שבמערכת ווינדוס כל Pid (פרוסס)  שנפתח בהרשאה מסוימת, ימשיך לפתוח את כל הילדים שלו באותה הרשאה. כך שפתיחת תיקייה ב RunAs תאפשר לנו להריץ מתוכה ומכל תוכנית שנפתח דרכה – פקודות בהרשאה גבוהה. לצורך ייעול העבודה שלי, ב HomeFolder יש לי Shortcut’s עם היוזר המינהלתי שלי שפותחים את explorer.exe, control.exe, mmc.exe, cmd.exe, notepad.exe, procmon.exe, taskmgr.exe דרך אפליקציית runas.exe המובנת בווינדוס.

  3. כשנרצה לאפשר חריגויות – חשוב שנבין ונצליח לפשט את מה שקורה ברקע, השלב הראשון להבין זאת, הוא בכך שהכל מבוסס על הרשאות קבצים, הרשאות רג'יסטרי, ולעתיים רחוקות הרשאות WMI. אם נפשט עוד יותר – אם ניתן למשתמש הרשאות על %windir%, %programfiles% ו HKEY_LOCAL_MACHINE  הוא יוכל להתקין בעצמו כמעט כל תוכנה ללא הגבלה (כמובן שלא נעשה זאת, זו רק הדגמה לייכולות). רוב האפליקציות בשוק יודעות להסתדר מצוין עם המגבלה הזו, אך אם לא – נריץ את תוכנת ProcMon (גרסא חדשה – רוצו להוריד) ונראה מה קורה, נוכל למיין ולחפש כל מני Access Deny על קבצים או רג'יסטרי. גם אם נמצא – זה לא בהכרח אומר שמייד נאפשר, אולי האפליקציה מאפשרת לקנפג את המיקום? אולי אני ייכול ליצור את אותו ערך רג'יסטרי ב HKEY_CURRENT_USER ? אם החלטתי לאפשר, ב regedt32.exe אני ייכול לערוך את ההרשאות על הערכים ברג'יסטרי, את הרשאות מערכת הקבצים – בלחצן ימני permission ובד"כ תוך הוספת קבוצה ייעודית (לא Domain users או משהוא כזה !). הרשאות WMI עורכים לחצן ימני > מאפיינים > הרשאות על תחילת העץ – האובייקט היחיד ב WmiMgmt.msc .

  4. בסעיף 3 פתרנו את הבעיות נקודתית, אבל איך עושים זאת בארגון ? לשמחתנו דרך הGPO  יש לנו אפשרות לקבוע הרשאות לקבצים, רג'יסטרי ושליטה על סרביסים. ב GPO  יש גם את ה User Rights assignment שמאפשר ניהול הרשאות של כל מה שקורה במחשב. ויש לנו עוד פינות חשוכות ב GPO  כמו הגדרות מי ייכול להתקין דריברים וכ'ו (לשימושכם, כלי מצוין לחיפוש ערכי GPO  שהומלץ ע"י רן – ITPortal). עוד אמצעי מצוין למשחק  הוא ה task scheduler, הוא מאפשר לנו להריץ אפליקציות תוך שמירה על הזהות שלנו (יוזר) אך עם אסקלציה של הרשאות. גם אותו – אפשר כמובן לנהל ב GPO

  5. החלק האחרון שנשאר לנו לטפל בו, ייכול להייות גם הכואב ביותר – ה LoginScript. קצת לא ברור לי איך האבולוציה לקחה אותנו למצב שבארגונים שלמים לכל המשתשמשים מוגדר אותו LoginScript (בעצם כן ברור, NT), ממבט ראשוני זה נראה כל כך לא טבעי – הרי ברור לנו שאם ההגדרה היא פרטנית לכל יוזר, השימוש שנועד לזה הוא לסקריפטים ספציפיים ליוזר ספציפי. הבעיה היא שהוא רץ בהרשאות קבועות ולא יודע להתאים את עצמו. לשמחתנו החל מווינדוס ויסטה מייקרוסופט הוסיפה ל GPO  חלק חדש, ה- preferences שמאגד בתוכו את כל מה שהיה נהוג עד היום ב LoginScript – עם 2 שיפורים עיקריים, הראשון – אתם אל תדאגו להרשאות, אם הוא צריך (למשל לרג'יסטרי) – הוא ייקח, השני (וחבל שהוא חבוי בטאב) הוא החלק המאפשר לנו ליצור טריגרים לכל אירוע – וחוסך לנו בסקריפטים עשרות שורות של IF ו Case ו Wmi. אז בעצם אנחנו ייכולים כעת להעביר את ה LoginScript אל ה GPO . במידה וכן צריך להריץ סקריפט בהרשאות גבוהות, ניתן לעשות זאת דרך ה startup script ב  GPO  או במשימה מתוזמנת. אגב, אפרופו prefernces – טיפ מציל חיים הוא תמיד אבל תמיד להשתמש ב V  של  Remove this item when it is no longer applied (לא ברור איך הוא לא מסומן בברירת מחדל, באותו הקישור שימו לב גם להסבר על הרשאות הריצה של ה GPP).
 
 
 
לדעתי – הכל מכוסה, עכשיו רק צריך להתחיל. והנקודה הפשוטה והטובה ביותר להתחיל היא באדמינים שלכם – אנשי ה IT, לא סתם התעמקתי בהם לאורך כל הפוסט, הם גם החשובים ביותר מבחינת הפגיעות של הארגון – וגם, אם התומכים יילמדו על עצמם, על התחנה שלהם להשתמש בכלים שבסעיף 2, רק אז הם יידעו להשתמש בהם גם על המשתמשים (המטרה היא שלא נעשה כל היום Log-off, Log-on – אלא נשתמש בכלי ה runas).
 

 

About the blog owner:

Gidon Marcus work as a NetApp Technical Support Engineer for the EMEA market in Newcastle, UK. He is one of the moderators of the largest Hebrew IT community and
also active in some other Israeli and world-wide professional Forums
& communities. For the past two years worked for the Israeli police
as a deployment & Windows client expert. And also worked as senior
Windows Client consultant on behalf of Hewlett-Packard (HP). Gidon
served in the Israeli air force as a system administrator and a team
leader of the Sys-Desk department at a large air force base. In the free
time study for BA in social science at the Open University And blogs
about anything related to Microsoft and technology that’s beneficial to
others.

Visit Gidon Marcus profile on LinkedIn:

View Gidi Marcus's profile on LinkedIn

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

4 תגובות

  1. Shlomo8 בינואר 2013 ב 14:33

    תסביר לי בבקשה, איך בדיוק מפתחי WEB, שעובדים עם IIS, מה שאומר שכלי העבודה העיקרי שלהם הוא VS יוכלו לעבוד, עם אי אפשר להריץ את VS כ ADMIN (חייבים -אחרת לא ניתן לעבוד עם IIS)

    וזה רק דוגמא

    הגב
  2. David3 בפברואר 2013 ב 15:38

    technet.microsoft.com/en-us/library/cc725632(v=ws.10).aspx

    הגב
  3. מיכאל12 ביוני 2013 ב 16:56

    ראשית תודה על תוכן המעמיק בעניין הנ"ל, ברצוני לשאול אם אני משתמש בהצפנה של הדיסק הקשיח, האם לא תיהיה אפשרות לאפס את הסיסמא של המנהל\"לשדרג" מתשמש רגיל ל Admin ע"י כלים חיצונים? אם הבנתי נכון מאחר שכל הדיסק מוצפן בעצם אותם תוכנות שמבצעות איפוס, "שדרוג" וכו' לא יוכלו לבצע את האיפוס מאחר והקבצים אשר התוכנות נגשות אליהם יהיו מוצפנים ולא יכלו לגשת אליהם?, ומה בנוגע לטריק של החלפת קובץ המקשים דביקים ב cmd איך ניתן למנוע זאת?
    כפי שמוצג בבלוג כאן
    http://www.leenet.info/search/label/%D7%90%D7%99%D7%A4%D7%95%D7%A1%20%D7%A1%D7%99%D7%A1%D7%9E%D7%AA%20ADMIN
    תודה
    מיכאל

    הגב
  4. GidonM19 באוגוסט 2013 ב 15:16

    הכלים הללו אכן לא יעבדו בד"כ. אם כי גם הם מגיעים לעתים עם אפשרות הצלה.
    למשל BDE:
    http://support.microsoft.com/kb/928201

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

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

    הגב