Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Обобщена информация

В допълнение към писмо потребител предоставя keypairs свои собствени SSH за удостоверяване, платформата Microsoft Azure разчита на SSH keypairs да активирате някои функции, които се добавят към виртуална машина (VM) по време на разполагане. Наскоро открихме, че в някои ограничени случаи публични ключове от Azure платформа сертификати може да бъде добавен неочаквано .ssh/authorized_keys файл. Тези сценарии са обхванати само в ситуация, в която VM е осигурен чрез облак инициализиране и потребителят избира Azure допълнителни функции, които разчитат на сертификати, като например системата управлявана услуга самоличност.

Това неочаквано поведение възниква поради промяна в логиката на осигуряване на конкретни операционни системи. Това са системи, използващи облак инициализиране и че случайно инсталирате публичния ключ от всички сертификати, които са достъпни за VM в ssh разрешение ключовете файл по време на създаването на VM. 

За да научите повече, отидете на CVE-2019-0816.

Допълнителна информация

Сценарий данни

Облак-първоначален логика, споменато в раздела "Обобщение" в момента е известно, че съществува в Azure изображения за Ubuntu 18.04 в допълнение към публични визуализация RHEL 7.4/7.5/7.6 и CentOS 7.4 облак-първоначален изображения. Това също може да съществува в потребителски изображения в тези операционни системи.    Ако разрешите една от следните функции при осигуряване на една от снимките Linux, можете да откриете допълнителни, неочаквано ключове в .ssh/authorized_keys файл, като например някой от следните:

  • Управлявани самоличност

  • Разширения със защитени настройки

  • Разполагане на VM с ключови каса ключове в VM

Идентифициране и решаване на съществуващи виртуални машини

Проверете

За да проверите дали имате допълнителни ключове, прегледайте разрешение ключовете файл (vi .ssh/authorized_keys) да се определи дали са добавени всички допълнителни ключове, които не възнамерявате да включите.

Това е безопасно да ръчно премахване на допълнителни ssh публични ключове, които може да са добавени. Това не засяга функциите, които са внедрени с VM. Също така то няма да засегне на указаната двойка SSH ключове за удостоверяване.

Ако не знаете или не разграничение кои публични ключове в .ssh/authorized_keys файлът, който зададохте за удостоверяване, изпълнете следните стъпки:

  1. Преглед на шаблони за разполагане:

    1. SSH публични ключове

    2. SSH ключове в облак първоначалната конфигурация

  2. Възстановете разположено ssh ключове по време на създаване в VM, ако имате sudo/root достъп. За да направите това, изпълнете следните стъпки:

    1. Проверете облак първоначалната конфигурация, която е приета в потребителските данни: sudo cat /var/lib/waagent/ovf-env.xml | grep "<ns1: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 интерактивно или използвайте разширението потребителски скрипт или метода в няколко виртуални машини.

Виртуални машини, разположена с помощта на разширения, които са защитени настройки или управлявани самоличност

Използвайте следния скрипт за премахване на публични ключове от сертификати, в която VM е разположена с разширения или управлявани самоличност. Това ще не премахнете ключовете, които са посочени, когато сте въвели VM, или ако 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 да присъстват само известни публични клавиши.

Виртуални машини, разположена с каса таен ключ

За да определи дали ключ е добавен при разположена с ключ хранилище ключове, изпълнете следните стъпки:

  1. Получи име на ключ хранилище сертификат, който сте въвели чрез VM, прегледайте разполагане код я CLI или ARM шаблони или стартирате тази я CLI: 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

облак-първоначален пакети

Всички облак-първоначален пакети, които включват решение предстои да се актуализира. Microsoft проучва този проблем и ще публикува повече информация в тази статия, когато има необходимата информация.

Често задавани въпроси

В1: Е получил достъп до моя VM Microsoft?

A1: Ключовете за шифроване се използват за управление на самоличности и разширения не са предназначени за достъп от служители на Microsoft. Имаме процеси да наблюдава, влезте и предотвратяване на този вид достъп. От съображения за сигурност ние сме преглед всички регистрационни файлове да се уверите, че клиентът ключове не са прочетени некоректно. За сертификати, които се съхраняват в ключа хранилище, които са посочени в VM или VMSS разполагане служители на Microsoft нямат достъп до тайна.

Q2: Са облак-първоначален разположени операционни системи и версии засегнати?

A2: Не. Виждаме чужди ключови проблемът възниква само в определени операционни системи. Не виждаме това се случи в по-стари версии на Ubuntu. Това е така, защото тези системи използват различни механизъм за задаване на публични ключове.

В3: Да включват fix засегнатите облак-първоначален пакети за дистрибуция?

A3: Ние работим за добавяне на корекции на пакетите за засегнатите версии и ще актуализираме тази статия, когато приключи работата.

В4: Microsoft автоматично ще актуализира всички засегнати VM?

A4: Не. Microsoft няма да се промени съдържанието на виртуални машини, които вече са предназначени.

В5: Нашите правила за защита ми попречи да работи на Linux VM с чужди съдържание в authorized_keys. Какво да направя за това днес?

A5: Можете да премахнете безопасно дадения ред от файла authorized_keys. Това няма да засегне keypair SSH, който сте създали и контрол или управлявани самоличност. Можете да направите това ръчно или като използвате потребителски скрипт или команда по избор между всички засегнати флота.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×