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

סיכום

בנוסף ומאפשר למשתמשים לספק משלהם keypairs SSH עבור אימות, פלטפורמת Microsoft תכלת הרקיע מסתמך על keypairs SSH כדי לאפשר תכונות מסוימות הנוספים למחשב וירטואלי (VM) בעת הפריסה. אנו שהתגלו לאחרונה, בתרחישים מסוימים מוגבל, מפתחות ציבוריים מאישורים אלה פלטפורמה תכלת הרקיע היתה באופן בלתי צפוי להתווסף לקובץ ה-.ssh/authorized_keys. תרחישים אלה הם מסופחים רק על מצב שבו ה-VM הוקצו משאבים באמצעות אתחול הענן ובוחר המשתמש תכונות נוספות של תכלת הרקיע המסתמכים על אישורים, כגון זהות של השירות המנוהלים על-ידי המערכת.

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

כדי ללמוד עוד, עבור אל CVE-2019-0816.

מידע נוסף

פרטי תרחיש

הלוגיקה אתחול הענן המוזכרת בסעיף "תקציר" כעת ידוע קיימות בתמונות תכלת הרקיע Ubuntu 18.04 בנוסף 7.4/7.5/7.6 RHEL תצוגה מקדימה ציבורי ותמונות אתחול הענן CentOS 7.4. ייתכן גם קיים בתמונות מותאמות אישית באמצעות מערכות הפעלה אלה.    אם תפעיל את אחת מהתכונות הבאות בעת הקצאת אחת מתמונות Linux, אתה עשוי לראות מפתחות נוספים, לא צפויה בקובץ .ssh/authorized_keys, כגון אחת מהפעולות הבאות:

  • זהות מנוהלת

  • הרחבות בעזרת הגדרות מוגן

  • לפרוס VM עם מקשי מפתח מאגר האישורים VM

לזהות ואת סוגי קיים תיקון

זיהוי

כדי לבדוק אם יש לך מפתחות נוספים, סקור את מפתחות מורשים (קובץ vi .ssh/authorized_keys) כדי לקבוע אם כל מפתחות נוספים שלא היה בכוונתך לכלול נוספו.

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

אם לא ידוע או לא ניתן להבחין אילו מפתחות ציבוריים בקובץ .ssh/authorized_keys שציינת עבור אימות, בצע את הפעולות הבאות:

  1. סקור את התבניות הפריסה שלך:

    1. ssh מפתחות ציבוריים

    2. ssh מפתחות בתצורת אתחול הענן

  2. אחזר שנפרס ssh מפתחות בזמן היצירה מתוך בתוך ה-VM, אם יש לך גישה sudo/בסיס. לשם כך, בצע את הפעולות הבאות:

    1. בדוק את תצורת אתחול הענן שהועברה CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"השתמש בערך CustomData ופענוח מכן base64 השתמש כדי לקבל את מפתחות ציבוריים אשר פרסת: echo "<customData value>" | base64 -D

    2. לחלופין, בדוק את מופע המטה נתונים שירות (IMDS) כדי לראות ssh מפתח ציבורי שהועברה ssh מאפיין מפתח ציבורי של יצירת ה-VM: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

תיקון

אם זיהית אישורים נוספים אשר לא התכוונת כדי לפרוס את ה-VM, באפשרותך להסיר אלה על-ידי מחיקת שורת המתאימה מתוך קובץ ה-authorized_keys.

להפעיל את התיקון על-ידי התחברות ל- VM באופן אינטראקטיבי, או להשתמש בסיומת קובץ Script מותאם אישית או RunCommand על-פני סוגי מרובים.

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

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

חשוב

אנו ממליצים לגבות את קובץ authorized_keys לפני הפעלת קובץ script זה.

 

#!/bin/bash
set -e

# /var/lib/waagent has *.crt files that include the crt files corresponding to 
# the user provided public keys and one additional .crt file from MSI.
# This script converts the content of the .crt file into the ssh public key and
# remove it from the authorized_keys file
readarray -t CRT_FILES < <(grep -l -E "(Microsoft.ManagedIdentity|Windows Azure)" /var/lib/waagent/*.crt)
for ((i=0; i < ${#CRT_FILES[@]}; i++))
do
    PUBKEY=$(openssl x509 -in "${CRT_FILES[$i]}" -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8)
    sed -i -e "\@$PUBKEY@d" $HOME/.ssh/authorized_keys
Done 

לאחר הפעלת קובץ ה-script, בדוק את הקובץ ssh/authorized_keys כדי להבטיח את שהמפתח הציבורי מוכרים רק קיימים.

סוגי לפרוס עם סודות מאגר האישורים של מפתח

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

  1. קבל את השם של האישור מאגר האישורים של מפתח אשר פרסת באמצעות ה-VM, לסקור קוד פריסה Az CLI או תבניות ARM או להפעיל CLI Az זה: az vm show --resource-group <resourceGroupName> --name <vmName> | grep certificateUrlהתגובה יציג את שם אישור: "certificateUrl": "https://<keyVaultname>.vault.azure.net/secrets/<certName>/xxxxxxxxxxxxx"

  2. הורד את האישור: az keyvault certificate download --vault-name <keyVaultName> --name <certName> --encoding PEM --file public.pem

  3. לחלץ את מפתח ציבורי: openssl x509 -in public.pm -pubkey -noout | ssh-keygen -f /dev/stdin -i -m PKCS8

  4. השווה את הפלט מהשלב הקודם כדי אישורי הנותרים בקובץ ה-ssh/authorized_keys. vi .ssh/authorized_keys file

פתרון

תמונות MarketPlace תכלת הרקיע

תיקונים הוחלו על אתחול הענן בתמונות תכלת הרקיע זוהו:

  • Canonical:UbuntuServer:18.04-LTS:18.04.201902190

  • Canonical:UbuntuServer:18.10-DAILY:18.10.201903200

  • RedHat:RHEL:7-RAW-CI:7.6.2019030421

  • OpenLogic:CentOS-CI:7-CI:7.6.20190306

תמונות מותאמות אישית

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

תמונות Ubuntu 18.04

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

  • ערוך את הקובץ הבא: /etc/cloud/cloud.cfg.d/90-azure.cfg

  • הוסף את הקוד הבא לסוף הקובץ.

חשוב

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

datasource:
   Azure:
     agent_command: [service, walinuxagent, start]

RHEL 7.4/7.5/7.6 ותמונות CentOS 7.6

אם יצרת בעבר את התמונות RHEL/CentOS באמצעות הפעולות הבאות (או באמצעות שיטה דומה), עליך לעדכן את תמונת המקור שממנה יצרת את סוגי. להלן השלבים הנוספים הנדרשים כדי להוסיף את התצורה הקיימת של התמונה VM מקור:

שלב 1

ערוך את הקובץ הבא:

/etc/cloud/cloud.cfg.d/91-azure_datasource.cfg

חשוב

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

הוסף את השורות הבאות לסוף הקובץ:

datasource:
   Azure:
     agent_command: [systemctl, start, waagent, --no-block]

שלב 2

עדכן את התצורה של סוכן כדלקמן:

cp /lib/systemd/system/waagent.service /etc/systemd/system/waagent.service
sed -i 's/After=network-online.target/WantedBy=cloud-init.service\\nAfter=network.service systemd-networkd-wait-online.service/g' /etc/systemd/system/waagent.service
systemctl daemon-reload

חבילות אתחול הענן

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

שאלות נפוצות

Q1: יש Microsoft המופקים גישה VM שלי?

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

Q2: והם כל OSs אתחול הענן לפרוס גירסאות מושפעות?

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

Q3: חבילות אתחול הענן המושפעות עבור הפצות Linux תכלול את התיקון?

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

מאושרות עבור רבעון 4: Microsoft יעדכן באופן אוטומטי כל סוגי המושפעות?

A4: לא. Microsoft לא תשנה את התוכן של סוגי אשר כבר הוקצו משאבים.

Q5: מדיניות האבטחה שלנו למנוע ממני הפעלה של VM Linux עם תוכן חיצוני ב- authorized_keys. מה ניתן לעשות לגבי זה היום?

A5: באפשרותך להסיר את השורה הבעייתית בבטחה הקובץ authorized_keys. פעולה זו לא תשפיע על מפתחות SSH שיצרת ואת פקד או זהות מנוהלת. באפשרותך לעשות זאת באופן ידני או על-ידי הפעלת קובץ script מותאמים אישית או פקודה מותאמת אישית על-פני כל צי המושפעת.

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×