Share via


התאם אישית הגנה מפני ניצול לרעה

חל על:

רוצה לחוות את Defender עבור נקודת קצה? הירשם לקבלת גירסת ניסיון ללא תשלום.

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

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

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

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

אזהרה

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

צמצום סיכונים של הגנה מפני ניצול לרעה

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

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

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

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

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

צמצום סיכונים תיאור ניתן להחיל על מצב ביקורת זמין
מגן זרימת בקרה (CFG) מבטיח תקינות זרימת בקרה עבור שיחות לא ישירות. ניתן גם להעלים פעולות ייצוא ולהשתמש ב- CFG מחמיר. מערכת ורמת אפליקציה לא
מניעת ביצוע נתונים (DEP) מונע הפעלה של קוד מעמודי זיכרון של נתונים בלבד, כגון מחסניות וערימות. ניתן להגדרה רק עבור אפליקציות של 32 סיביות (x86), הזמינות לצמיתות עבור כל הארכיטקטורות האחרות. ניתן גם להפוך הדמיה של קוד המרה של ATL לזמינה באופן אופציונלי. מערכת ורמת אפליקציה לא
כפה אקראיות עבור תמונות (ASLR הכרחי) משנה מיקום בכפייה של תמונות שלא עברו הידור עם ‎/DYNAMICBASE. יכול להיכשל באופן אופציונלי בטעינת תמונות שאינן כוללות מידע על שינוי מיקום. מערכת ורמת אפליקציה לא
הקצאות זיכרון אקראית (ASLR מלמטה למעלה) מסדר מיקומים באקראי עבור הקצאות זיכרון וירטואלי. כולל מחסניות מבנה מערכת, ערימות, פריטי TEB ו- PEB. ניתן להשתמש באופן אופציונלי במגוון רחב יותר של אקראיות עבור תהליכי 64 סיביות. מערכת ורמת אפליקציה לא
אימות שרשראות חריגות (SEHOP) מבטיח את התקינות של שרשרת חריגים במהלך שיגור חריגה. ניתן להגדרה רק עבור יישומי 32 סיביות (x86). מערכת ורמת אפליקציה לא
אמת תקינות ערימה מסיים תהליך כאשר מזוהה פגם בזיכרון. מערכת ורמת אפליקציה לא
מגן קוד שרירותי (ACG) מונע את הצגת קוד ההפעלה שאינו מגובה על-ידי תמונה ומונע שינוי של דפי קוד. יכול לאפשר ביטול הצטרפות של שרשור ולאפשר שדרוג לאחור מרחוק (ניתן לקבוע את התצורה רק באמצעות PowerShell). ברמת האפליקציה בלבד כן
חסום תמונות בעלות תקינות נמוכה מונע את הטעינה של תמונות המסומנות כבעלות תקינות נמוכה. ברמת האפליקציה בלבד כן
חסום תמונות מרוחקות מונע טעינה של תמונות ממכשירים מרוחקים. ברמת האפליקציה בלבד לא
חסום גופנים לא מהימנים מונע טעינה של גופנים מבוססי GDI שאינם מותקנים בספריית גופני המערכת, כלומר גופנים מהאינטרנט. ברמת האפליקציה בלבד כן
מגן תקינות קוד הגבלת טעינת תמונות החתימה על-ידי Microsoft, WHQL ואילך. ניתן גם לאפשר תמונות חתומות של Microsoft Store. ברמת האפליקציה בלבד כן
הפוך נקודות הרחבה ללא זמינות מבטל מנגנוני יכולת הרחבה שונים המאפשרים הזרקת DLL לכל התהליכים, כגון קובצי AppInit DLL, רכיבי Hook של חלון וספקי שירות של Winsock. ברמת האפליקציה בלבד לא
הפוך קריאות מערכת של Win32k ללא זמינות מונע מיישום להשתמש בטבלת הקריאה למערכת Win32k. ברמת האפליקציה בלבד כן
אל תאפשר תהליכי צאצא מונע מיישום ליצור תהליכי צאצא. ברמת האפליקציה בלבד כן
ייצוא סינון כתובות (EAF) מזהה פעולות מסוכנות שנפתרו על-ידי קוד זדוני. יכול לאמת באופן אופציונלי את הגישה באמצעות מודולים הנמצאים בשימוש נפוץ על-ידי ניצולים לרעה. ברמת האפליקציה בלבד כן
ייבוא סינון כתובות (IAF) מזהה פעולות מסוכנות שנפתרו על-ידי קוד זדוני. ברמת האפליקציה בלבד כן
הדמיית ביצוע (SimExec) מבטיח שקריאות לממשקי API רגישים יחזרו למתקשרים חוקיים. ניתן להגדרה רק עבור יישומי 32 סיביות (x86). אינו תואם ל-ACG. ברמת האפליקציה בלבד כן
אימות בקשת API (CallerCheck) מוודא שממשקי API רגישים מופעלים על-ידי מתקשרים לגיטימיים. ניתן להגדרה רק עבור יישומי 32 סיביות (x86). לא תואם ל- ACG ברמת האפליקציה בלבד כן
אימות שימוש בנקודות אחיזה גורם לחריגה להעלות בהפניות לא חוקיות של מזהה ייחודי (handle). ברמת האפליקציה בלבד לא
אימות תקינות תלות של תמונה אוכף חתימת קוד עבור טעינת תלות תמונת Windows. ברמת האפליקציה בלבד לא
אימות תקינות מערום (StackPivot) מוודא שהמחסנית לא נותבה מחדש עבור ממשקי API רגישים. אינו תואם ל-ACG. ברמת האפליקציה בלבד כן

חשוב

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

מופעל בהגדרות התוכנית מופעל בהגדרות המערכת התנהגות
כן לא כפי שמוגדר בהגדרות התוכנית
כן כן כפי שמוגדר בהגדרות התוכנית
לא כן כפי שמוגדר בהגדרות המערכת
לא לא ברירת מחדל כמוגדר באפשרות 'השתמש באפשרות ברירת מחדל'
  • דוגמה 1 מיקאל קובע את התצורה של מניעת ביצוע נתונים בסעיף הגדרות המערכת לכבוי בברירת מחדל. מיקאל מוסיף לאחר מכן את האפליקציהtest.exeלמקטע 'הגדרות תוכנית'. באפשרויות עבור יישום זה, תחת מניעת ביצוע נתונים (DEP), הוא מפעיל את האפשרות 'עקוף הגדרות מערכת' ומגדירה את המתג למצב ל'מופעל'. אין אפליקציות אחרות המפורטות בסעיף 'הגדרות תוכנית'. התוצאה תהיה ש- DEP יהיה זמין רק עבור test.exe. לא יוחל DEP עבור כל האפליקציות האחרות.

  • דוגמה 2 ג'וזי קובעת את התצורה של מניעת ביצוע נתונים בסעיף הגדרות המערכת לכבוי בברירת מחדל. ג'וזי מוסיפה לאחר מכן את האפליקציהtest.exeלמקטע 'הגדרות תוכנית'. באפשרויות עבור יישום זה, תחת מניעת ביצוע נתונים (DEP), היא מפעילה את האפשרות 'עקוף הגדרות מערכת' ומגדירה את המתג למצב ל'מופעל'. ג'וזי גם מוסיפה את האפליקציה miles.exe למקטע 'הגדרות תוכנית'ומגדירה את Control flow guard (CFG) למצב פעיל. היא אינה מאפשרת את האפשרות 'עקוף הגדרות מערכת' עבור DEP או כל הקלה אחרת עבור אפליקציה זו. התוצאה תהיה ש- DEP יהיה זמין עבור test.exe. DEP לא יהיה זמין עבור אף יישום אחר, כולל miles.exe. CFG יהיה זמין עבור miles.exe.

הערה

אם מצאת בעיות במאמר זה, באפשרותך לדווח על כך ישירות לשותף Windows Server/לקוח Windows או להשתמש במספרי התמיכה הטכנית של Microsoft עבור המדינה/האזור שלך.

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

  1. פתח את אפליקציית אבטחת Windows על-ידי בחירת סמל המגן בשורת המשימות, או על-ידי חיפוש תפריט התחלה אבטחת Windows .

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

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

    • מופעל כברירת מחדל: הצמצום זמיןעבור אפליקציות שאין להן הגדרת צמצום זו מוגדרת במקטע הגדרות תוכנית ספציפי ליישום
    • כבוי כברירת מחדל - הקלה אינו זמינהעבור אפליקציות שאין להן הגדרת ההקלה באפליקציה ספציפית במקטע הגדרות התוכנית
    • השתמש בברירת מחדל - הקלה זמינה או אינו זמינה, בהתאם לתצורות ברירת המחדל המוגדרות על-ידי התקנת Windows 10 או Windows 11; ערך ברירת המחדל (מופעל אוכבוי) צוין תמיד לצד תווית השתמש בברירת מחדלעבור כל הקלה

    הערה

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

    שינוי הגדרות מסוימות עשוי לדרוש הפעלה מחדש.

  4. חזור על כך עבור כל צמצומי הסיכונים ברמת המערכת שברצונך לקבוע את תצורם.

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

    1. אם האפליקציה שברצונך לקבוע את תצורתה כבר מופיעה, בחר אותה ולאחר מכן בחר ערוך
    2. אם האפליקציה אינה מופיעה ברשימה, בחלק העליון של הרשימה, בחר הוסף תוכנית כדי להתאים אישית ולאחר מכן בחר כיצד ברצונך להוסיף את האפליקציה:
      • השתמש 'הוסף לפי שם תוכנית'כדי להחיל את ההקלה על כל תהליך פועל בשם זה. עליך לציין קובץ עם סיומת. באפשרותך להזין נתיב מלא כדי להגביל את ההקלה רק לאפליקציה בשם זה במיקום זה.
      • השתמש 'בחר נתיב קובץ מדויק'כדי להשתמש בחלון בוחר קבצים רגיל של סייר Windows כדי לחפש ולבחור את הקובץ הרצוי.
  6. לאחר בחירת האפליקציה, תראה רשימה של כל ההקלות שניתן להחיל. כדי להפוך את צמצום הסיכונים לזמין, בחר את תיבת הסימון ולאחר מכן שנה את המחוון ל- מופעל. בחר אפשרויות נוספות. בחירה ב 'ביקורת'יחיל את ההקלה במצב ביקורת בלבד. תקבל הודעה אם עליך להפעיל מחדש את התהליך או האפליקציה, או אם עליך להפעיל מחדש את Windows.

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

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

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

חומר עזר של PowerShell

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

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

חשוב

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

באפשרותך להשתמש ברכיב הפועל של PowerShell Get או Set עם ה- cmdlet ProcessMitigation. השימוש Get יציין את מצב התצורה הנוכחי של הקלות כלשהן שהופעלו במכשיר - הוסף את -Nameה-cmdlet ואת ה-app exe כדי לראות הקלות עבור האפליקציה הזו:

Get-ProcessMitigation -Name processName.exe

חשוב

הקלות ברמת המערכת שתצורתם לא נקבעה תציג מצב של NOTSET.

עבור הגדרות ברמת המערכת, NOTSET מציין את הגדרת ברירת המחדל עבור ההקלה שהוחלה.

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

ניתן לראות את הגדרת ברירת המחדל עבור כל הקלה ברמת המערכת באבטחת Windows.

השתמש Set כדי לקבוע תצורה של כל הקלה בתבנית הבאה:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

היכן:

  • <טווח:>
    • -Name כדי לציין שיש להחיל את הקלה על יישום ספציפי. ציין את קובץ ההפעלה של האפליקציה לאחר הדגל הזה.
    • -System כדי לציין שיש להחיל את הקלה ברמת המערכת.
  • <פעולה:>
    • -Enable להפוך את ההקלה לזמינה
    • -Disable להפוך את ההקלה לכבויה
  • <צמצום סיכונים>:
    • ה- cmdlet של צמצום הסיכונים כפי שמוגדר בטבלת cmdlets של צמצום סיכונים להלן, יחד עם כל פעולות המשנה (מוקפות ברווחים). כל הקלה מופרדת באמצעות פסיק.

לדוגמה, כדי להפוך את הקלה של מניעת ביצוע נתונים (DEP) לזמינה עם אמולציית ATL נק' ולקובץ הפעלה שנקרא testing.exe בתיקיה C:\Apps\LOB\test, ולמנוע מקובץ הפעלה זה ליצור תהליכי צאצא, השתמש בפקודה הבאה:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

חשוב

הפרד כל אפשרות הקלה באמצעות פסיקים.

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

Set-Processmitigation -System -Enable DEP

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

אם עליך לשחזר את ההקלה בחזרה לברירת המחדל של המערכת, עליך לכלול גם את -Remove cmdlet, כמו גם בדוגמה הבאה:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

באפשרותך גם להגדיר מספר צמצומי סיכונים למצב ביקורת. במקום להשתמש ב- cmdlet של PowerShell לצורך צמצום הסיכונים, השתמש ב- cmdlet של מצב ביקורת כפי שצוין בטבלה טבלת cmdlets של צמצום סיכונים להלן.

לדוגמה, כדי להפוך את מגן קוד שרירותי (ACG) לזמין במצב ביקורת עבור testing.exe שהיה בשימוש קודם לכן, השתמש בפקודה הבאה:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

באפשרותך להפוך מצב ביקורת ללא זמין באמצעות אותה פקודה אך להחליף את -Enable ב- -Disable.

טבלת הפניות של PowerShell

טבלה זו מפרטת את רכיבי ה- cmdlet של PowerShell (ו- cmdlet של מצב ביקורת משויך) שניתן להשתמש בהם כדי לקבוע את התצורה של כל צמצום סיכונים.

צמצום סיכונים חל על רכיבי cmdlet של PowerShell cmdlet של מצב ביקורת
מגן זרימת בקרה (CFG) מערכת ורמת אפליקציה CFG, StrictCFG, SuppressExports ביקורת אינה זמינה
מניעת ביצוע נתונים (DEP) מערכת ורמת אפליקציה DEP, EmulateAtlThunks ביקורת אינה זמינה
כפה אקראיות עבור תמונות (ASLR הכרחי) מערכת ורמת אפליקציה ForceRelocateImages ביקורת אינה זמינה
הקצאות זיכרון אקראית (ASLR מלמטה למעלה) מערכת ורמת אפליקציה BottomUp, HighEntropy ביקורת אינה זמינה
אימות שרשראות חריגות (SEHOP) מערכת ורמת אפליקציה SEHOP, SEHOPTelemetry ביקורת אינה זמינה
אמת תקינות ערימה מערכת ורמת אפליקציה TerminateOnError ביקורת אינה זמינה
מגן קוד שרירותי (ACG) ברמת האפליקציה בלבד DynamicCode AuditDynamicCode
חסום תמונות בעלות תקינות נמוכה ברמת האפליקציה בלבד BlockLowLabel AuditImageLoad
חסום תמונות מרוחקות ברמת האפליקציה בלבד BlockRemoteImages ביקורת אינה זמינה
חסום גופנים לא מהימנים ברמת האפליקציה בלבד DisableNonSystemFonts AuditFont, FontAuditOnly
מגן תקינות קוד ברמת האפליקציה בלבד BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
הפוך נקודות הרחבה ללא זמינות ברמת האפליקציה בלבד ExtensionPoint ביקורת אינה זמינה
הפוך קריאות מערכת של Win32k ללא זמינות ברמת האפליקציה בלבד DisableWin32kSystemCalls AuditSystemCall
אל תאפשר תהליכי צאצא ברמת האפליקציה בלבד DisallowChildProcessCreation AuditChildProcess
ייצוא סינון כתובות (EAF) ברמת האפליקציה בלבד EnableExportAddressFilterPlus, EnableExportAddressFilter [1] הביקורת אינה זמינה[2]
ייבוא סינון כתובות (IAF) ברמת האפליקציה בלבד EnableImportAddressFilter הביקורת אינה זמינה[2]
הדמיית ביצוע (SimExec) ברמת האפליקציה בלבד EnableRopSimExec הביקורת אינה זמינה[2]
אימות בקשת API (CallerCheck) ברמת האפליקציה בלבד EnableRopCallerCheck הביקורת אינה זמינה[2]
אימות שימוש בנקודות אחיזה ברמת האפליקציה בלבד StrictHandle ביקורת אינה זמינה
אימות תקינות תלות של תמונה ברמת האפליקציה בלבד EnforceModuleDepencySigning ביקורת אינה זמינה
אימות תקינות מערום (StackPivot) ברמת האפליקציה בלבד EnableRopStackPivot הביקורת אינה זמינה[2]

[1]: השתמש בתבנית הבאה כדי להפוך מודולי EAF לזמינים עבור קבצי dll לתהליך:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]: ביקורת עבור צמצום סיכונים זה אינה זמינה באמצעות רכיבי cmdlet של PowerShell.

התאמה אישית של ההודעה

לקבלת מידע אודות התאמה אישית של ההודעה כאשר כלל מופעל וחוסם אפליקציה או קובץ, ראה אבטחת Windows.

למידע נוסף

עצה

האם ברצונך לקבל מידע נוסף? Engage עם קהילת האבטחה של Microsoft בקהילת הטכנולוגיה שלנו: Microsoft Defender עבור נקודת קצה Tech Community.