Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Σύνοψη

Εκτός από επιτρέπει στους χρήστες να παρέχουν τις δικές τους keypairs SSH για έλεγχο ταυτότητας, την πλατφόρμα Microsoft Azure βασίζεται σε keypairs SSH για να ενεργοποιήσετε ορισμένες δυνατότητες που έχουν προστεθεί στην εικονική μηχανή (VM) της κατά το χρόνο ανάπτυξης. Ανακαλύψαμε πρόσφατα ότι, σε ορισμένα σενάρια περιορίζεται, τα δημόσια κλειδιά από αυτά τα πιστοποιητικά την πλατφόρμα Azure μπορεί να απροσδόκητα προστίθεται στο αρχείο .ssh/authorized_keys. Αυτά τα σενάρια είναι στοχεύουν μόνο μια κατάσταση στην οποία έχει γίνει προμήθεια της την εικονική Μηχανή χρησιμοποιώντας την προετοιμασία σύννεφο και πρόσθετες δυνατότητες Azure που βασίζονται σε πιστοποιητικά, όπως μια ταυτότητα υπηρεσία διαχειριζόμενων συστήματος επιλέγει ο χρήστης.

Η ασυνήθιστη συμπεριφορά παρουσιάζεται εξαιτίας μιας αλλαγής στη λογική της προετοιμασίας των συγκεκριμένων λειτουργικών συστημάτων. Αυτά είναι τα συστήματα που χρησιμοποιούν την προετοιμασία σύννεφο και που εγκαταστήσετε κατά λάθος το δημόσιο κλειδί από όλα τα πιστοποιητικά που είναι διαθέσιμες για την εικονική Μηχανή στο αρχείο κλειδιών ssh εξουσιοδοτημένο κατά τη δημιουργία VM. 

Για περισσότερες πληροφορίες, μεταβείτε στο CVE-2019-0816.

Περισσότερες πληροφορίες

Λεπτομέρειες σενάριο

Η λογική init σύννεφο που αναφέρεται στην ενότητα "Σύνοψη" αυτήν τη στιγμή είναι γνωστό ότι υπάρχουν σε εικόνες Azure για Ubuntu 18.04 εκτός από το δημόσιο προεπισκόπηση RHEL 7.4/7.5/7.6 και CentOS 7.4 σύννεφο την προετοιμασία εικόνων. Μπορούν να υφίστανται σε προσαρμοσμένα είδωλα χρησιμοποιώντας αυτά τα λειτουργικά συστήματα.    Εάν ενεργοποιήσετε μία από τις ακόλουθες δυνατότητες κατά την προμήθεια μία από τις εικόνες του Linux, μπορείτε να δείτε πρόσθετες, μη αναμενόμενα κλειδιά σε ένα αρχείο .ssh/authorized_keys, όπως ένα από τα εξής:

  • Διαχειριζόμενη ταυτότητα

  • Επεκτάσεις με προστατευμένα ρυθμίσεις

  • Αναπτύξετε μια εικονική Μηχανή με κλειδιά κλειδιού θάλαμο σε ένα VM

Αναγνώριση και διόρθωση υπαρχόντων ΣΠΣ

Αναγνώριση

Για να ελέγξετε εάν έχετε πρόσθετων κλειδιών, εξετάστε το αρχείο εξουσιοδοτημένο κλειδιά (αρχείο .ssh/authorized_keys vi) για να προσδιορίσετε αν έχουν προστεθεί πρόσθετων κλειδιών που δεν σκοπεύατε να συμπεριλάβετε.

Είναι με μη αυτόματο τρόπο ασφαλές να καταργήσετε οποιεσδήποτε πρόσθετες ssh δημόσια κλειδιά που μπορεί να έχουν προστεθεί. Αυτό θα δεν επηρεάζει τις δυνατότητες που αναπτύσσονται σε συνδυασμό με την εικονική Μηχανή. Επίσης, δεν θα επηρεαστεί το καθορισμένο SSH ζεύγος κλειδιών για έλεγχο ταυτότητας.

Εάν δεν γνωρίζετε ή δεν είναι δυνατό να διαφοροποιήσετε τα δημόσια κλειδιά στο αρχείο .ssh/authorized_keys που καθορίσατε για τον έλεγχο ταυτότητας, ακολουθήστε τα εξής βήματα:

  1. Εξετάστε τα πρότυπα ανάπτυξης:

    1. SSH δημόσιων κλειδιών

    2. SSH κλειδιά σύννεφο init ρύθμισης παραμέτρων

  2. Ανάκτηση του εγκατεστημένου ssh κλειδιών κατά τη δημιουργία από μέσα την εικονική Μηχανή, εάν έχετε πρόσβαση sudo/root. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

    1. Ελέγξτε τις παραμέτρους init σύννεφο που διαβιβάστηκε CustomData: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1:CustomData>"Χρησιμοποιήστε την τιμή CustomData και, στη συνέχεια, χρήση base64 αποκωδικοποίησης για τη λήψη των δημόσιων κλειδιών που αναπτύξατε: echo "<customData value>" | base64 -D

    2. Εναλλακτικά, ελέγξτε την υπηρεσία δεδομένων Meta (IMDS) της παρουσίας, για να δείτε τα ssh δημόσιο κλειδί που διαβιβάστηκε το ssh δημόσια ιδιότητα κλειδιού από την εικονική Μηχανή δημιουργίας: curl -H Metadata:true "http://169.254.169.254/metadata/instance/compute/publicKeys?api-version=2018-04-02&format=json"

Διόρθωση

Αν έχετε προσδιορίσει πρόσθετα πιστοποιητικά που δεν σκοπεύατε να αναπτύξετε την εικονική Μηχανή, μπορείτε να καταργήσετε τους κατά τη διαγραφή την αντίστοιχη γραμμή από το αρχείο authorized_keys.

Εκτέλεση της αποκατάστασης εύρυθμης λειτουργίας κατά τη σύνδεση με την εικονική Μηχανή με αλληλεπίδραση ή χρησιμοποιήστε την επέκταση του προσαρμοσμένη δέσμη ενεργειών ή την εκτέλεση εντολής μέσω πολλών ΣΠΣ.

VM που αναπτύσσονται χρησιμοποιώντας τις επεκτάσεις που έχουν προστατευθεί ρυθμίσεις ή μιας διαχειριζόμενης ταυτότητας

Χρησιμοποιήστε την ακόλουθη δέσμη ενεργειών, για να καταργήσετε τα δημόσια κλειδιά από τα πιστοποιητικά που την εικονική Μηχανή είχε αναπτυχθεί με επεκτάσεις ή διαχειριζόμενη ταυτότητα. Αυτό θα κατάργηση δεν τα κλειδιά που έχουν καθοριστεί όταν αναπτυχθεί μια εικονική Μηχανή ή εάν η εικονική Μηχανή είχε αναπτυχθεί με θάλαμο κλειδί κλειδιά.

Σημαντικό

Συνιστάται να δημιουργείτε αντίγραφα ασφαλείας του αρχείου authorized_keys πριν να εκτελέσετε αυτήν τη δέσμη ενεργειών.

 

#!/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 

Μετά την εκτέλεση της δέσμης ενεργειών, ανατρέξτε στο αρχείο ssh/authorized_keys ώστε να υπάρχουν μόνο τα γνωστά δημόσια κλειδιά.

VM που έχουν αναπτυχθεί με κλειδί θάλαμο μυστικά

Για να προσδιορίσετε αν το κλειδί προστέθηκε όταν αναπτυχθεί με κλειδί θάλαμο κλειδιά, ακολουθήστε τα εξής βήματα:

  1. Η λήψη του ονόματος του πιστοποιητικού κλειδιού θάλαμο που αναπτύξατε χρησιμοποιώντας την εικονική Μηχανή, να ελέγξετε ανάπτυξης κώδικα 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

Επίλυση

Εικόνες Azure στην αγορά

Ενημερώσεις κώδικα έχουν συσχετιστεί με την προετοιμασία σύννεφο το προσδιορισμένο Azure εικόνες:

  • 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

σύννεφο init πακέτα

Όλα τα πακέτα init σύννεφο που περιλαμβάνει μια ενημέρωση κώδικα είναι στη διαδικασία που ενημερώνεται. Η Microsoft ερευνά αυτό το ζήτημα και θα δημοσιεύσει περισσότερες πληροφορίες σε αυτό το άρθρο, όταν αυτές γίνουν διαθέσιμες.

Συνήθεις ερωτήσεις

Q1: Έχει Microsoft αποκτήσει πρόσβαση σε VM που μου;

A1: Κλειδιά κρυπτογράφησης χρησιμοποιούνται για τη Διαχείριση ταυτοτήτων και επεκτάσεις δεν έχουν σχεδιαστεί για πρόσβαση από υπαλλήλους της Microsoft. Έχουμε διαδικασίες σε θέση να παρακολουθεί, να συνδεθεί και να αποτραπεί αυτό το είδος της access. Για λόγους ασφαλείας, σας προσθέστε όλα τα αρχεία καταγραφής για να βεβαιωθείτε ότι δεν υπάρχουν κλειδιά πελάτη προσπελάστηκε εσφαλμένα. Για τα πιστοποιητικά που είναι αποθηκευμένες στο κλειδί θάλαμο που αναφέρονται σε μια εικονική Μηχανή ή VMSS ανάπτυξη, στους υπαλλήλους της Microsoft δεν έχετε κανένα δικαίωμα πρόσβασης σε τα μυστικά.

Q2: Είναι όλα τα OSs σύννεφο init που έχουν αναπτυχθεί και οι εκδόσεις που επηρεάζονται;

A2: Όχι. Βλέπετε αυτό ξένοι σημαντικό θέμα που παρουσιάζεται μόνο στα αναγνωρίσιμα λειτουργικά συστήματα. Εμείς δεν έχουν δει αυτό παρουσιαστεί σε παλαιότερες εκδόσεις του Ubuntu. Αυτό συμβαίνει επειδή αυτά τα συστήματα χρησιμοποιούν ένα διαφορετικό μηχανισμό για να ορίσετε τα δημόσια κλειδιά.

Τ3: Τα πακέτα που επηρεάζονται σύννεφο την προετοιμασία για την κατανομή του Linux περιλαμβάνει την ενημέρωση κώδικα;

A3: Εργαζόμαστε για την προσθήκη τις ενημερώσεις κώδικα για τα πακέτα για τις εκδόσεις που επηρεάζονται και θα ενημερώσουμε αυτό το άρθρο όταν ολοκληρωθεί αυτή η εργασία.

Q4: Microsoft ενημερώνει αυτόματα κάθε VM που επηρεάζονται;

A4: Όχι. Microsoft δεν θα αλλάξει τα περιεχόμενα του ΣΠΣ που ήδη έχουν γίνει προμήθεια.

Ε5: Μας πολιτικές ασφαλείας με εμποδίσει να λειτουργεί μια εικονική Μηχανή Linux με άλλo εξωτερικό περιεχόμενο σε authorized_keys. Τι μπορώ να κάνω σχετικά με αυτό σήμερα;

A5: Μπορείτε να καταργήσετε με ασφάλεια προκαλεί γραμμή από το αρχείο authorized_keys. Αυτό δεν θα επηρεάσει το SSH κλειδιών που δημιουργήσατε και τον έλεγχο ή τη διαχειριζόμενη ταυτότητα. Αυτό μπορείτε να το κάνετε με μη αυτόματο τρόπο ή με την εκτέλεση μιας προσαρμοσμένης δέσμης ενεργειών ή μια προσαρμοσμένη εντολή σε οποιαδήποτε στόλο που επηρεάζονται.

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×