בדף הזה מוסברים מושגים חשובים ומונחים שקשורים למכונה וירטואלית מוגנת. כדי להתחיל להשתמש ב-מכונה וירטואלית מוגנת, אפשר לנסות את המדריך למתחילים או לעיין במאמר בנושא שינוי האפשרויות של מכונה וירטואלית מוגנת.
מכונות וירטואליות מוגנות מאפשרות לאמת את התקינות של המכונות הווירטואליות של Compute Engine, כדי שתוכלו להיות בטוחים שתוכנות זדוניות או ערכות רוטקיט ברמת ה-boot או הליבה לא מסכנות את המכונות שלכם.
היתרונות העיקריים של מכונות וירטואליות מוגנות
מכונות וירטואליות מוגנות מספקות יתרונות אסטרטגיים רבים, כמו הגנה מקיפה מפני התקפות ברמת הקושחה, שינויים בטוען האתחול ופריצות ברמת הליבה.
הטבות תפעוליות: כוללות קיצור זמן התגובה לאירועי אבטחה, ניהול תאימות פשוט יותר ושקיפות משופרת של שלמות המערכת.
יתרונות עסקיים: כוללים הגברת הביטחון בתשתית הענן, צמצום הסיכון לפרצות אבטחה ושיפור העמידה בדרישות הרגולטוריות.
ארכיטקטורת האבטחה הבסיסית של מכונות וירטואליות מוגנות
מכונות וירטואליות מוגנות מטמיעות ארכיטקטורה של הגנה משולשת. הארכיטקטורה הזו מספקת הגנה חזקה מהבסיס, כפי שמתואר בטבלה הבאה.
| תכונה | הסבר | איך זה עוזר |
|---|---|---|
| טכנולוגיית הפעלה מאובטחת | תכונה של קושחת UEFI שמבטיחה שהמכונה הווירטואלית תופעל רק עם תוכנה מקורית חתומה, על ידי אימות החתימה הדיגיטלית של כל רכיבי האתחול, כמו מנהלי התקנים של הקושחה, תוכנת האתחול של מערכת ההפעלה והליבה.
מידע נוסף זמין במאמר בנושא אתחול מאובטח. |
מונעת טעינה של תוכנות אתחול וליבות לא מורשות או שבוצעו בהן שינויים, ובכך עוצרת הרבה ערכות אתחול וערכות רוטקיט. התהליך מופסק אם לרכיב כלשהו אין חתימה מהימנה. |
| מודול פלטפורמה וירטואלי מהימן (vTPM) | מעבד אבטחה וירטואלי, שמספק לכל מכונה וירטואלית מוגנת vTPM ייעודי לאבטחה ברמת החומרה.
מידע נוסף זמין במאמר מודול פלטפורמה מהימנה וירטואלי (vTPM). |
התכונות שזמינות ב-
|
| מעקב מתקדם אחר תקינות | מערכת ניטור שיוצרת בסיס מוזהב של מדידות אתחול שנלקחות במהלך האתחול המדוד.
מידע נוסף זמין במאמר מעקב אחר תקינות. |
השוואה בין מדידות האתחול הנוכחיות לבין נתוני הבסיס המהימנים באתחולים הבאים. הכלי יוצר התראות ב-Cloud Logging וב-Security Command Center אם הוא מזהה אי-התאמות, וכך מאפשר חקירה יזומה של הפרות פוטנציאליות של היושרה. |
הפעלה מאובטחת
ההפעלה המאובטחת עוזרת לוודא שהמערכת מפעילה רק תוכנה מקורית. היא עושה זאת באמצעות אימות החתימה הדיגיטלית של כל רכיבי האתחול, ועצירת תהליך האתחול אם אימות החתימה נכשל.
מופעי מכונות וירטואליות מוגנות מריצים קושחת UEFI שנוצרה על ידי Google. כדי להוסיף שכבת אבטחה נוספת, ובאופן שתואם לשיטות העבודה המקובלות של Google לגבי כל תוכנות הייצור שלה, הקושחה הזו חתומה ומאומתת באופן קריפטוגרפי באמצעות רשות אישורים פנימית של Google. האימות הזה מתבצע בכל הקושחות, בלי קשר לשאלה אם התכונה 'אתחול מאובטח' מופעלת. האימות הזה מבטיח את תקינות הקושחה, מאשר שהיא אותנטית ולא שונתה, ומגדיר את ה-Root of Trust עבור Secure Boot.
הקושחה Unified Extensible Firmware Interface (UEFI) 2.3.1 מנהלת בצורה מאובטחת את האישורים שמכילים את המפתחות שמשמשים את יצרני התוכנה לחתימה על קושחת המערכת, על טוען האתחול של המערכת ועל כל קובץ בינארי שהם טוענים. מכונות וירטואליות מוגנות משתמשות בקושחת UEFI.
בכל אתחול, קושחת ה-UEFI מאמתת את החתימה הדיגיטלית של כל רכיב אתחול מול מאגר מאובטח של מפתחות מאושרים. אסור להפעיל רכיב אתחול שלא חתום בצורה תקינה או שלא חתום בכלל.
אם זה קורה, ביומן של המסוף הטורי של מופע המכונה הווירטואלית תופיע רשומה שמכילה את המחרוזות UEFI: Failed to load image ו-Status: Security Violation, יחד עם תיאור של אפשרות האתחול שנכשלה. כדי לפתור את הבעיה, צריך להשבית את ההפעלה המאובטחת באמצעות ההוראות שבמאמר שינוי האפשרויות של מכונות וירטואליות מוגנות, כדי שתוכלו להפעיל את מכונת ה-VM, לאבחן ולפתור את הבעיה, ואז להפעיל מחדש את ההפעלה המאובטחת.
מודול פלטפורמה מהימן וירטואלי (vTPM)
vTPM הוא מודול פלטפורמה מהימן וירטואלי, שהוא שבב מחשב מיוחד שבו אפשר להשתמש כדי להגן על אובייקטים, כמו מפתחות ואישורים, שמשמשים לאימות הגישה למערכת. ה-vTPM של מכונה וירטואלית מוגנת תואם באופן מלא למפרט הספרייה של Trusted Computing Group (TPM) 2.0 ומשתמש בספריית BoringSSL. הספרייה BoringSSL מסתמכת על המודול BoringCrypto. לפרטים על FIPS 140-2 בנוגע למודול BoringCrypto, אפשר לעיין באישור מספר 3678 של תוכנית האימות של מודולים קריפטוגרפיים של NIST.
ה-vTPM של המכונה הווירטואלית המוגנת מאפשר אתחול מדוד על ידי ביצוע המדידות שנדרשות ליצירת בסיס אתחול תקין ידוע, שנקרא בסיס מדיניות התקינות. הערך הבסיסי של מדיניות התקינות משמש להשוואה עם המדידות מאתחולים עוקבים של מכונות וירטואליות, כדי לקבוע אם חל שינוי כלשהו.
אפשר גם להשתמש ב-vTPM כדי להגן על סודות באמצעות הגנה או איטום. בפרויקט Go-TPM ב-GitHub יש דוגמאות בשפת Go שממחישות איך להשתמש ב-vTPM למטרה הזו.
אתחול מדוד
במהלך אתחול מדוד, נוצר גיבוב של כל רכיב (לדוגמה, קושחה, טוען אתחול או ליבה) כשהרכיב נטען, והגיבוב הזה משורשר ואז מחושב מחדש עם הגיבובים של כל הרכיבים שכבר נטענו, כמו שמוצג כאן:

המידע הזה מזהה את הרכיבים שנכללו בטעינה ואת סדר הטעינה שלהם.
בפעם הראשונה שמפעילים מכונה וירטואלית, התכונה 'אתחול מדוד' יוצרת את בסיס המדיניות של התקינות מתוך קבוצת המדידות הראשונה, ושומרת את הנתונים האלה בצורה מאובטחת. בכל פעם שמופעל מחדש מופע של מכונה וירטואלית, המדידות האלה מתבצעות שוב ונשמרות בזיכרון מאובטח עד להפעלה הבאה מחדש. שתי קבוצות המדידות האלה מאפשרות ניטור של התקינות, שבעזרתו אפשר לקבוע אם בוצעו שינויים ברצף האתחול של מופע של מכונה וירטואלית.
מעקב אחר תקינות
התכונה 'מעקב אחר תקינות' עוזרת לכם להבין את מצב מכונות ה-VM ולקבל החלטות לגביהן.
המעקב אחר השלמות מסתמך על המדידות שנוצרות על ידי Measured Boot, שמשתמש ברישומים של הגדרות הפלטפורמה (PCR) כדי לאחסן מידע על הרכיבים ועל סדר טעינת הרכיבים של בסיס מדיניות השלמות (רצף אתחול תקין ידוע) ושל רצף האתחול האחרון.
במסגרת המעקב אחר השלמות, מתבצעת השוואה בין מדידות האתחול האחרונות לבין נתוני הבסיס של מדיניות השלמות, ומוחזרות שתי תוצאות של מעבר או כשל בהתאם להתאמה או לאי-התאמה בין הנתונים. תוצאה אחת מתייחסת לרצף האתחול המוקדם והשנייה לרצף האתחול המאוחר. אתחול מוקדם הוא רצף האתחול מתחילת קושחת UEFI עד שהשליטה מועברת לתוכנת האתחול. אתחול מאוחר הוא רצף האתחול מתוכנת האתחול ועד להעברת השליטה לליבת מערכת ההפעלה. אם אחד מהחלקים של רצף האתחול האחרון לא תואם לבסיס, תקבלו הודעה על כשל באימות השלמות.
אם הכשל צפוי, למשל אם הפעלתם עדכון מערכת במופע של מכונה וירטואלית, אתם צריכים לעדכן את בסיס המדיניות של היושרה. עדכון בסיס המדיניות של שלמות המערכת מגדיר את הבסיס למדידות שנאספו מרצף האתחול האחרון. אם זה לא צפוי, צריך להפסיק את המכונה הווירטואלית ולבדוק את הסיבה לכשל.
אפשר לראות את דוחות התקינות ב-Cloud Monitoring ולהגדיר התראות על כשלים בתקינות. אפשר לבדוק את הפרטים של תוצאות המעקב אחר התקינות ב-Cloud Logging. מידע נוסף זמין במאמר מעקב אחרי תקינות במכונות וירטואליות מוגנות.
אירועים של מעקב אחר תקינות
מכונה וירטואלית מוגנת יוצרת רשומות ביומן לסוגי האירועים הבאים:
-
clearTPMEvent: מציין אם ה-vTPM נוקה, מה שגורם למחיקת כל הסודות שמאוחסנים בו. השינוי הזה לא משפיע על אף היבט של מכונות וירטואליות מוגנות, ולכן הוא רלוונטי רק אם אתם משתמשים ב-vTPM כדי להגן על מידע אישי רגיש, כמו שמתואר במאמר Virtual Trusted Platform Module (vTPM). -
earlyBootReportEvent: מציין אם בדיקת השלמות של רצף האתחול המוקדם עברה בהצלחה, ומספק פרטים על ערכי ה-PCR מנקודת הבסיס ומרצף האתחול האחרון שהושוו כדי לקבוע את התוצאה. -
lateBootReportEvent: מציין אם בדיקת השלמות של רצף האתחול המאוחר עברה בהצלחה, ומספק פרטים על ערכי ה-PCR מנקודת הבסיס ומרצף האתחול האחרון שהושוו כדי לקבוע את התוצאה. -
setShieldedInstanceIntegrityPolicy: נרשם ביומן בכל פעם שמעדכנים את בסיס מדיניות השלמות. -
shutdownEvent: נרשם ביומן בכל פעם שהמופע של המכונה הווירטואלית נעצר. -
startupEvent: נרשם ביומן בכל פעם שהמופע של מכונת ה-VM מופעל. המידע המעניין באירוע הזה הוא הערךbootCounter, שמציין כמה פעמים המופע הזה הופעל מחדש. -
updateShieldedInstanceConfig: נרשם ביומן בכל פעם שמפעילים או משביתים אחת מהאפשרויות של מכונה וירטואלית מוגנת.
התקדמות האירועים שמופיעה בדרך כלל ביומנים היא startupEvent, earlyBootReportEvent, lateBootReportEvent ובסופו של דבר shutdownEvent, וכולם עם אותו ערך bootCounter שמזהה אותם כתיאור של רצף האתחול של אותה מכונה וירטואלית.
אם תעדכנו את בסיס המדיניות של היושרה בתגובה לכשל צפוי ביושרה של מופע של מכונה וירטואלית, תראו אירועים נוספים של earlyBootReportEvent ו-lateBootReportEvent שמתארים את המדידות החדשות של בסיס המדיניות של היושרה. בדוגמה הבאה אפשר לראות את הרצף הצפוי:
startupEventearlyBootReportEventשמשווה בין ערך הבסיס המקורי לבין רצף האתחול האחרון (עובר)lateBootReportEventשמשווה בין ערך הבסיס המקורי לבין רצף האתחול האחרון (נכשל)-
setShieldedInstanceIntegrityPolicyכשמעדכנים את בסיס המדיניות של מדיניות השלמות, שקובע את בסיס המדיניות למדידות שנאספו מרצף האתחול האחרון -
earlyBootReportEventשמשווה בין ערך הבסיס החדש לרצף האתחול האחרון (עובר)
lateBootReportEventשמשווה בין ערך הבסיס החדש לרצף האתחול האחרון (עובר)
Windows
earlyBootReportEvent
earlyBootReportEvent כולל את החלקים והרכיבים הבאים:
actualMeasurements: מכיל את הערכים של Platform Configuration Register (PCR) לרצף האתחול האחרון. ערכי ה-PCR הם אלה שמזהים את רכיבי האתחול ואת סדר טעינת הרכיבים שמשמשים את רצף האתחול האחרון, והם אלה שמושווים לבסיס של מדיניות השלמות (שהערכים שלה נרשמים בקטעpolicyMeasurements) כדי לקבוע אם חל שינוי ברצף האתחול של מכונת ה-VM. הרכיבים בקטעactualMeasurementsיכולים להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות. הקטע הזה כולל בדרך כלל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על קוד מנהל האתחול של UEFI וניסיונות אתחול. -
2: מכיל את הערך של PCR5, שמכיל מידע על טבלת המחיצות של ה-GUID בדיסק. הוא לא משמש לאימות של רצף האתחול האחרון מול הבסיס של מדיניות השלמות. -
3: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
policyEvaluationPassed: מציין אם האימות של החלק הנתון ברצף ההפעלה עבר בהצלחה בהשוואה לערך הבסיסי של מדיניות התקינות.
policyMeasurements: מכיל את ערכי ה-PCR של קו הבסיס שמשמשים לאימות שלמות כערכים צפויים. הקטעpolicyMeasurementsיכול להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות, אבל בדרך כלל הוא כולל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על קוד מנהל האתחול של UEFI וניסיונות אתחול. הערך הזה לא נכלל באתחול הראשון. -
2: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
כדי ללמוד איך להשתמש בערכי PCR כדי לאבחן כשל באימות של תקינות האתחול, אפשר לעיין במאמר קביעת הסיבה לכשל באימות של תקינות האתחול.earlyBootReportEvent
lateBootReportEvent
lateBootReportEvent כולל את החלקים והרכיבים הבאים:
actualMeasurements: מכיל את הערכים של Platform Configuration Register (PCR) לרצף האתחול האחרון. ערכי ה-PCR הם אלה שמזהים את רכיבי האתחול ואת סדר טעינת הרכיבים שמשמשים את רצף האתחול האחרון, והם אלה שמושווים לבסיס של מדיניות השלמות (שהערכים שלה נרשמים בקטעpolicyMeasurements) כדי לקבוע אם חל שינוי ברצף האתחול של מכונת ה-VM. הרכיבים בקטעactualMeasurementsיכולים להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות. הקטע הזה כולל בדרך כלל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על קוד מנהל האתחול של UEFI וניסיונות אתחול. -
2: מכיל את הערך של PCR5, שמכיל מידע על טבלת המחיצות של ה-GUID בדיסק. הוא לא משמש לאימות של רצף האתחול האחרון מול הבסיס של מדיניות השלמות. -
3: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע. -
4: מכיל את הערך של PCR11, שמכיל מידע על בקרת הגישה של הצפנת הכונן באמצעות BitLocker. -
5: מכיל את הערך של PCR12, שמכיל מידע על אירועי נתונים. הוא לא משמש לאימות של רצף האתחול האחרון מול הבסיס של מדיניות השלמות. -
6: מכיל את הערך של PCR13, שמכיל מידע על ליבת Windows ומנהלי אתחול. -
7: מכיל את הערך של PCR14, שמכיל מידע על רשויות האתחול של Windows.
-
policyEvaluationPassed: מציין אם האימות של החלק הנתון ברצף ההפעלה עבר בהצלחה בהשוואה לערך הבסיסי של מדיניות התקינות.
policyMeasurements: מכיל את ערכי ה-PCR של קו הבסיס שמשמשים לאימות שלמות כערכים צפויים. הקטעpolicyMeasurementsיכול להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות, אבל בדרך כלל הוא כולל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על קוד מנהל האתחול של UEFI וניסיונות אתחול. -
2: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע. -
3: מכיל את הערך של PCR11, שמכיל מידע על בקרת הגישה של הצפנת הכונן באמצעות BitLocker. -
4: מכיל את הערך של PCR13, שמכיל מידע על ליבת Windows ומנהלי אתחול. -
5: מכיל את הערך של PCR14, שמכיל מידע על רשויות האתחול של Windows.
-
כדי ללמוד איך להשתמש בערכי PCR כדי לאבחן כשל באימות של תקינות האתחול, אפשר לעיין במאמר קביעת הסיבה לכשל באימות של תקינות האתחול.lateBootReportEvent
Linux
earlyBootReportEvent
earlyBootReportEvent כולל את החלקים והרכיבים הבאים:
actualMeasurements: מכיל את הערכים של Platform Configuration Register (PCR) לרצף האתחול האחרון. ערכי ה-PCR הם אלה שמזהים את רכיבי האתחול ואת סדר טעינת הרכיבים שמשמשים את רצף האתחול האחרון, והם אלה שמושווים לבסיס של מדיניות השלמות (שהערכים שלה נרשמים בקטעpolicyMeasurements) כדי לקבוע אם חל שינוי ברצף האתחול של מכונת ה-VM. הרכיבים בקטעactualMeasurementsיכולים להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות. הקטע הזה כולל בדרך כלל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על ה-shim של מערכת ההפעלה. -
2: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
policyEvaluationPassed: מציין אם האימות של הקטע שצוין ברצף האתחול עבר בהצלחה בהשוואה לערך הבסיסי של מדיניות השלמות.
policyMeasurements: מכיל את ערכי ה-PCR של קו הבסיס שמשמשים לאימות שלמות כערכים צפויים. הקטעpolicyMeasurementsיכול להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות, אבל בדרך כלל הוא כולל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על ה-shim של מערכת ההפעלה. הערך הזה לא נכלל בהפעלה הראשונה. -
2: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
כדי ללמוד איך להשתמש בערכי PCR כדי לאבחן כשל באימות של תקינות האתחול, אפשר לעיין במאמר קביעת הסיבה לכשל באימות של תקינות האתחול.earlyBootReportEvent
lateBootReportEvent
lateBootReportEvent כולל את החלקים והרכיבים הבאים:
actualMeasurements: מכיל את הערכים של Platform Configuration Register (PCR) לרצף האתחול האחרון. ערכי ה-PCR הם אלה שמזהים את רכיבי האתחול ואת סדר הטעינה של הרכיבים שמשמשים את רצף האתחול האחרון. הם גם אלה שמושווים לערכי הבסיס של מדיניות השלמות (שהערכים שלהם מתועדים בקטעpolicyMeasurements) כדי לקבוע אם חל שינוי ברצף האתחול של מכונת ה-VM. הרכיבים בקטעactualMeasurementsיכולים להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות. הקטע הזה כולל בדרך כלל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על טוען האתחול ועל הליבה בשלב השני. -
2: מכיל את הערך של PCR5, שמכיל מידע על טבלת המחיצות של ה-GUID בדיסק. הוא לא משמש לאימות של רצף האתחול האחרון מול הבסיס של מדיניות השלמות. -
3: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
policyEvaluationPassed: מציין אם האימות של הקטע שצוין ברצף האתחול עבר בהצלחה בהשוואה לערך הבסיסי של מדיניות השלמות.
policyMeasurements: מכיל את ערכי ה-PCR של קו הבסיס שמשמשים לאימות שלמות כערכים צפויים. הקטעpolicyMeasurementsיכול להשתנות בהתאם למערכת ההפעלה, להפצה ולהגדרות, אבל בדרך כלל הוא כולל את הרכיבים הבאים:-
0: מכיל את הערך של PCR0, שמכיל מידע על רכיבי קושחה ועל טכנולוגיית הצפנת הזיכרון שפעילה. ה-PCR הזה שונה מפרופיל הקושחה של פלטפורמת TCG PCClient בכך שהוא מודד רק את האירועים הבאים:-
EV_S_CRTM_VERSION, גרסת הקושחה של Compute Engine -
EV_NONHOST_INFO, שמייצג את טכנולוגיית הצפנת הזיכרון -
EV_SEPARATOR, הקושחה של האירוע המוגדר כמפריד מודדת מתי לא יתווספו עוד אירועי PCR0. כלומר, ל-PCR0 יש ערך סטטי למשך מחזור החיים של מכונה וירטואלית. הערך משתנה רק במכונות וירטואליות חדשות אחרי עדכוני קושחה של גרסה ראשית או שינוי בטכנולוגיית ההצפנה. הוא לא נמצא בשימוש כשמאמתים את רצף האתחול האחרון מול בסיס המדיניות של תקינות המערכת.
-
-
1: מכיל את הערך של PCR4, שמכיל מידע על טוען האתחול ועל הליבה בשלב השני. -
2: מכיל את הערך של PCR7, שמכיל מידע על מדיניות האתחול המאובטח של המופע.
-
כדי ללמוד איך להשתמש בערכי PCR כדי לאבחן כשל באימות של תקינות האתחול, אפשר לעיין במאמר קביעת הסיבה לכשל באימות של תקינות האתחול.lateBootReportEvent
שימוש ב-BitLocker עם תמונות של מכונות וירטואליות מוגנות
אפשר להפעיל את BitLocker לדיסקים של אתחול Windows שמהווים חלק מקובצי אימג' של מכונות וירטואליות מוגנות. קובצי אימג' של מכונות וירטואליות מוגנות מציעים תכונות אבטחה כמו קושחה שתואמת ל-UEFI, הפעלה מאובטחת, אתחול מדוד מוגן על ידי vTPM וניטור של התקינות. vTPM וניטור של התקינות מופעלים כברירת מחדל, ו-Google ממליצה להפעיל הפעלה מאובטחת אם אפשר.
אם בוחרים להפעיל את BitLocker בדיסק אתחול של Windows שהוא חלק מתמונה של מכונה וירטואלית מוגנת, מומלץ מאוד לשמור את מפתח השחזור במיקום בטוח, כי אם אין לכם את מפתח השחזור, לא תוכלו לשחזר את הנתונים.
לפני שמפעילים את BitLocker בדיסק אתחול של Windows שהוא חלק מתמונת מכונה וירטואלית מוגנת, צריך לקחת בחשבון את הנקודות הבאות:
בדיסקים של מכונות וירטואליות מוגנות, BitLocker משתמש ב-vTPM כדי לאחסן את מפתחות ההצפנה, וה-vTPM משויך באופן קבוע למכונה הווירטואלית שבה הוא נוצר. המשמעות היא שאפשר לשחזר תמונת מצב של דיסק אתחול של מכונה וירטואלית מוגנת לדיסק קבוע אחר, אבל אי אפשר לפענח אותו כי ה-vTPM שמכיל את מפתחות BitLocker לא זמין. אם יש לכם מפתח שחזור, תוכלו לשחזר את הנתונים על ידי ביצוע ההוראות במדריך השחזור של BitLocker. אם אין לכם מפתח שחזור, אי אפשר לשחזר את הנתונים בדיסק.
בדיסקים של נתונים ב-VM מוגן, הנתונים בדיסק לאחסון מתמיד מוצפנים כברירת מחדל. הפעלת BitLocker בנוסף להצפנת דיסק קבוע לא משפיעה על קצב העברת הנתונים, אבל היא עשויה להגדיל מעט את השימוש ב-vCPU. הפעלת BitLocker בדיסקים של נתונים שמצורפים למכונה הווירטואלית לא יוצרת את אותם אתגרים בשחזור כמו בדיסקים של אתחול. הסיבה לכך היא שמפתחות ההצפנה של BitLocker לדיסקים של נתונים לא מאוחסנים ב-vTPM. אם איבדתם את היכולת לבטל את נעילת הדיסק בדרך הרגילה ויש לכם את מפתח השחזור, אתם יכולים לצרף את הדיסק למכונה וירטואלית אחרת לא מוצפנת ולשחזר אותו משם. אם אין לכם מפתח שחזור, לא תוכלו לשחזר את הנתונים בדיסק.
הרשאה לניהול זהויות והרשאות גישה (IAM)
מכונה וירטואלית מוגנת משתמשת ב-IAM לצורך אימות.
פעולות של מכונות וירטואליות מוגנות משתמשות בהרשאות הבאות של Compute Engine:
-
compute.instances.updateShieldedInstanceConfig: מאפשר למשתמש לשנות את האפשרויות של מכונה וירטואלית מוגנת במופע של מכונה וירטואלית. -
compute.instances.setShieldedInstanceIntegrityPolicy: מאפשר למשתמש לעדכן את בסיס המדיניות של תקינות במכונה וירטואלית. -
compute.instances.getShieldedInstanceIdentity: מאפשר למשתמש לאחזר מידע על מפתח אישור מ-vTPM.
ההרשאות של מכונה וירטואלית מוגנת ניתנות לתפקידים הבאים ב-Compute Engine:
roles/compute.instanceAdmin.v1roles/compute.securityAdmin
אפשר גם להעניק הרשאות של מכונות וירטואליות מוגנות לתפקידים בהתאמה אישית.
אילוצים של מדיניות הארגון לגבי מכונות וירטואליות מוגנות
אתם יכולים להגדיר את constraints/compute.requireShieldedVm ההגבלה של מדיניות הארגון True כדי לדרוש שמכונות וירטואליות ב-Compute Engine שנוצרו בארגון שלכם יהיו מכונות וירטואליות מוגנות.
במאמר שימוש באילוצים בוליאניים במדיניות הארגון מוסבר איך להגדיר את האילוץ constraints/compute.requireShieldedVm.
כדי להגדיר אילוץ, צריך להיות לכם תפקיד אדמין של מדיניות ארגונית.
מגבלות
לא ניתן להשתמש במכונות וירטואליות מוגנות במכונות Bare Metal, למעט מכונות Bare Metal מסוג A4X ו-C4A.
המאמרים הבאים
- מידע נוסף על אחזור מפתח ההמלצה מ-vTPM
- כאן אפשר לקרוא על גישה אחת לאוטומציה של תגובות לאירועים של מעקב אחר תקינות.